zabbix lld使用trapper方式(zabbix_sender)
自动发现脚本文件输出格式:
{ "data": [ { "{#BIND_PERF}": "BIND INCOMING QUERY" }, { "{#BIND_PERF}": "BIND INCOMING NOTIFY" }, { "{#BIND_PERF}": "BIND INCOMING A" }, { "{#BIND_PERF}": "BIND INCOMING SOA" }, { "{#BIND_PERF}": "BIND INCOMING PTR" }, { "{#BIND_PERF}": "BIND INCOMING AAAA" }, { "{#BIND_PERF}": "BIND INCOMING IXFR" }, { "{#BIND_PERF}": "BIND INCOMING AXFR" }, { "{#BIND_PERF}": "BIND INCOMING ANY" }, { "{#BIND_PERF}": "BIND OUTGOING A" }, { "{#BIND_PERF}": "BIND OUTGOING NS" }, { "{#BIND_PERF}": "BIND OUTGOING PTR" }, { "{#BIND_PERF}": "BIND OUTGOING AAAA" }, { "{#BIND_PERF}": "BIND OUTGOING DNSKEY" } ] }
使用lld方式需要发送json格式的数据到zabbix server,这时候使用-o这种模式就会报错,这种时候我们需要使用临时文件的方式发送数据,下图是Zabbix trapper 方式discovery的配置
文件存储的格式: 主机名 监控key 值,json的值必须要和主机名、监控key放在同一行,我们这里使用配置文件来读取主机名,需要使用-来代替:
- bind.parameter {"data": [{"{#BIND_PERF}": "BIND INCOMING QUERY"}, {"{#BIND_PERF}": "BIND INCOMING NOTIFY"}, {"{#BIND_PERF}": "BIND INCOMING A"}, {"{#BIND_PERF}": "BIND INCOMING SOA"}, {"{#BIND_PERF}": "BIND INCOMING PTR"}, {"{#BIND_PERF}": "BIND INCOMING AAAA"}, {"{#BIND_PERF}": "BIND INCOMING IXFR"}, {"{#BIND_PERF}": "BIND INCOMING AXFR"}, {"{#BIND_PERF}": "BIND INCOMING ANY"}, {"{#BIND_PERF}": "BIND OUTGOING A"}, {"{#BIND_PERF}": "BIND OUTGOING NS"}, {"{#BIND_PERF}": "BIND OUTGOING PTR"}, {"{#BIND_PERF}": "BIND OUTGOING AAAA"}, {"{#BIND_PERF}": "BIND OUTGOING DNSKEY"}]}
发送脚本的命令格式:
/usr/bin/zabbix_sender -c zabbix_agentd配置文件路径 '{0}'.format(json_file) 这里的json_file就是上面的文件路径
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步