1

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

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

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

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

TL;博士:

当 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/

4

1 回答 1

4
  1. 最好的办法可能是使用 Zabbix API直接创建主机

  2. 或者,您可以设置一个操作并模拟活动代理连接,这将使 Zabbix 通过活动代理自动注册创建主机。

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

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

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

于 2016-05-23T03:46:30.270 回答