我已使用Zabbix 3.0服务器在Digital Ocean上配置了一个Ubuntu 14.04服务器。我现在正在尝试将PagerDuty服务(www.pagerduty.com)整合到Zabbix上。我安装了PagerDuty zabbix代理,可以在Ubuntu上通过CLI触发与该代理的事件。但是,当Zabbix中有触发器时,PagerDuty代理不会将事件发送给PagerDuty。但是我可以看到Zabbix发出了PagerDuty警报,但显然有些东西被打破了。
我从哪里开始调试此问题?
答案 0 :(得分:2)
我假设您遵循了Zabbix 2.x的PagerDuty说明
确保pd-zabbix
位于Zabbix可以找到的位置,我认为Zabbix 2正在/etc/zabbix/alerts.d
寻找它,而Zabbix 3似乎正在寻找/usr/lib/zabbix/alertscripts
然后确保zabbix正确调用pd-zabbix
,以调试我创建了一个只将命令行参数和stdin记录到文件的脚本:
#!/usr/bin/env python
from __future__ import print_function
import sys
with open('/tmp/pd-zabbix.log', 'a+') as f:
print("args:", sys.argv, file=f)
print(sys.stdin.read(), file=f)
print("-----", file=f)
我注意到Zabbix 3.x没有传递任何参数。在Zabbix 3.x中,您可以准确定义它传递的内容和顺序。转到管理 - > 媒体类型 - >单击您可能定义的PagerDuty媒体(您选择的类型脚本并写入pd-zabbix
)并添加以下参数(作为3个单独的参数)
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
希望它有所帮助。