【发布时间】:2017-05-15 10:06:18
【问题描述】:
Zabbix 3.2.5 in docker on alpine image(官方构建)
我的外部脚本有问题并返回了 JSON。 脚本 json_data.sh 是:
#!/bin/bash
# Generate JSON data for zabbix
declare -i i
fields=$1
data=($2)
json=""
i=0
while [ $i -lt ${#data[*]} ]; do
row=""
for f in $fields; do
row+="\"{#$f}\":\"${data[$i]}\","
i+=1
done
json+="{${row%,}},"
done
echo "{\"data\":[${json%,}]}"
关键字符串是:
json_data.sh["IP", "127.0.0.1 127.0.0.2 127.0.0.3"]
我用文本项测试它并有结果
2539:20170515:095829.375 zbx_popen(): executing script
{"data":[{"{#IP}":"127.0.0.1"},{"{#IP}":"127.0.0.2"},{"{#IP}":"127.0.0.3"}]}
所以脚本返回有效的 JSON,但在服务发现中我仍然有错误 值应该是 JSON 对象。 那个 JSON 有什么问题?
Template Settings 在截图 {$IPLIST} 中只是宏 = "127.0.0.1 127.0.0.2 127.0.0.3"
【问题讨论】:
-
哪个版本的 Zabbix? LLD 规则中是否使用了此密钥? LLD 规则项类型是什么?您确定错误来自最新版本/调用(在进行最新更改后您是否等待了至少 10 分钟)?
-
对不起。忘记那个。 Zabbix 3.2.5
-
由于发现错误,没有进入该项目。
-
我等了一整天,没有任何变化。
-
我用
#!/bin/bash echo { "data": [{ "{#IP}": "127.0.0.1"}, {"{#IP}": "127.0.0.2"}, {"{#IP}": "127.0.0.3"}]}制作了自定义脚本,但仍然有同样的错误。
标签: json bash zabbix discovery