zabbix配置钉钉机器人告警

1.在钉钉上创建一个钉钉群组

2.在群组中添加一个机器人

zabbix配置钉钉机器人告警_第1张图片 

zabbix配置钉钉机器人告警_第2张图片 

 zabbix配置钉钉机器人告警_第3张图片

 zabbix配置钉钉机器人告警_第4张图片

 zabbix配置钉钉机器人告警_第5张图片

3.配置zabbix server调用钉钉接口的代码(使用python)

查看是否有python环境

python --version

 找到zabbix 的AlertScriptsPath目录路径

 cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath

将调用钉钉接口的python文件放在AlertScriptsPath目录路径下

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

import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=af7a0a3b604b4ada3fb2667a8c7f92463c23302bda2765f2b6e3a91c0996615b"  #此处将刚刚记录的Webhook粘贴进来替换掉即可
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": True
    }
}
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+")   #dingding.log记录了发送的消息记录
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()

给python文件增加执行权限

chmod +x /usr/lib/zabbix/alertscripts/dingding.py

创建python文件中的日志文件

touch /var/log/zabbix/dingding.log

给日志文件更改所属用户和组

chown zabbix.zabbix /var/log/zabbix/dingding.log

测试python文件(若是测试有报错一般是没有对应的库,把报错的库安装上即可)

/usr/lib/zabbix/alertscripts/dingding.py a  b  "zabbix:测试"

zabbix配置钉钉机器人告警_第6张图片

 4.在zabbix server中配置报警媒介类型

zabbix配置钉钉机器人告警_第7张图片

 zabbix配置钉钉机器人告警_第8张图片

 zabbix配置钉钉机器人告警_第9张图片

 zabbix配置钉钉机器人告警_第10张图片

 zabbix配置钉钉机器人告警_第11张图片

 zabbix配置钉钉机器人告警_第12张图片

 zabbix配置钉钉机器人告警_第13张图片

 zabbix配置钉钉机器人告警_第14张图片

 zabbix配置钉钉机器人告警_第15张图片

 问题的消息模板

zabbix message
告警主机:{HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
当前状态:{TRIGGER.STATUS}
事件ID:{EVENT.ID}
触发器ID:{TRIGGER.ID}
告警项目:{ITEM.NAME}
告警值:{ITEM.VALUE}
问题详情:{ITEM.DESCRIPTION}

问题恢复的消息模板

zabbix message
恢复主机:{HOST.NAME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
恢复信息:{TRIGGER.NAME}
当前状态:{TRIGGER.STATUS}
事件ID:{EVENT.ID}
触发器ID:{TRIGGER.ID}
恢复项目:{ITEM.NAME}
恢复值:{ITEM.VALUE}
问题详情:{ITEM.DESCRIPTION}

5.配置动作

zabbix配置钉钉机器人告警_第16张图片

 zabbix配置钉钉机器人告警_第17张图片

 zabbix配置钉钉机器人告警_第18张图片

 zabbix配置钉钉机器人告警_第19张图片

 zabbix配置钉钉机器人告警_第20张图片

 zabbix配置钉钉机器人告警_第21张图片

6.配置用户 

zabbix配置钉钉机器人告警_第22张图片

 zabbix配置钉钉机器人告警_第23张图片

7.测试

将一台被zabbix监控的机器的zabbix agent服务关闭,看是否会收到钉钉告警

systemctl stop zabbix-agent

zabbix配置钉钉机器人告警_第24张图片

 

你可能感兴趣的:(zabbix,机器人,zabbix,钉钉)