Zabbix LLD值应该是JSON对象

时间:2017-12-21 07:45:48

标签: monitoring zabbix

好的!以下是具有相应查询的方案:

1)我正在使用bash脚本为自定义进程的状态生成JSON对象。

2)在zabbix_agentd.conf文件中提供bash:

UserParameter=service.check[*],/usr/lib/zabbix/externalscripts/service_check.bash

我想在UserParameter中将进程名称作为参数提供给bash文件,我该怎么做?

3)重新启动zabbix-agent并使用zabbix-get检查会产生一个空的JSON(因为我们没有给出任何进程名称):

{
    "data":[


    ]
}

4)如果我在UserParameter中提供进程名称:

UserParameter=service.check[*],/usr/lib/zabbix/externalscripts/service_check.bash apache2 ntp cron

它产生以下结果:

{
     "data":[

我知道这是错误的,因为我需要以不同的方式传递进程名称。我尝试在bash脚本中传递它们,即使这样它也会生成一个无效的json。

5)生成的JSON将由Zabbix类型" Zabbix代理"的Zabbix发现规则处理,它将在进程名称之外创建不同的项目。以下是我的脚本应发送的JSON:

{"data":[{"{#NAME}":"apache2","{#STATUS}":"RUNNING","{#VALUE}":"1"},{"{#NAME}":"ntp","{#STATUS}":"RUNNING","{#VALUE}":"1"},{"{#NAME}":"cron","{#STATUS}":"STOPPED","{#VALUE}":"0"}]}

我本可以使用zabbix-sender,但是我需要为每个需要发送的键值运行发送方。此外,这种方式我只关心在一个地方操纵数据,其余的将被处理。

希望这很清楚并解释我的情况。

0 个答案:

没有答案