码迷,mamicode.com
首页 > 其他好文 > 详细

超详细配置Zabbix监控通过钉钉实现报警(3.4和4.0版本)

时间:2020-05-20 18:39:27      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:动作   lib   pytho   access   ndt   zabbix3   har   dingding   必须   

博文目录

一、Zabbix配置通过钉钉报警

1、安装配置钉钉

2、配置钉钉报警媒介

3、配置钉钉报警动作

4、钉钉查看报警信息

关于Zabbix监控系统的搭建这里就不多说了,直接进入正题,配置通过企业微信实现告警。

有关Zabbix工作原理及概述请参考博文:Centos 7搭建Zabbix 4.0监控系统

关于Zabbix自定义监控项及监控客户端请参考博文:Zabbix 3.4配置监控项及监控Linux、Windows客户端

关于Zabbix监控通过邮件告警请参考博文:配置Zabbix监控实现邮件报警(3.4和4.0版本)

关于Zabbix监控通过企业微信告警请参考博文:

本博客将会接着配置Zabbix3.4及4.0版本通过企业微信报警(全网最详细)环境继续进行,如有不明白请参考以上博客。

一、Zabbix配置通过钉钉报警

1、安装配置钉钉

安装钉钉软件,自行注册账号https://www.dingtalk.com/

1)登录钉钉,创建群聊,添加至少两名联系人

技术图片

技术图片

2)通过智能群助手添加机器人

技术图片

技术图片

技术图片

3)选择自定义机器人

技术图片

技术图片

4) 编辑机器人名字,添加到刚刚创建的群组,安全设置选IP地址,需要在zabbix服务获取出口IP地址

[root@centos01 alertscripts]# curl ip.sb
183.199.188.205

技术图片

5)保存获取的wehook

https://oapi.dingtalk.com/robot/send?access_token=9f9249cd4699fe68dd3d3655d3bd1f15cd81fcb71788eccc46d8c51f66d758b2

技术图片

6)zabbix服务器修改主配置文件

[root@centos01 ~]# vim /etc/zabbix/zabbix_server.conf
480 AlertScriptsPath=/usr/lib/zabbix/alertscripts

7)进入/usr/lib/zabbix/alertscripts/下创建脚本,写入内容

[root@centos01 ~]# vim /usr/lib/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#  https://www.aityp.com
## mobified by benson , remove config file

import requests
import json
import sys
import os
import time
#import configparser

headers = {‘Content-Type‘: ‘application/json;charset=utf-8‘}
time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

log_file = "/tmp/zabbix.log"
api_url = "https://oapi.dingtalk.com/robot/send?access_token=9f9249cd4699fe68dd3d3655d3bd1f15cd81fcb71788eccc46d8c51f66d758b2"   <!--机器人获取的webhook-->

def log(info):
    <!--注意权限,否则写不进去日志-->
    if os.path.isfile(log_file) == False:
               f = open(log_file, ‘a+‘)

    f = open(log_file,‘a+‘)
    f.write(info)
    f.close()

def msg(text,user):
    json_text= {
     "msgtype": "markdown",
        "markdown": {
            "title":"zabbix monitor",
            "text": text
        },
        "at": {
            "atMobiles": [
                user
            ],
            "isAtAll": True
        }
    }

    r=requests.post(api_url,data=json.dumps(json_text),headers=headers).json()
    code = r["errcode"]
    #print (code)
    if code == 0:
        log(time + ":消息发送成功 返回码:" + str(code) + "\n")
    else:
        log(time + ":消息发送失败 返回码:" + str(code) + "\n")
        exit(3)

if __name__ == ‘__main__‘:
    text = sys.argv[3]
    user = sys.argv[1]
    msg(text,user)

8)脚本添加执行权限,修改属组属主

[root@centos01 ~]# chmod +x /usr/lib/zabbix/alertscripts/dingding.py
[root@centos01 ~]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.py

9)创建脚本日志,添加执行权限

[root@centos01 alertscripts]# touch /tmp/zabbix.log
[root@centos01 alertscripts]# chmod +x /tmp/zabbix.log 
[root@centos01 alertscripts]# chown zabbix:zabbix /tmp/zabbix.log

10)测试脚本是否正常

[root@centos01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@centos01 alertscripts]# python dingding.py 11 22 33

11)钉钉查看是否收到测试消息

技术图片

2、配置钉钉报警媒介

1) 创建新的报警媒介

名称:随便定义
类型:脚本
脚本名称:/usr/lib/zabbix/alertscripts/目录下是什么名字这就写什么名字
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

技术图片

2)将钉钉报警媒介关联到用户

技术图片

3、配置钉钉报警动作

1)添加动作

技术图片

2)配置动作操作,每条之间必须有一行空行,否则报警信息不自动换行

默认接收人:故障{TRIGGER.STATUS}==>服务器{HOSTNAME1} 发生 {TRIGGER.NAME}故障!
默认信息:
异常主机:{HOST.NAME}

告警 IP:{HOST.IP}

告警时间:{EVENT.DATE}-{EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警项目:{TRIGGER.KEY1}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

来自zabbix监控平台

技术图片

技术图片

3)配置动作恢复操作,每条之间必须有一行空行,否则报警信息不自动换行

恢复主题:恢复{TRIGGER.STATUS}==>服务器{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
恢复主机:{HOST.NAME}

恢复 IP:{HOST.IP}

恢复时间:{EVENT.RECOVERY.TIME}

等级:{TRIGGER.SEVERITY}

告警项目:{TRIGGER.KEY1}

恢复信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件 ID:{EVENT.ID}

来自zabbix监控平台

技术图片

4)配置确认操作,每条之间必须有一行空行,否则报警信息不自动换行

默认接收人:服务器:{HOST.NAME}: 报警确认!
默认信息:
确认人:{USER.FULLNAME}

时间:{ACK.DATE} {ACK.TIME}

确认信息如下:{ACK.MESSAGE}

问题服务器:{HOSTNAME1}

问题服务器IP:{HOST.CONN}

问题详情: {TRIGGER.NAME}

问题ID:{EVENT.ID}

技术图片

5)新创建的动作一定是启动状态

技术图片

4、钉钉查看报警信息

1)使用ping命令ping被监控的100.20主机

C:\Users\Administrator>ping -n 1000 -l 60000 192.168.100.20

2)zabbix服务器的web界面查看网卡监控图形

技术图片

3)查看仪表板,显示三次问题已送达钉钉

技术图片

4)钉钉查看报警消息

技术图片

5)手机打开钉钉app查看报警信息

技术图片

6)停止对100.20的ping测试,稍等一会会稍等恢复消息

技术图片

7)手机打开钉钉app查看恢复消息

技术图片

8)查看仪表板,确认问题已解决

技术图片

技术图片

9)钉钉查看确认消息

技术图片

10)手机打开钉钉app查看消息

技术图片

———————— 本文至此结束,感谢阅读 ————————

超详细配置Zabbix监控通过钉钉实现报警(3.4和4.0版本)

标签:动作   lib   pytho   access   ndt   zabbix3   har   dingding   必须   

原文地址:https://blog.51cto.com/14156658/2496831

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!