2017-05-15 91 views
0

的zabbix 3.2.5在高山上的图像(官方版本)泊坞窗的zabbix发现与外部的检查JSON

我有一些问题,外部脚本和返回的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}只是宏观= “127.0.0.1 127.0.0.2 127.0.0.3”

Error

+0

哪个版本的Zabbix?这是LLD规则中使用的关键吗?什么是LLD规则项目类型?您确定错误来自最新的版本/调用(您是否在进行最新更改后至少等待了10分钟)? – Richlv

+0

对不起。忘了那个。 Zabbix 3.2.5 –

+0

由于发现错误,它不会转到该项目。 –

回答

1

这是错误。当DebugLevel大于3时,Zabbix将调试输出的一部分与值数据混合在一起。像zbx_popen(): executing script之类的东西。 解决方案将DebugLevel降至3或更低,并等待至ZBX-12195将被修复。