zabbix 钉钉报警

Zabbix可以通过多种方式来实现告警信息的提示,我们采用DingDing软件的接口来为用户进行告警提示:

1、在钉钉中创建机器人,复制钉钉机器人接口信息。

https://oapi.dingtalk.com/robot/send?access_token=621765344607df151927939a6af75903df789bd030032f21e06578976dcbacacddl987c80317f2265c

 

2、Zabbix创建发送通道,Zabbix管理控制台:Administration-->Media Types--Create Media Type

zabbix 钉钉报警

设置通道相关信息:在类型中我们选择“Script”,脚本名称:“正确填写我们需要创建的脚本名称,此名称需要我们在Zabbix服务端创建的脚本名称一致”。

zabbix 钉钉报警

 

3、创建动作,并定义相应告警参数。Zabbix管理控制台:Configuration-->Actions-->Create Action设置Actions 基本信息内容:设置动作条件为,处于非维护状态,且触发器级别>=Warning

zabbix 钉钉报警

在Operations 与 Recover Operations 标签页中添加宏参数。

zabbix 钉钉报警

设置当动作发生时候进行的操作为给Admin用户发送信息

zabbix 钉钉报警

 

4、配置用户,Zabbix 管理控制台:Administration-->User,编辑用户属性添加之前创建的 Media项目。

zabbix 钉钉报警

 

5、Zabbix服务端创建发送信息脚本“SendMessage.py” ,此脚本可以直接copy到其他机器上进行使用

[[email protected] alertscripts]# pwd

/lib/zabbix/alertscripts

[[email protected] alertscripts]# vim SendMeassage.py

#!/usr/bin/env python

 

import os

import sys

 

text = sys.argv[1]

dd_api='https://oapi.dingtalk.com/robot/send?access_token=621765344607df151927939a6af75903df789bd030032f21e06578976dcbacacddl987c80317f2265c'

Json = 'Content-Type: application/json'

 

Text = """

{

"msgtype": "text",

"text": {

"content": "%s"

}

}

"""%(text)

 

CMD="/usr/bin/curl '%s' -H '%s' -d '%s'"%(dd_api,Json,Text)

os.system(CMD)

 

6、修改SendMeassage.py为可执行文件

[[email protected] alertscripts]# chmod +x SendMeassage.py

 

7、编辑Zabbix 服务conf文件,设置告警脚本为特定路径

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts

 

8、测试脚本是否能够正常运行

[[email protected] alertscripts]# python SendMeassage.py test

 

zabbix 钉钉报警