利用zabbix API 统计一段时间内监控项的均值和峰值
#coding:utf-8
#给定主机IP获取一段时间内cpu的均值和峰值并写入文件(txt,可以跑完后直接把后缀名改为csv以表格形式打开);需要指定IP文件
import requests
import json
import csv
import time def get_token():
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": username,
"password": password
},
"id": 0
}
r = requests.get(zaurl, headers=header, data=json.dumps(data))
auth = json.loads(r.text)
return auth["result"] def item_get(token, host, itemkey):
data = {
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"host": host,
"search": {
"key_": itemkey
},
},
"auth": token,
"id": 1
} request = requests.post(zaurl, data=json.dumps(data), headers=header)
dict = json.loads(request.content)
# print(dict)
return dict['result'][0]['itemid'] def getdata(token,itemid, start, stop):
data = {
"jsonrpc": "2.0",
"method": "history.get",
"params": {
"output": "extend",
"itemids": itemid,
"history": 0,
"time_from":start,
"time_till":stop
},
"id": 2,
"auth": token, }
request = requests.post(zaurl, headers=header, data=json.dumps(data))
dict = json.loads(request.content)
print(dict)
return dict['result'] def timecovert(stringtime):
timeArray = time.strptime(stringtime, "%Y-%m-%d %H:%M:%S")
timeStamp = int(time.mktime(timeArray))
return timeStamp if __name__ == "__main__":
zaurl = "http://xx.xx.xx.xx/zabbix/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
username = "xxxx"
password = "xxxx"
hostfile="ip.txt"
token = get_token()
starttime = "2019-10-27 00:00:00"
stoptime = "2019-10-29 00:00:00"
start = timecovert(starttime)
stop = timecovert(stoptime)
#生成一个txt文件
datafile = "D:\生产\工作\IP\\data.txt"
fdata = open(datafile,'w')
with open(hostfile, "r") as f:
f1 = f.readlines()
for ips in f1:
host = ips.replace('\n', '').strip()
# 修改参数
#以下例子为cpu
itemkey = "system.cpu.util[,user]"]"
itemid = item_get(token, host, itemkey)
data = getdata(token,itemid,start,stop)
if data:
valuelist = []
for i in data:
valuelist.append(float(i["value"]))
avge = sum(valuelist)/len(valuelist)
max1 = max(valuelist)
fdata.write(host + ',' + str(round(avge,2)) + ',' + str(round(max1,2)) + '\n')
# print (host, avge, max1)
else:
print (host)
fdata.close()
利用zabbix API 统计一段时间内监控项的均值和峰值的更多相关文章
- 利用zabbix api添加、删除、禁用主机
python环境配置yum -y install python-pip安装argparse模块pip install -i https://pypi.douban.com/simple/ argpar ...
- Zabbix 3.4.11版本 自定义监控项
一.实验思路过程 创建项目.触发器.图形,验证监控效果: Template OS Linux 模板基本涵盖了所有系统层面的监控,包括了我们最关注的 几项:ping.load.cpu 使用率.memor ...
- Centos7下zabbix部署(三)自定义监控项
引言 在前面的博客中我们介绍了zabbix自带的模板,并且完成了我们的一些比较常用的监控,现在我们如果想要监控我们磁盘的IO,这时候zabbix并没有给我们提供这么一个模板,所以我们需要自己来创建一个 ...
- SQL语句统计一段时间内的记录数
实际应用中经常需要统计单位时间的记录数: 一个小时: SELECT ),createdate,) AS 日期 ,DATEPART(hh,createdate) AS 小时,COUNT(*)AS 记录 ...
- 02 . Zabbix配置监控项及聚合图形
安装Zabbix Agent监控本机 安装agent软件 与server端不同,Agent只需安装zabbix-agent包 cat /etc/yum.repos.d/zabbix.repo [zab ...
- 利用zabbix监控RocketMQ
根据需求,监控三个指标:MQ进程.自定义监控项订阅组的未消费值Diff Total和TPS. 创建MQ 状态的监控模板,进程监控利用zabbix自带的模板: 监控订阅组的Diff Total和TPS ...
- 基于curl 的zabbix API调用
1,认证并取得加密字段 curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0&q ...
- zabbix添加监控项以及常用的键值
zabbix自身提供了丰富的监控项,下面以“cpu空闲值”为例介绍zabbix如何添加新的监控项 1.创建主机群组 配置——主机群组——创建主机群组 2.创建主机 配置——主机——创建主机 3.添 ...
- 分布式系统监视zabbix讲解六之自定义监控项--技术流ken
宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...
随机推荐
- Springboot整合webservice
Springboot整合webservice 2019-12-10 16:34:42 星期二 WebService是什么 WebService是一种跨编程语言和跨操作系统平台的远程调用技术,服务之间的 ...
- 记一次Elasticsearch OOM的优化过程——基于segments force merge 和 store type 转为 niofs
首选,说明笔者的机器环境(不结合环境谈解决方案都是耍流氓): cpu 32核,内存128G,非固态硬盘: RAID0 (4T * 6),单节点,数据量在700G到1800G,索引15亿~21亿.敖丙大 ...
- “Unknown class XXViewController in Interface Builder file.”问题处理
在静态库中写了一个XXViewController类,然后在主工程的xib中,将xib的类指定为XXViewController,程序运行时,报了如下错误: “Unknown class XXView ...
- jquery.countdown 倒计时插件的学习
1.第一种简单的使用 第一个时间是你的倒计时截止时间,finalDate格式可以是YYYY/MM/DD MM/DD/YYYY YYYY/MM/DD hh:mm:ss MM/DD/YYYY hh:mm: ...
- Java修炼——键盘输入,字节转换流
键盘控制输入字符,并且有转换流(InputStreamReader)加入,同样也是使用了缓冲. package com.bjsxt.ioproject; import java.io.Buffered ...
- LightOJ1355 Game Of CS(green 博弈)
Jolly and Emily are two bees studying in Computer Science. Unlike other bees they are fond of playin ...
- processing-python-泡泡龙
挂一个无耻搬运工:码农教程. 真的打心底里瞧不起为了蹭热度全网照抄代码的某些人. 再次此声明:代码不是python语言,求某些搬运工不要到处搬运害人. def setup(): size(600,60 ...
- vue2.5 + element UI el-table 导出Excel
安装依赖 npm install --save xlsx file-saver 新建excelHelper.js \src\utils\目录下新建excelHelper.js文件 import Vue ...
- Python3 并发编程4
目录 Event事件 线程池与进程池 基本概念 使用方法 和信号量的区别 协程(coroutine) 基本概念 实现方式 多线程爬取梨视频 Event事件 用来控制线程的执行 e.isSet()查看对 ...
- 【原创】005 | 搭上SpringBoot请求处理源码分析专车
前言 如果这是你第二次看到师长,说明你在觊觎我的美色! 点赞+关注再看,养成习惯 没别的意思,就是需要你的窥屏^_^ 专车介绍 该趟专车是开往Spring Boot请求处理源码分析专车,主要用来分析S ...