我希望使用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连接
任何人都可以帮忙吗?
答案 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>
显然,此问题已解决,但是我仍然不知道为什么它出现在某些机器上而不是其他机器上。