【问题标题】:Zabbix Discovery with External check JSON带有外部检查 JSON 的 Zabbix Discovery
【发布时间】: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"

Error

【问题讨论】:

  • 哪个版本的 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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多