zabbix钉钉报警

全部参考的那篇转载文档做的

1.在钉钉中添加机器人,点击头像,机器人管理

zabbix钉钉报警_第1张图片

zabbix钉钉报警_第2张图片

zabbix钉钉报警_第3张图片

添加自定义机器人,选择群组,这里我用的IP地址,填上zabbix监控的主机IP,只能这台机器连接该机器人。

得到webhook复制等下填入ding.py脚本

2.在/usr/lib/zabbix/alertscripts/下创建发送脚本(yum源安装zabbix存放脚本的默认路径,有更改的话在配置文件里查一下,grep alertscripts /etc/zabbix/zabbix_server.conf )

vim /usr/lib/zabbix/alertscripts/ding.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
#api_url后跟告警机器人的webhook
api_url = "https://oapi.dingtalk.com/robot/send?access_token=dd53f2b4476062921174157a545e8efxxxxxxa8c95c5eedcf5e3e6e35d7e1"
def msg(text):
   json_text= {
    "msgtype": "text",
    "text": {
        "content": text
    }
   }
   print(requests.post(api_url,json.dumps(json_text),headers=headers).content)
if __name__ == '__main__':
   text = sys.argv[1]
   msg(text)

3.给ding.py执行权限,并测试一下:

chmod +x ding.py
./ding.py test

出现{"errmsg":"ok","errcode":0}则发送成功,可以去钉钉上查看消息

zabbix钉钉报警_第4张图片

4.创建报警媒介

管理-->报警媒介类型-->创建媒体类型

zabbix钉钉报警_第5张图片

这里注意只需要{ALERT.MESSAGE}这个参数,代表详细内容,这个钉钉脚本只有一个位置变量,一次只发送一个消息,和邮件报警还需要收件人地址和标题的三个参数不一样。

5.配置动作

配置-->动作-->创建动作

zabbix钉钉报警_第6张图片

动作里选触发器,然后选择对应的被监控主机的触发器,可以如图添加多个

动作里的操作部分

zabbix钉钉报警_第7张图片告警通知: {EVENT.NAME}

告警时间:{EVENT.TIME}
告警项目:{TRIGGER.KEY1}
告警主机: {HOST.NAME}
告警级别: {EVENT.SEVERITY}
事件原始ID: {EVENT.ID}
{TRIGGER.URL}

注意添加操作细节,必须选一个用户或者组来操作,执行dingding报警媒介

zabbix钉钉报警_第8张图片

恢复操作

zabbix钉钉报警_第9张图片

问题已解决: {EVENT.NAME}

解决时间:{EVENT.RECOVERY.TIME}
主机: {HOST.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}
事件原始ID: {EVENT.ID}
{TRIGGER.URL}

同样别忘了操作细节,更新操作我就没加了

6.用户添加报警媒介

管理-->用户-->我是直接用admin

zabbix钉钉报警_第10张图片zabbix钉钉报警_第11张图片

7.最后测试一下,我现在加的触发器动作全是ICMP的报警,在创建报警之前就以前挂掉的机器不会触发动作,所以我又重新加了台测试机,加进去后直接关机测试

zabbix钉钉报警_第12张图片

你可能感兴趣的:(监控)