Zabbix Discovery与外部检查JSON

时间:2017-05-15 10:06:19

标签: json bash zabbix discovery

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,但我在服务发现中仍然有错误 Vallue应该是JSON 对象。 这个JSON有什么问题?

Template Settings在屏幕截图{$ IPLIST}中,只有macro =“127.0.0.1 127.0.0.2 127.0.0.3”

Error

1 个答案:

答案 0 :(得分:1)

这是错误。当DebugLevel大于3时,Zabbix将调试输出的一部分与值数据混合。像zbx_popen(): executing script这样的东西。 ZBX-12195的解决方案将被修复。