Zabbix发送者。发现规则。主机原型

时间:2019-09-03 10:36:34

标签: zabbix

我想在zabbix服务器上自动创建主机,而无需在主机上使用代理。尝试使用发现规则并通过data发送JSON zabbix_sender。但是没有运气。服务器不接受data

Environment:
Zabbix server 3.4 installed on Centos 7.Hosts with Windows or Ubuntu.

在服务器上,我创建了名为host的{​​{1}} 在该主机中,我使用密钥zab_trap创建了发现规则,然后键入zab_trap.discovery。然后在发现规则中,我创建了名为{#RH.NAME}的Host原型。

带有JSON“数据”的命令行:

Zabbix_trapper

我希望将创建“ HOST1”。但是执行后我得到了:

zabbix_sender.exe -z zab_server -s zab_trap -k zab_trap.discovery -o "{"data":[{"{#RH.NAME}":"HOST1"}]}"

zabbix_server.log中没有错误(调试级别为5) 我看到了:

"info from server: "processed: 0; failed: 1; total: 1; seconds spent: 0.000188"
sent: 1; skipped: 0; total: 1"

我认为JSON语法可能有问题。

请帮助。

2 个答案:

答案 0 :(得分:1)

似乎我找到了解决方法。问题以发送JSON的方式隐藏。据我了解,如果直接在命令行中写入JSON,它将无法正常工作或语法(引用)有问题。但是,如果zabbix_sender使用JSON发送文件,则可以使用。

命令行:

zabbix_sender -z zab_server -s zab_trap -i test.json

文件test.json包含以下行:

-zab_trap.discovery {“ data”:[{“ {#RH.NAME}”:“ HOST1”}]}

主机已创建。

答案 1 :(得分:1)

如果要使用命令行而不使用json文件,则需要使用以下命令清除字符串:

zabbix_sender.exe -z zab_server -s zab_trap -k zab_trap.discovery -o“ $(echo'{” data“:[{” {#RH.NAME}“:” HOST1“}]}}'| tr- cd'[:print:]')“