如何定制Zabbix仪表盘以监控摄像头及多类设备运行状态
基于Zabbix实现大规模设备Ping监控与健康度统计方案
一、批量导入设备资产
面对500+摄像头、100+LPU这类大规模设备,手动添加效率太低,直接用批量导入:
- 把设备清单整理成CSV格式,至少包含
主机名称、IP地址、群组名称(比如按设备类型分“摄像头群组”“LPU群组”) - 进入Zabbix后台,依次点
配置→主机→导入,选择CSV文件完成批量创建,同时给所有主机关联统一的监控模板(后续会配置)
二、配置Ping监控模板
做一个通用模板来统一管理所有设备的Ping规则:
- 添加ICMP Ping核心监控项
- 进入
配置→模板→创建模板,命名为Template ICMP Ping Monitor - 在模板的
监控项里新增:- 名称:
ICMP Ping 响应状态 - 类型:
简单检查 - 键值:
icmpping - 更新间隔:设为你需要的秒数(比如3秒)
- 信息类型:
整数,设备在线返回1,无响应返回0
- 名称:
- 可选添加
icmppingloss(丢包率)、icmppingsec(响应时间)作为辅助监控项
- 进入
- 设置下线判定触发器
- 新增触发器:
- 名称:
{HOST.NAME} 设备无响应 - 表达式:
{Template ICMP Ping Monitor:icmpping.last()}=0 - 严重性:根据需求设为
警告或严重 - 恢复表达式:
{Template ICMP Ping Monitor:icmpping.last()}=1
- 名称:
- 新增触发器:
三、统计上线/下线时长
利用Zabbix的事件记录和历史数据来计算:
- 下线时长:Zabbix会自动记录触发器触发(设备下线)和恢复(设备上线)的时间戳。两种获取方式:
- 进入
监测→事件,筛选对应群组的触发器事件,导出CSV后手动计算单台设备的累计下线时长 - 写脚本调用Zabbix的
history.getAPI,定时计算所有设备的累计下线时长,再把结果作为自定义监控项上报
- 进入
- 上线时长:直接用
统计周期总时长 - 累计下线时长得出,也可以通过脚本直接计算并生成监控项
四、计算设备健康度
自定义健康度公式:健康度 = (累计上线时长 / 统计周期总时长) * 100%
- 实现步骤:
- 写定时脚本(比如Python脚本),按公式计算每台设备的健康度
- 在模板中新增
健康度监控项,类型设为Zabbix trapper,键值设为device.health.score,信息类型选浮点数 - 脚本通过
zabbix_sender命令上报数据,示例命令:zabbix_sender -z <Zabbix服务器IP> -s "<主机名称>" -k device.health.score -v 99.5
五、仪表盘可视化展示
- 创建专属仪表盘
- 进入
监测→仪表盘→创建仪表盘,命名为设备健康状态总览
- 进入
- 添加核心可视化组件
- 状态地图:添加
地图组件,导入设备拓扑,用颜色区分在线(绿色)、下线(红色)设备 - 健康度趋势图:添加
图形组件,选择各设备的健康度监控项,展示长期趋势 - 下线设备列表:添加
筛选组件,筛选触发设备无响应触发器的主机,实时展示下线设备 - 时长统计表格:添加
表格组件,选择自定义的累计上线时长、累计下线时长监控项,展示单台设备的时长数据
- 状态地图:添加
内容的提问来源于stack exchange,提问作者Ibrahim Khan
相关产品推荐
相关产品推荐

