本教程一共分成三个部分
1、钉钉环境准备
2、zabbix服务器环境准备
3、zabbix web端调试
钉钉环境准备
到钉钉官网下载pc版钉钉,安装、注册、登陆:
钉钉下载地址:https://www.dingtalk.com/
1)创建一个群聊设置好类型
2)创建好群聊之后进入群助手
3)添加钉钉机器人
4)自定义一个机器人
5)点击添加
6)相关参数填写好,安全设置要填写好,事关触发消息推送的字段,我这边设置告警字段
7)记住这个地址后面要用到,地址很重要
zabbix 服务器环境准备
2脚本配置:
(1)、查看zabbix-server脚本存放的位置:
[root@localhost ~]# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
(2)、创建钉钉报警脚本
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# vim dingding.pv 创建一个批处理文件 python脚本文件名
(3)、复制这段脚本、亲测可用 只需要改动地址,其他不用改
#!/usr/bin/python
# -*- coding: utf-8 -*-
#zabbix 钉钉告警
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "这个地址为刚刚钉钉机器人复制的链接"
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
"1xxxxxxxxxxxxx"
],
"isAtAll": False
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
(4)、赋予脚本执行权限和创建日志文件
[root@localhost alertscripts]# chmod +x dingding.py
[root@localhost alertscripts]# touch /var/log/zabbix/dingding.log
[root@localhost alertscripts]# chown zabbix.zabbix /var/log/zabbix/dingding.log
(5) 、测试钉钉发送
[root@localhost alertscripts]# ./dingding.py test
测试成功如图
注意:该脚本要求至少python2.6.6版本,且具有requests模块,否则会报如下错误:
解决方法
yum install python-pip -y
pip install -- upgrade pip
pip install requests
zabbix web端准备步骤
1)创建报警媒介
2)
脚本参数:
{ALERT.SENDTO} #发给钉钉群中哪个用户)。
{ALERT.SUBJECT} #代表发送的信息的标题,在"报表"的"动作日志"中可以看到
{ALERT.MESSAGE} #发送告警信息
3)创建报警动作,将报警发送给Admin用户
4)创建一个触发消息的动作
5)分别添加告警操作和恢复操作
6)设置告警操作
注释
主题 故障问题:{EVENT.NAME}
消息
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
7)设置恢复操作
注释
主题 故障恢复:{EVENT.NAME}
消息
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.RECOVERY.TIME}
故障持续时间:{EVENT.AGE}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
8)给Admin用户添加报警媒介
收件人可以是钉钉用户的电话号码或者钉钉号,一般电话号码为主
9)去钉钉群里测试告警信息
下面来自我介绍一下吧:
我是叶子一名95后打工人,每天的工作是负责网络运维这块,我会经常在这里分享实用的IT职场技能,欢迎你们来@积极的叶子 的屋子来做客呀!有什么不懂的随时在评论区留言,每天多讨论技术,离成功就不远了!