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


效果



posted @ 2022-06-05 14:45  kirin(麒麟)  阅读(102)  评论(0编辑  收藏  举报
Δ