以下是我的目标:我希望能够向zabbix报告各种指标,以便我们可以在网页上显示图表。
这些指标包括:
我需要编写和/或公开哪些内容?或者zabbix服务器是否会从某个公开的服务中获取它?
我被告知,返回单个值的脚本会起作用,但我想知道这是否正确。
答案 0 :(得分:14)
我可以提供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版本的新版本
答案 1 :(得分:2)
实际上zabbix_sender有一个python绑定。 http://pypi.python.org/pypi/zbxsend