zabbix 配置钉钉告警

zabbix 配置钉钉告警

zabbix监控,实现指定的监控内容,进行钉钉告警推送。

流程:

  • 钉钉机器人获取webhook及zabbix告警字段
  • server上配置钉钉告警脚本
  • 管理项-添加告警媒介,并赋予给用户(用户添加报警媒介“钉钉告警”)
  • 配置项-添加动作(监控项状态通过钉钉发送告警)
  • 测试

第一步,钉钉机器人获取webhook及zabbix告警字段

关于创建钉钉机器人,我前面文章有写,或者自行百度也可以

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-41.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

第二步,server上配置钉钉告警脚本

python脚本,需安装python及requests模块

#安装epel源
yum -y install epel-release
#安装python及依赖模块
yum -y install python && yum -y install python-pip  && pip install requests

查看zabbix-server脚本路径:

grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-39.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

(我的查询:/usr/lib/zabbix/alertscripts)

在此目录下创建钉钉脚本:

vi /usr/lib/zabbix/alertscripts/dingding.py

脚本内容如下:

  • 注意:第1行,查看你的python路径是否一致
  • 注意:第5行,改为你的webhook路径
  • 注意:第18行,发消息是@所有人还是只@配置的消息发送人
  • 注意:dingding.log文件,需提前创建!或者改为自己的log路径
#!/usr/bin/python
#coding:utf-8
import requests,json,sys,os,datetime
# 机器人的Webhook地址
webhook="你的钉钉webhook"
user=sys.argv[1]
text=sys.argv[3]
data={
 "msgtype": "text",
 "text": {
 "content": text
 },
 "at": {
 "atMobiles": [
 # 在web端用户绑定媒介中通过指定用户注册是的手机号,可以通知指定人员,否则只发消息,不艾特具体人
 user
 ],
 "isAtAll": 1
 # 设置为1,则@所有人
 # "isAtAll": 1
 # 设置为0,则@一个人
 # "isAtAll": 0
 }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
 f=open("/var/log/zabbix/dingding.log","a+")
else:
 f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
 f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
 f.close()
else:
 f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
 f.close()

创建dingding.log日志文件

#创建dingding.log
touch/var/log/zabbix/dingding.log
#授权给zabbix
chown zabbix:zabbix /var/log/zabbix/dingding.log

测试dingding.py

#添加执行权限
chmod +x /usr/lib/zabbix/alertscripts/dingding.py
#测试
/usr/lib/zabbix/alertscripts/dingding.py 《钉钉用户名或手机号》test "《带关键字的消息》" 
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-42.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

脚本测试没问题,日志和钉钉都查看到消息,ok。

第三步:管理项-添加告警媒介,并赋予给用户

登录web管理,管理项添加钉钉告警媒介

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-43.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

添加报警媒介类型:

脚本参数:
#对应脚本中的,user=sys.argv[1](发给钉钉群中哪个用户)。
{ALERT.SENDTO}

#代表发送的信息的标题,在"报表"的"动作日志"中可以看到。
{ALERT.SUBJECT}

#对应脚本中的,text=sys.argv[3](发送的报警内容)。
{ALERT.MESSAGE}
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-44.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

添加消息模板:消息模板中加入你钉钉的“关键字”

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-45.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

通过web平台测试:钉钉媒介

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-46.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

用户并赋予钉钉告警媒介权限,选择默认管理员

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-47.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-48.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

第四步,配置项-添加动作

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-49.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-50.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

添加“操作”

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-51.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

实现效果:监控项发生改变将发送消息给admin赋值的媒介消息。

测试:

我这个教程中,监控项是nginx的存活状态

当监控的主机nginx停止和恢复时,钉钉收到的消息

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-52.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
good good study, day day up!

发表评论

textsms
account_circle
email

zabbix 配置钉钉告警
zabbix监控,实现指定的监控内容,进行钉钉告警推送。 流程: 钉钉机器人获取webhook及zabbix告警字段server上配置钉钉告警脚本管理项-添加告警媒介,并赋予给用户(用户添加报警媒…
扫描二维码继续阅读
2021-11-05