{ "data": [ { "{#DISKNAME}": "sda1" }, { "{#DISKNAME}": "sda2" } ] }
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
# 生成 A1 到 A1000 的磁盘名
disk_list = ["A{}".format(i) for i in range(1, 1001)]
# 构造符合 Zabbix LLD 的数据结构
lld_data = {
"data": [
{"{#DISKNAME}": disk} for disk in disk_list
]
}
# 输出 JSON 格式
print(json.dumps(lld_data, indent=4, ensure_ascii=False))
将以上脚本放到zabbix外部检查脚本目录下后,创建一台用于生成指标的主机
在此主机下,创建一个自动发现规则,类型选择外部检查,键值选择我们刚才新建的脚本即可
在此发现规则下,创建一个监控项原型,类型选择zabbix采集器,方便进行接收数据
创建好之后,即可手动执行此发现规则
执行后,可以看到生成了1000个监控项
以上步骤做好之后,还需要往监控项上报数据,这里通过zabbix_sender的方式进行。
以下为脚本举例:
#!/bin/bash
for i in $(seq 1 1000); do
#echo "A[A$i]"
/itops/zabbix/bin/zabbix_sender -z 127.0.0.1 -s test -k "A[A$i]" -o '0.01'
执行此脚本后,可看到监控项已有数据。
至此,已简单实现批量生成监控项目。后续也可根据实际需求,进行监控类型,信息类型的更改,用于测试更复杂的场景~
错误信息