zabbix基于钉钉报警
准备工作
1,安装钉钉---注册钉钉账号。
首先创建一个群聊把需要得到监控信息的人加到一起.
在钉钉上面添加一个机器人.
创建机器人
机器人添加成功
2、登陆zabbix-server的机器创建python脚本:
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/
[root@zabbix-server alertscripts]# vim dingding.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "" ---这里就是刚才复制钉钉的那个webhook
def msg(text):
json_text= {
"msgtype": "text",
"at": {
"atMobiles": [
""
],
},
"text": {
"content": text
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
[root@zabbix-server alertscripts]# chmod 777 dingding.py
[root@zabbix-server alertscripts]# chown zabbix.zabbix dingding.py
[root@zabbix-server alertscripts]# ll
total 8
-rwxrwxrwx 1 zabbix zabbix 631 Sep 22 23:06 dingding.py
-rwxr--r-- 1 zabbix zabbix 70 Sep 22 22:19 sendmail.sh
[root@zabbix-server alertscripts]# yum -y install python-requests python #安装python与请求模块
手动测试钉钉报警:
[root@zabbix-server alertscripts]# ./dingding.py 业务报警 #发送的报警信息中需要添加关键字
{"errcode":0,"errmsg":"ok"}
由于之前已经配置好监控项和触发器了。就直接配置zabbix的报警媒介
开始配置web界面:
示警媒体的配置:
点击 管理->报警媒介类型->创建媒体类型
1.然后在页面中填入你的报警媒介类型信息,例如下所示:
注:脚本名称任意,存放于/usr/lib/zabbix/alertscripts (生产上的测试服放这:/usr/local/zabbix/share/zabbix/alertscripts)
名称:dingding #名称任意
类型:脚本
脚本名称:dingding.py
脚本参数: #一定要写,否则可能发送不成功
{ALERT.MESSAGE} #照填,邮件正文变量,变量值来源于‘动作’中的‘默认信息’
配置完成后,不要忘记点击存档,保存你的配置
管理---用户--Admin--报警媒介--添加
创建监控项
触发器的配置:
接下来,点击配置->主机->node1->触发器->创建触发器
动作的配置: 点击:配置->动作->事件源下拉菜单中选择触发器->创建动作
名称: redis-port
默认信息:邮件的主题
Problem:{TRIGGER.NAME}
故障恢复: {TRIGGER.NAME}
业务告警
主机: {HOST.NAME1}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {TRIGGER.SEVERITY}
触发: {TRIGGER.NAME}
详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
状态: {TRIGGER.STATUS}
项目:{TRIGGER.KEY1}
事件ID:{EVENT.ID}
恢复邮件:
恢复主题:
服务器:【{HOSTNAME1}】故障已恢复。故障原因:{TRIGGER.NAME}
恢复信息:恢复邮件的正文。当故障恢复正常后也发邮件通知一下
恢复操作
测试报警:
[root@zabbix-node2 ~]# yum install -y nginx
[root@zabbix-node2 ~]# systemctl start nginx
停止nginx触发报警
[root@zabbix-node2 ~]# systemctl stop nginx
[root@zabbix-node2 ~]# systemctl start nginx