首页 > 技术文章 > zabbix配置钉钉机器人告警

shipment 2020-07-20 19:37 原文

zabbix配置钉钉机器人告警

1. 在钉钉中创建群聊,在群里面添加自定义机器人

保存Webhook url链接,安全中定义相关设置,我这里使用关键字,只有信息内容中有关键字的才会被机器人发送

2. 配置钉钉告警脚本

#安装python依赖模块python-requests
[root@localhost ~]# yum -y install python-requests

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: bboysoul
import requests
import json
import sys
import os
 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "钉钉机器人webhook url"
 
def msg(text):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "需要@人的手机号"
            ],
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
     
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

将上边的python代码存放在zabbibx服务端的告警脚本的位置

在zabbix_server.conf中配置告警脚本的路径
# AlertScriptsPath=${datadir}/zabbix/alertscripts
我这里修改为
AlertScriptsPath=/usr/local/etc/zabbix/alertscripts
[root@localhost ~]# chown -R zabbix.zabbix /usr/local/etc/zabbix

[root@localhost ~]# vim /usr/local/etc/zabbix/alertscripts/dingding.py
#将上面的python脚本粘粘到/usr/local/etc/zabbix/alertscripts/dingding.py
#将脚本中的webhook url和需要@的人手机号修改


3. 配置脚本告警

3.1 创建媒介

Administration---> Media Type --->Create media type


#消息可以使用下面的模板,也可以用自带的模板(钉钉要添加关键词)
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!

告警主机:{HOSTNAME1},IP地址:{HOST.CONN}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

3.2 为用户添加对应媒介

Administration---> Users --->Admin

3.3 创建动作

Configuration---> Actions --->Create action



4. 触发,查看

使用系统自带的模板中的触发器触发

[root@client ~]# useradd xiaoming
[root@client ~]# id xiaoming
uid=1005(xiaoming) gid=1005(xiaoming) groups=1005(xiaoming)

推荐阅读