zabbix-钉钉报警媒介

(1)第三方报警平台(钉钉)

先指定要发送的群,在群里创建机器人

 添加机器人

 

 可以参考   “说明文档”

创建测试文档

vim   ceshi.sh

curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51'     #添加自己的webhook
   -H 'Content-Type: application/json'
   -d '{"msgtype": "text",
        "text": {
             "content": "告警"
        }
      }'
然后执行测试,如果成功会在钉钉上发送消息

(2)查看默认脚本存放位置

命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath

命令:cd /usr/lib/zabbix/alertscripts        #进入默认脚本目录

注意:这次脚本是用python写的所以需要配置python环境才行

命令:yum -y  install python-pip             #安装python

命令:pip install requests              #安装依赖包

注意:如果安装失败,请配置阿里云yum源

命令:mkdir ~/.pip        #创建阿里云pip

命令:vim /root/.pip/pip.conf #写入下以内容

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

 看见这些说明安装成功,然后开始写脚本

命令:vim /usr/lib/zabbix/alertscripts/dingding.py         #内容如下

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
user=sys.argv[1]
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/logs/dingding.log"):
    f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/logs/dingding.log","w+")
f.write(" "+"--"*30)
if x.json()["errcode"] == 0:
    f.write(" "+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+" "+str(text))
    f.close()
else:
    f.write(" "+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + " " + str(text))
    f.close()

命令:chown zabbix.zabbix dingding.py        #添加权限

命令:mkdir -p  /usr/local/zabbix/logs       #添加消息文件

命令:touch /usr/local/zabbix/logs/dingding.log    #添加消息文档

命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log       #给消息文档添加权限

命令:chown -R zabbix.zabbix /usr/local/zabbix/logs            #给消息文件添加权限

然后在测试一下,是不是在钉钉发送消息

命令:./dingding.py test 185xxxxxxxx "这个条测试信息,忽略"  

注意:这个号码意思是你发送的群里有这个号码,引号里的内容是在钉钉的关键字里设置的 

 

(3)在zabbix网页里设置

三个参数
创建报警媒介.  三个参数分别是:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

 

 

 

 

 

 

 

 

 接下来配置动作

点击配置------>动作

 

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

下图表示触发5次动作,每隔120秒触发一次,告警发给 admin 用户,用钉钉媒介发送.

恢复参数

{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

其他默认

 

测试将虚拟机关机一下,钉钉上弹出警告,ok完成

 

我要这天再遮不住我眼,要这地再埋不了我心。要这天下众生都明白我意,要那诸佛都烟消云散!

原文地址:https://www.cnblogs.com/lixaingyang/p/12000575.html