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

centos:  [root@k8s-master01 alertscripts]# yum install -y    python2-requestsdebian:   root@debian1:~# apt-get  install -y python-urllib3   root@debian1:~# wget  http://ftp.cn.debian.org/debian/pool/main/r/requests/python-requests_2.4.3-6_all.deb   root@debian1:~# dpkg -i python-requests_2.4.3-6_all.deb    root@debian1:~# 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: 整理脚本 调用钉钉连接 发送消息

钉钉发送信息脚本

[root@k8s-master01 alertscripts]# mkdir  /usr/local/zabbix/alertscripts/[root@k8s-master01 alertscripts]# chmod -R 777 /usr/local/zabbix/alertscripts/[root@k8s-master01 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()[root@k8s-master01 alertscripts]# mkdir  /usr/local/zabbix/log/ -p[root@k8s-master01 alertscripts]# chmod -R 777  /usr/local/zabbix/log/ [root@k8s-master01 alertscripts]# chmod +x dingding_alert.py[root@k8s-master01 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使用钉钉机器人报警

更多相关文章

  1. 如何检测用户有关退出页面的信息?
  2. Google地图信息窗口左箭头,右箭头传递TypeError:无法读取未定义的
  3. jquery 鼠标悬停显示信息提示框
  4. 谷歌地图信息窗口按钮没有显示?
  5. 在使用javascript将信息输入到输入字段时填充文本区域
  6. 注册的时候,点击注册按钮,用jquery怎么直接在前端打印后台返回的信
  7. Android+Jquery Mobile学习系列(6)-个人信息设置
  8. DataTables警告:table id = DataTables_Table_0 - Ajax错误。有
  9. jquery ajax 提交信息后等待返回的提示信息

随机推荐

  1. C#中DataSet的用法
  2. c语言注释符号是什么?
  3. c语言字符串定义的方法是什么
  4. c语言除法如何运算
  5. c语言二进制输出的方法
  6. c语言简单小游戏-扫雷游戏
  7. c语言程序的调试方法
  8. c语言求x的n次方的函数是什么
  9. c语言中合法的字符常量如何定义?
  10. c语言逗号表达式的运算规则