【发布时间】:2011-09-14 22:31:18
【问题描述】:
这是我的目标:我希望能够向zabbix 报告各种指标,以便我们可以在网页上显示图表。
这些指标包括:
- 每个soap服务提交的延迟
- 来自一个或多个数据库的各种查询结果。
我需要编写和/或公开哪些内容?还是 zabbix 服务器会从某个暴露的服务中获取它?
我被告知返回单个值的脚本可以工作,但我想知道这是否是正确的方法。
【问题讨论】:
这是我的目标:我希望能够向zabbix 报告各种指标,以便我们可以在网页上显示图表。
这些指标包括:
我需要编写和/或公开哪些内容?还是 zabbix 服务器会从某个暴露的服务中获取它?
我被告知返回单个值的脚本可以工作,但我想知道这是否是正确的方法。
【问题讨论】:
我可以提供 2 条建议来将指标导入 Zabbix:
使用 zabbix_sender 二进制文件将脚本中的数据直接提供给 Zabbix 服务器。这允许您的脚本调用它自己的时间间隔并设置所有需要的参数。你真的只需要知道zabbix_sender 二进制文件的位置。
在 Zabbix 服务器界面中,您将创建类型为 Zabbix trapper 的项目。这是接收从zabbix_sender 发送的值的项目类型。您组成的密钥名称必须匹配。
第二种方法是在zabbix_agentd.conf 文件中指定键名和脚本/二进制文件。每次 Zabbix 服务器请求此项目时,都会调用脚本并记录脚本中的数据。
这允许您在 Zabbix 项目配置中设置间隔,而不是强制您按照自己的间隔运行脚本。但是,您需要将这些额外信息添加到每个主机的 zabbix_agentd.conf 文件中。
可能还有其他方法可以直接从 Python 中执行此操作(可能是zabbix_sender Python 绑定?)。但这是我之前使用过的两种方法,效果很好。这并不是真正的 Python 特定的。但是您应该能够在 Python 脚本中使用 zabbix_sender。希望这些信息对您有所帮助!
更新:我还记得 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
【讨论】: