python获取zabbix监控项图形
python获取zabbix图形
通过zabbix的api接口获取指定时间段的监控项图形
图片示例:

代码示例:
# -*- coding: UTF-8 -*-
#可根据监控项获取zabbix下所有主机的Itemid,通过zabbix库的graphs_items表 ,获取graphid
import requests
import datetime
# 配置 Zabbix API 相关参数
ZABBIX_API_URL = "http://xxxxxxxx/zabbix/api_jsonrpc.php"
ZABBIX_USER = "xxxxx"
ZABBIX_PASSWORD = "xxxxx"
# 手动登录 Zabbix 获取会话 cookie
def zabbix_manual_login():
session = requests.Session()
login_url = ZABBIX_API_URL.replace("/api_jsonrpc.php", "/index.php")
login_payload = {
"name": ZABBIX_USER,
"password": ZABBIX_PASSWORD,
"autologin": 1,
"enter": "Sign in",
}
response = session.post(login_url, data=login_payload)
if "zbx_sessionid" not in session.cookies:
raise Exception("登录失败,请检查用户名和密码。")
return session
# 获取 Zabbix 图形图片
def get_graph_image(session, graphid, start_time, end_time, output_file):
# 构建图形 URL
graph_url = ZABBIX_API_URL.replace("/api_jsonrpc.php", "/chart2.php")
params = {
"graphid": graphid,
"from": start_time,
"to" : end_time,
"width": 800, # 可调整图形宽度
"height": 400, # 可调整图形高度
"profileIdx": "web.graphs"
}
# 请求图片
response = session.get(graph_url, params=params, stream=True)
if response.headers.get("Content-Type") != "image/png":
print("获取图形失败,返回内容为:")
print(response.text)
raise Exception("未能正确获取图形图片,请检查参数或权限。")
# print(response.text)
# 保存图片到本地
with open(output_file, 'wb') as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print(f"图形已保存到 {output_file}")
# 将时间转换为 Zabbix 的 Unix 时间戳格式
def convert_to_stime(dt):
return dt.strftime("%Y%m%d%H%M%S")
if __name__ == "__main__":
try:
# 手动登录获取会话
session = zabbix_manual_login()
print("登录成功,已获取会话 cookie。")
# 指定 graphid
graphid = "xxxxx"
# 设置时间范围(每天的 9 点到 16 点)
today = datetime.date.today()
start_time = datetime.datetime(today.year, today.month, today.day, 9, 0, 0)
end_time = datetime.datetime(today.year, today.month, today.day, 16, 0, 0)
# 保存图片的文件路径
output_file = f"zabbix_graph_{graphid}.png"
# 获取图形图片
get_graph_image(session, graphid, start_time, end_time, output_file)
except Exception as e:
print("发生错误:", str(e))
python获取zabbix监控项图形的更多相关文章
- 04:获取zabbix监控信息
目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...
- zabbix 监控项报"Value "(No info could be read for "-p": geteuid()=1002 but you should be root"
zabbix 监控项报错如下: “Value "(No info could be read for "-p": geteuid()=1002 but you shoul ...
- zabbix 监控项(key)
Key 描述 返回值 参数 详细说明 agent.hostname 返回被监控端名称 字符串 - 返回配置文件中配置的被监控端的名称 agent.ping 检测被监控端是否存活 1 - 运行中 其他 ...
- zabbix 监控项
监控项 概述 监控项是从主机收集的数据信息. 配置主机后,你需要添加一些监控项以开始获取实际数据. 一个监控项是一个独立的指标.快速添加多个监控项的一种方法是将一个预定义的模板附加到主机.然而,为了优 ...
- (8)zabbix监控项item是什么
什么是item Items是从主机里面获取的所有数据.通常情况下我叫itme为监控项,例如服务器加入了zabbix监控,我需要监控它的cpu负载,那么实现这个方法的东西就叫item item构成 it ...
- Zabbix 监控项更多用法
监控服务端口状态 配置 Zabbix 提供的检测器 配置自定义值映射 查看监控项数据状态 触发器配置 自定义监控项 TCP 11 种状态 TCP 11 种状态 LISTEN - 侦听来自远方TCP端口 ...
- zabbix监控项截图整理
general监控项
- zabbix监控项字体乱码的处理方法
一.新安装完的查看项目的时候字体是乱码的 二.在控制面板的字体中复制出系统的“微软雅黑”字体,粘贴到桌面 粘贴出来之后会产生两个文件,msyhbd.ttf为加粗的字体 三.修改并替换字符集 我是编译安 ...
- zabbix监控项整理Items-key
agent.hostname:hostname,字符串 agent.ping:可用性检查,可用返回1:不可用返回空 agent.version:agent程序的版本,返回字符串 kernel.maxf ...
- 02 . Zabbix配置监控项及聚合图形
安装Zabbix Agent监控本机 安装agent软件 与server端不同,Agent只需安装zabbix-agent包 cat /etc/yum.repos.d/zabbix.repo [zab ...
随机推荐
- 关于SQLServer数据库的READ_COMMITTED_SNAPSHOT隔离级别
默认情况下,SQL Server的事务隔离级别是READ COMMITED.刚开始我理解这个模式就是读已经提交的,那也就是说并发一个事务去更新,一个事务查询同一条数据应该是像Mysql.Oracle不 ...
- 倾斜摄影osgb格式文件,进行坐标转换
倾斜摄影OSGB格式的文件,很棘手,今天需要把osgb放到UE中渲染.碰到的问题如下: 1.osgb文件导进去后,Z轴不想上,是歪的,小人放进去后,就斜站在马路上. 2.根本原因是坐标系,UE的插件c ...
- 利用水墨映客图床作为COS服务器
目录 利用水墨映客作为COS服务器 利用picGo配合typora上传图片 安装PicGo(以Windows为例) 安装lankong插件 在SpringBoot中开发图片上传工具类 设置图片上传请求 ...
- LLM大模型基础知识学习总结
大家好,我是Edison. 在这个已经被AI大模型包围的时代,不了解一点大模型的基础知识和相关概念,可能出去聊天都接不上话.刚好近期我也一直在用GPT和GitHub Copilot,也刚好对这些基础知 ...
- hashmap组成原理及调用时机
整个HashMap中最重要的点有四个:初始化,数据寻址-hash方法,数据存储-put方法,扩容-resize方法,只要理解了这四个点的原理和调用时机,也就理解了整个HashMap的设计. 如果有疑惑 ...
- C++: 智能指针的自定义删除器 `Custom Deleter` 有什么用?
C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法.智能指针模板参数的第二个类型是删除器,一般是一个函数指针 ...
- Splay/LCT 学习笔记
唔,其实我不会 Splay,但是我会 LCT. 众所周知,会 LCT 和会 Splay 是两回事,因为 LCT 只需要旋至根即可. 到现在还是不会,但是先把 LCT 的 Splay 写一下吧. 自己复 ...
- oh-my-zsh nvm command not found
oh-my-zsh nvm command not found 如果你在使用 oh-my-zsh 并且在终端输入 nvm 命令时提示 "command not found",这可能 ...
- urb中几个函数的使用
usb_buffer_alloc(free) 说是为了更好的从名字看出这个函数真实做的事情:DMA coherency linux提供两种方式,来保证使用dma时,内存和硬件cache的一致性: us ...
- 巅峰对话在线研讨 Q&A:Oracle Database 21c vs openGauss 2.0新特性解读和架构演进
2021年11月11日,墨天轮<巅峰对话>栏目邀请到了两位数据库领域的巅峰人物:云和恩墨创始人盖国强老师,和来自清华大学计算机与技术系的李国良教授,为大家带来了在线研讨<Oracle ...