pyzabbix Zabbix发送者

时间:2018-12-13 18:53:36

标签: python zabbix

我希望使用pyzabbix的Zabbix-Sender函数将一些项目发送到zabbix。作为测试,我正在运行以下代码-

from pyzabbix import ZabbixMetric, ZabbixSender, ZabbixResponse
metrics = []
m= ZabbixMetric('mme01', 'TEST', 20)
metrics.append(m)
ZabbixSender('10.46.224.5').send(metrics)

我在阅读文档后制作了此代码段-https://py-zabbix.readthedocs.io/en/latest/sender.html

运行代码段时出现错误-

AttributeError: 'ConnectionRefusedError' object has no attribute 'msg'

我已验证IP连接

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

我决定绕过pyzabbix模块,并决定使用原始的zabbix sender实用程序。效果很好。

对于其他人,我的解决方案依赖于一个文件,该文件的值需要发送到zabbix。

样本文件-

"mme01" TEST 1544729668 44

使用实用程序-

/opt/zabbix-proxy/bin/zabbix_sender -vv -z 10.43.X.X -T  -i mme_file.txt

替换为zabbix_sender和zabbix服务器IP的路径。

答案 1 :(得分:0)

模块名称混乱。

似乎您调用了不需要方法的“其他” pyzabbix模块。 首先,删除所有与zabbix相关的模块: pip list | grep zabbix; pip uninstall ...

,然后安装pyzabbix: pip install py-zabbix

这应该有帮助。

已更新: 我进行了更深入的挖掘,发现AttributeError: 'ConnectionRefusedError' object has no attribute 'msg'由旧模块版本错误引起,该错误已得到修复here。用pip或手动更新。

我遇到的新错误是[Errno 8] nodename nor servname provided, or not known caused by socket lib,可以固定指向zabbix服务器/代理IP地址而不是DNS名称

答案 2 :(得分:0)

在我的某些机器上,我遇到了同样的问题。那时,我将代码重构为使用zabbix_sender,并且效果很好。

一段时间后,我发现问题与pip储存库损坏有关。我最终使用此选项重新安装了所有软件包:

pip install --ignore-installed <package>

显然,此问题已解决,但是我仍然不知道为什么它出现在某些机器上而不是其他机器上。