api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...
前言:
查询监控项历史数据,最常见的办法就是在页面查询,但是页面只能展现最近的500个数值,如果要查询历史数据比较久远或要形成数据表格进行分析,这个办法就不适用了,但是利用zabbix—API查询zabbix监控项历史数据就可以满足这一需求,只需要指定查询的起止时间及监控项,就能以数据的形式进行输出,便于业务侧分析此期间的性能指标是否正常
具体脚本讲解如下:
#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://IP/api_jsonrpc.php" # 访问zabbix页面的url
header = {"Content-Type": "application/json"}
username = "xxx" #zabbix的账户与密码
password = "xxx"
hostfile="ip.txt"
token = get_token()
starttime = "2020-05-24 11:30:00" #查询历史数据的起止时间
stoptime = "2020-05-24 12:30:00"
start = timecovert(starttime)
stop = timecovert(stoptime)
#生成一个txt文件
datafile = "/home/dwchenrongbin/linfan/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 = ["cpu_use_ag"] #要查询监控项的KEY值
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,valuelist) #打印出 主机名、平均值、最大值、历史数据
else:
print (host)
fdata.close()
以下是我根据脚本输出整理的Excel表历史数据(IP已被我过滤掉)
api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...相关推荐
- MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号
MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号 一.前言 Oracle中有rownum,实现查询的时候记录行号,MySQL中没有 ...
- zabbix入门之添加监控项
zabbix入门之添加监控项 添加一个不带参数的监控项(system.cpu.switches) 进入"配置"-->"主机"选择某主机的"监控项 ...
- api查询所有记录 zabbix_通过Zabbix API获取历史监控数据
Zabbix API可以通过JSON RPC协议来获取历史数据. 可以采用脚本或者任何支持JSON RPC的工具来使用API. 基本请求格式 Zabbix API 简化的JSON请求如下: { &qu ...
- mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库
本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. UCSC Genome Browser是由Unive ...
- mysql数据库补充知识3 查询数据库记录信息之多表查询
一 介绍 准备表 company.employee company.department 复制代码#建表 create table department( id int, name varchar(2 ...
- zabbix应用之获取监控项的graph曲线图
在使用zabbix的过程中,我们经常有这样的需求:查看CPU或内存等监控项在某一时间段内的graph曲线图.通常的做法是进入"Latest data"界面,找到主机的监控项,点击右 ...
- Zabbix 3.4配置监控项及监控Linux、Windows客户端
此博客就不再啰嗦那么多了,直接配置,关于Zabbix工作原理及概述请访问之前写的博客: Centos 7搭建Zabbix 4.0监控系统 一.安装Zabbix3.4 二.访问zabbix的Web界面 ...
- zabbix详解之监控项自动发现(LLD)
概述 自动发现(LLD)提供了一种为受监控节点的不同监控指标自动创建监控项,触发器和图形的分发.例如,Zabbix可以在你的机器上自动开始监控服务端口,而无需为每个服务端口手动创建监控项. 此外,可以 ...
- 云原生丨手把手教你使用zabbix监控postgresql数据库(超详细讲解)
文章目录 一.前言 二.什么是zabbix 三.zabbix安装步骤 四.监控postgresql实现步骤 一.前言 对于运维人员来说,监控是非常重要的,因为如果想要保证线上业务整体能够稳定运行,那么 ...
最新文章
- html css发展前景,网页设计的发展趋势
- SAP MM 物料主数据采购视图中的字段'Var. OUn'的作用?
- nginx获得response自定义的header
- Win7下硬盘安装Redhat双系统
- js 实现文件导出、文件下载
- 奔跑吧兄弟变成机器人是哪一期_强竞技的《奔跑吧3》蜕变为“生活服务类综艺”,你还愿意看吗?...
- 人工智能在生活中的应用都有哪些?
- Linux Shall命令入门
- lol更新显示正在连接服务器,wegame更新游戏显示正在连接服务器
- python开发指法练习软件_利用“金山打字通”或其它指法训练软件,学习和掌握键盘指法指法输入规则。如果你的电脑中未安装,请到网上下载并自行安装,这里是“金山打字通2016”。...
- 小程序服务器装rsshub,RssHub 部署
- 简单实用计划提醒便签软件 界面简洁功能一目了然
- COMPUTER METHODS AND PROGRAMS IN BIOMEDICINE期刊投稿
- 7000字和你聊聊如何设计一款高并发架构(建议收藏)
- Uipath的下载与使用教程
- 你需要的导航网站,这里都有
- ADB命令封装批处理文件(无线调试、安装 apk 到指定已连接设备)
- Oracle 给其他用户授权表的权限
- SQL创建用户、创建表
- 攻防世界Web题 - unseping 总结