⑤.通知
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 配置用户报警媒介