运维开发网

2: Zabbix5.0使用钉钉机器人报警

运维开发网 https://www.qedev.com 2021-01-16 12:20 出处:51CTO 作者:hanye韩也
zabbix(主服务端)配置钉钉脚本centos:[[email protected]]#yuminstall-ypython2-requestsdebian:[email protected]:~#[email protected]:~#wgethttp://ftp.cn.debian.org/debian/pool/main/r/

zabbix(主服务端)配置 钉钉脚本

centos:
  [[email protected] alertscripts]# yum install -y    python2-requests

debian:
   [email protected]:~# apt-get  install -y python-urllib3
   [email protected]:~# wget  http://ftp.cn.debian.org/debian/pool/main/r/requests/python-requests_2.4.3-6_all.deb
   [email protected]:~# dpkg -i python-requests_2.4.3-6_all.deb 
   [email protected]:~# apt-get  install -y python-requests

配置开启钉钉机器人

1: 创建一个群组

2:  Zabbix5.0使用钉钉机器人报警

2: 添加一个机器人

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

3: 填写安全验证方式

2:  Zabbix5.0使用钉钉机器人报警

4: 获取机器人调用连接

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

5: 整理脚本 调用钉钉连接 发送消息

钉钉发送信息脚本

[[email protected] alertscripts]# mkdir  /usr/local/zabbix/alertscripts/
[[email protected] alertscripts]# chmod -R 777 /usr/local/zabbix/alertscripts/
[[email protected] alertscripts]# cat /usr/local/zabbix/alertscripts/dingding_alert.py 
       #!/usr/bin/env python2
       #coding:utf-8
       #zabbix钉钉报警
       import time
       import hmac
       import hashlib
       import base64
       import urllib
       import requests,json,sys,os,datetime
       #### 钉钉安全设置 选择 加密 需要提供加秘串
       timestamp = long(round(time.time() * 1000))
       secret = 'SE开头的加秘串'
       secret_enc = bytes(secret).encode('utf-8')
       string_to_sign = '{}\n{}'.format(timestamp, secret)
       string_to_sign_enc = bytes(string_to_sign).encode('utf-8')
       hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
       sign = urllib.quote_plus(base64.b64encode(hmac_code))
       #加密串访问地址
       #webhook="https://oapi.dingtalk.com/robot/send?access_token=TOKEN密钥串×tamp=$timestamp&sign=$sign"
       # 白名单 访问当时 需要把自己的IP地址添加到钉钉 安全设置 里面
       webhook="https://oapi.dingtalk.com/robot/send?access_token=TOKEN密钥串"
       user=sys.argv[1]
       tag=sys.argv[2]
       text=sys.argv[3]
       data={
           "msgtype": "text",
           "text": {
               "content": text

           },
           "at": {
               "atMobiles": [
                   user
               ],
               "isAtAll": False
           }
       }
       headers = {'Content-Type': 'application/json'}
       x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
       if os.path.exists("/usr/local/zabbix/log/dingding.log"):
           f=open("/usr/local/zabbix/log/dingding.log","a+")
       else:
           f=open("/usr/local/zabbix/log/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()
[[email protected] alertscripts]# mkdir  /usr/local/zabbix/log/ -p
[[email protected] alertscripts]# chmod -R 777  /usr/local/zabbix/log/ 
[[email protected] alertscripts]# chmod +x dingding_alert.py
[[email protected] alertscripts]# ./dingding_alert.py  钉钉号  服务器警告  nginx服务器警告  #测试发送
      #第一个参数: 钉钉手机号 
      #第二个参数: 头部信息
      #第三个参数: 具体发送信息

配置zabbix 报警媒介

2:  Zabbix5.0使用钉钉机器人报警

新增报警媒介

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

配置报警信息模板

2:  Zabbix5.0使用钉钉机器人报警

报警模板

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

告警地址:{TRIGGER.URL}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

2:  Zabbix5.0使用钉钉机器人报警

恢复模板

告警恢复 {EVENT.DURATION}: {EVENT.NAME}

告警恢复 {EVENT.DURATION}: {EVENT.NAME}

告警主机:{HOST.NAME}

告警信息:{TRIGGER.NAME}

告警项目:{ITEM.NAME}

告警地址:{TRIGGER.URL}

告警时间:{EVENT.DATE}{EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}

当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE}

故障共持续{EVENT.AGE}

事件ID:{EVENT.ID}

2:  Zabbix5.0使用钉钉机器人报警

设置用户

2:  Zabbix5.0使用钉钉机器人报警

设置用户配置

2:  Zabbix5.0使用钉钉机器人报警

设置报警媒介

2:  Zabbix5.0使用钉钉机器人报警

设置动作

我这里直接设置的Admin用户

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

问题操作

2:  Zabbix5.0使用钉钉机器人报警

恢复操作

2:  Zabbix5.0使用钉钉机器人报警

测试发送信息

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

2:  Zabbix5.0使用钉钉机器人报警

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号