使用zabbix_sender进行主机发现

时间:2016-05-23 01:28:27

标签: zabbix autodiscovery

我正在编写一个通过HTTP API从远程设备传送数据的应用程序。这些设备采用移动数据连接,资源有限。

我希望通过HTTP API接收自定义监控数据,依赖于应用程序中设计的安全模型,并直接(或间接)从node.js将数据推送到Zabbix。我不想在远程设备上使用Zabbix Agent。

我看到我可以使用zabbix_sender将数据发送到包含预配置主机的Zabbix服务器。这非常有效。我打算通过我的自定义API提供监控数据,并在收到时将这些数据提供给服务器网络内的zabbix_sender。

问题是该领域有许多设备,并且一直在增加更多设备。

TL; DR:

当zabbix_sender提供Zabbix中不存在的自定义主机名时,它会失败。

我想基于zabbix_sender的新主机名自动添加发现的主机。我该怎么做?

另外,如果有人可以提供如何避免zabbix_sender并直接从node.js向Zabbix服务器发送数据的示例,则需要额外尊重。我的意思是:建议您使用的NPM包。 (更新:在此处找到工作node.js包:https://www.npmjs.com/package/node-zabbix-sender

Zabbix配置:我正在学习Docker中安装的Zabbix 2.4,没有来自Dockerhub的自定义配置:https://hub.docker.com/r/zabbix/zabbix-2.4/

1 个答案:

答案 0 :(得分:3)

  1. 最好的办法是将Zabbix API直接用于create hosts

  2. 或者,您可以设置操作并模拟活动代理连接,这将使Zabbix通过active agent auto-regstration创建主机。

  3. 您还可以使用low level discovery(LLD)发送JSON,这将导致基于原型创建主机/项目。

  4. 在所有这些情况下,您必须等待一分钟(默认情况下),以便主机出现在Zabbix缓存中,然后您可以发送数据。

    另请注意,Zabbix 2.4不再受支持,它将不会获得任何修复 - 它不是“长期支持”版本。