⑤.通知

1.什么是事件通知

首先,我们并不想要一直24小时盯着仪表盘看,最好是在发生严重的事件是能够通过邮件或者企业微信进行通知,收到通知后运维执行对应的操作!
也就是说,当配置的监控项超过触发器设定的阈值则出发动作,这个动作可以是发邮件和执行定义的相应的动作

2.如何实现事件通知

zabbix中为了实现通知必须定义以下操作

  • 定义报警媒介
  • 配置动作 向已经定义的媒介发送信息
    动作由 “触发器条件” 和 “操作” 组成。总的说来,当条件满足时,则执行相应的操作。

3.配置邮件通知方式

3.1 定义媒介(发件方式)

管理 --> 报警媒介

3.2 定义动作

配置 --> 动作 --> 创建动作 --> 操作
定义发送的群组和用户

3.3 定义用户的报警媒介

管理 --> 用户 --> 选择用户 --> 报警媒介 --> 定义用户邮箱

4.配置企业微信报警

4.1.找到zabbix的脚本目录

cat /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

4.2.准备脚本环境,下载脚本,修改配置信息

#1.安装python3
yum install python3 python3-devel python3-pip -y
pip3 install requests

#2.下载脚本
cd /usr/lib/zabbix/alertscripts
cat weixin.py 
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
#comment: zabbix接入微信报警脚本

import requests
import sys
import os
import json
import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                datefmt = '%a, %d %b %Y %H:%M:%S',
                filename = os.path.join('/tmp','weixin.log'),
                filemode = 'a')


corpid='ww75036166ac31b270'
appsecret='d-TtwPBOFHDcvb2fQ0pHM3w42Od7J5mWkiRBz_Vhins'
agentid=1000006
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']

#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]

params={
        "touser": touser,
#       "toparty": toparty,
        "msgtype": "text",
        "agentid": agentid,
        "text": {
                "content": message
        },
        "safe":0
}

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)


#3.修改脚本内容
corpid='企业ID'
appsecret='自定义app的secret'
agentid=自定义应用的agentid

#4.测试脚本
./weixin.py YangTao test 'test'
rm -rf /tmp/weixin.log

4.3.web页面添加报警媒介

{ALERT.SENDTO}         #接收人
{ALERT.SUBJECT}        #主题
{ALERT.MESSAGE}        #内容

#问题
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!

告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件标识:{EVENT.ID}

#恢复
恢复:{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复!

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

4.4 配置动作

4.5 配置用户报警媒介

posted @ 2022-08-16 15:31  老夫聊发少年狂88  阅读(41)  评论(0编辑  收藏  举报