这是我的目标:我希望能够向zabbix报告各种指标,以便我们可以在网页上显示图表。
这些指标包括:
- 每个soap服务提交的延迟
- 来自一个或多个数据库的各种查询结果。
我需要编写和/或公开哪些内容?还是 zabbix 服务器会从某个暴露的服务中获取它?
我被告知返回单个值的脚本可以工作,但我想知道这是否是正确的方法。
我可以提供 2 条建议来将指标导入 Zabbix:
使用zabbix_sender
二进制文件将脚本中的数据直接提供给 Zabbix 服务器。这允许您的脚本调用它自己的时间间隔并设置所有需要的参数。你真的只需要知道zabbix_sender
二进制文件的位置。
在 Zabbix 服务器界面中,您将创建类型为Zabbix trapper
. 这是接收从 发送的值的项目类型zabbix_sender
。您组成密钥名称并且它必须匹配。
第二种方法是在文件中指定键名和脚本/二进制zabbix_agentd.conf
文件。每次 Zabbix 服务器请求此项目时,都会调用脚本并记录脚本中的数据。
这允许您在 Zabbix 项目配置中设置间隔,而不是强制您按照自己的间隔运行脚本。但是,您需要将这些额外的信息添加到zabbix_agentd.conf
每个主机的文件中。
可能还有其他方法可以直接从 Python 执行此操作(可能是 Pythonzabbix_sender
的绑定?)。但这是我之前使用过的两种方法,效果很好。这并不是真正的 Python 特定的。但是你应该能够zabbix_sender
在你的 Python 脚本中使用。希望这些信息有帮助!
更新:我还记得 Zabbix 正在开发/拥有一个 API(JSON/RPC 风格)。但是文档站点目前已关闭,我不确定该 API 是否用于提交项目数据。这是 API 上的 Wiki:http ://www.zabbix.com/wiki/doc/api
还有一个 Python API 项目:https ://github.com/gescheit/scripts/tree/master/zabbix/
API 的文档似乎很少,因为它是 Zabbix 1.8 版的新内容
实际上有一个用于 zabbix_sender 的 python 绑定。http://pypi.python.org/pypi/zbxsend