6、自定义报警
版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin
告警分类
报警方式 | ||
---|---|---|
发邮件 | 个人邮箱 | 企业邮箱 |
企业微信-告警应用(机器人) | ||
OA系统( 钉钉 ) | ||
短信 | ||
电话 | ||
第三方报警: onealert (省事) |
9.1 邮件报警
配置发件人
除了Email电子邮件报警,其他的都可以禁用
9.2.配置收件人
9.3.配置触发器动作
9.4.测试
接下来去停止web01-10.0.0.7的nginx服务,来触发报警
[root@web01 ~]# systemctl stop nginx.service
9.5.微信报警(自定义脚本报警)
9.5.1准备好企业微信号
9.5.2加入企业微信
9.5.3使用微信关联企业微信
9.5.4.编辑Python脚本、主要修改3行内容
[root@zabbix-server ~]# vim weixin.py
[root@zabbix-server ~]# cat weixin.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#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='ww688b9db59dc248e3'
appsecret='1Bvuv5AlLG4Yq0q66wehf6q0Zy6qOJwUyKKvqEBDwi8'
agentid=1
#获取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)
#安装python模板
[root@zabbix-server ~]# yum install python-pip -y
#安装Python requests模块
[root@zabbix-server ~]# pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
#测试发送微信消息
python weixin.py 'BuYuanTouLuXingShiDeCuiXianSheng'
'天气真好' '阳光明媚,春暖花开!'
#第一个参数,企业微信的用户
#第二个参数,报警标题
#第三个参数,报警内容
将脚本放在指定的位置
#查看报警脚本路径
[root@zabbix-server ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# mv weixin.py /usr/lib/zabbix/alertscripts/
[root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/weixin.py
配置发件人
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
打开zabbix的web界面,点击管理——>报警媒介类型——>创建媒体类型
配置收件人
重新触发报警
[root@web01 ~]# systemctl stop nginx
肯定会失败,提示权限拒绝
解决方法:删除文件
[root@zabbix-server ~]# ll /tmp/weixin.log
-rw-r--r-- 1 root root 6331 Jul 16 10:36 /tmp/weixin.log
[root@zabbix-server ~]# rm -rf /tmp/weixin.log
[root@zabbix-server~]# ll /tmp/weixin.log
ls: cannot access /tmp/weixin.log: No such file or directory
重新出发报警
也可以看看动作日志
邮件发送成功之后,会生成一个新的日志文件,并且属主属组都是zabbix
[root@zabbix-server ~]# ll /tmp/weixin.log
-rw-rw-r-- 1 zabbix zabbix 2293 Jul 16 11:09 /tmp/weixin.log
9.6.报警升级
解决报警报一次的问题,只要问题没有解决就一直报警,一直到解决,发送一次恢复
9.6.1.增加一个用户
zabbix用户组与主机组权限图:
9.6.2.添加两个用户组:oldzhang组只有读权限、admin01组有读写权限。
9.7.分别为oldzhang和admin01配置不同的收件人
9.8.报警升级设置
#确定仪表盘没有故障,接下来去触发故障
停止web01-10.0.0.7的Nginx服务
[root@web01 ~]# systemctl stop nginx
效果
本文来自博客园,作者:kirin(麒麟),转载请注明原文链接:https://www.cnblogs.com/kirin365/articles/16137751.html