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监控项图形的更多相关文章

  1. 04:获取zabbix监控信息

    目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  2. 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 ...

  3. zabbix 监控项(key)

    Key 描述 返回值 参数 详细说明 agent.hostname 返回被监控端名称 字符串 - 返回配置文件中配置的被监控端的名称 agent.ping 检测被监控端是否存活 1 - 运行中 其他 ...

  4. zabbix 监控项

    监控项 概述 监控项是从主机收集的数据信息. 配置主机后,你需要添加一些监控项以开始获取实际数据. 一个监控项是一个独立的指标.快速添加多个监控项的一种方法是将一个预定义的模板附加到主机.然而,为了优 ...

  5. (8)zabbix监控项item是什么

    什么是item Items是从主机里面获取的所有数据.通常情况下我叫itme为监控项,例如服务器加入了zabbix监控,我需要监控它的cpu负载,那么实现这个方法的东西就叫item item构成 it ...

  6. Zabbix 监控项更多用法

    监控服务端口状态 配置 Zabbix 提供的检测器 配置自定义值映射 查看监控项数据状态 触发器配置 自定义监控项 TCP 11 种状态 TCP 11 种状态 LISTEN - 侦听来自远方TCP端口 ...

  7. zabbix监控项截图整理

    general监控项

  8. zabbix监控项字体乱码的处理方法

    一.新安装完的查看项目的时候字体是乱码的 二.在控制面板的字体中复制出系统的“微软雅黑”字体,粘贴到桌面 粘贴出来之后会产生两个文件,msyhbd.ttf为加粗的字体 三.修改并替换字符集 我是编译安 ...

  9. zabbix监控项整理Items-key

    agent.hostname:hostname,字符串 agent.ping:可用性检查,可用返回1:不可用返回空 agent.version:agent程序的版本,返回字符串 kernel.maxf ...

  10. 02 . Zabbix配置监控项及聚合图形

    安装Zabbix Agent监控本机 安装agent软件 与server端不同,Agent只需安装zabbix-agent包 cat /etc/yum.repos.d/zabbix.repo [zab ...

随机推荐

  1. devops-3:Jenkins增加静态节点

    Jenkins管理静态节点 Jenkins搭建完成后一般只有一个master节点,此节点主要用于管理Jenkins配置,如果再在master节点上跑一系列的Job,未免有点太勉强,并且如果出现资源紧缺 ...

  2. pikachu靶场 越权(水平越权+垂直越权)

    水平越权 A用户和B用户属于同一级别用户,但各自不能操作对方个人信息.A用户如果越权操作B用户个人信息的情况称为水行越权操作 三个用户 lucy/lili/kobe  密码都为123456 随便登录其 ...

  3. 调用微信红包接口,本地可以服务器不可以。 请求被中止: 未能创建 SSL/TLS 安全通道

    微信红包的地址接口地址是: https://api.mch.weixin.qq.com/pay/micropay 当时造成这个不能用的原因是:我把服务器从windows server 2008升级到w ...

  4. 这款PDF解析工具,精准触达大模型问答应用的需要

    过去的一年,是大语言模型快速发展的一年.大模型强大的语言理解能力,逐渐让用户习惯了将各类文章丢给大模型,让它来帮忙总结提炼.从产品角度看,这是一次10倍体验的飞跃,意味着巨大的市场机会.也因此,市面上 ...

  5. CCIA数安委等组织发起“个人信息保护影响评估专题工作”,合合信息首批入选试点

    近期,"个人信息保护影响评估专题工作"(简称"PIA专题工作")试点评估结果正式发布.PIA专题工作组由中国电子技术标准化研究院.中国信息通信院等单位的法律与技 ...

  6. DECL: 针对噪声时间序列的去噪感知对比学习《Denoising-Aware Contrastive Learning for Noisy Time Series》(时间序列、对比学习、去噪)

    今天是2024年9月12日,组会摸鱼,很久没看论文了,在摸鱼看代码,最近IJCAI 2024出来了,找了几篇论文看,首先这是第一篇. 论文:Denoising-Aware Contrastive Le ...

  7. Azure – Azure Active Directory

    前言 虽然它好像是快过时了, 但目前还得用到. 先不研究新的先. Azure 的 service 如果要通过 API 调用的话, 就需要 Azure Active Directory (Azure A ...

  8. @RestController和@Controller的区别

    @RestController 和 @Controller 是Spring框架中用于定义控制器(Controller)的两个非常重要的注解,它们都用于处理HTTP请求,但它们之间存在一些关键的区别. ...

  9. 29. GIL全局解释器锁、信号量、线程池进程池

    1. GIL全局解释器锁 1.1 概念 '''In CPython, the global interpreter lock, or GIL, is a mutex that prevents mul ...

  10. std::vector::reserve

    std::vector::reserve 函数在 C++ 中用于预分配内存,避免在元素增加时多次重新分配内存,从而提高性能. 它最常用于需要频繁向 vector 中添加元素,并且可以预估容器的最终大小 ...