Zabbix--03 邮件报警、微信报警

一、 邮件报警

1.定义发件人

Zabbix--03 邮件报警、微信报警

Zabbix--03 邮件报警、微信报警

2.定义收件人

Zabbix--03 邮件报警、微信报警

Zabbix--03 邮件报警、微信报警

Zabbix--03 邮件报警、微信报警

3.优化告警信息

定制报警内容:
https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location
参考博客

https://www.cnblogs.com/bixiaoyu/p/7302541.html

1.操作位置
配置--动作--选中--操作--恢复操作

2.优化告警信息
发送警告标题:
===============================================================
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
===============================================================

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


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


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

二、 微信报警

1.查看配置文件里的脚本目录路径

[root@m01 ~]# grep "^AlertScriptsPath" /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2.将weixin.py放在zabbix特定目录

[root@m01 /usr/lib/zabbix/alertscripts]# ll
总用量 4
-rwxr-xr-x 1 root root 1344 8月   7 21:58 weixin.py

3.配置发信人

Zabbix--03 邮件报警、微信报警

Zabbix--03 邮件报警、微信报警

4.配置收信人

Zabbix--03 邮件报警、微信报警

5.登陆企业微信公众号添加账户

https://work.weixin.qq.com/wework_admin/loginpage_wx
1.登陆后在企业号上新建应用

Zabbix--03 邮件报警、微信报警

2.上传logo,填写应用名称 ,应用介绍等

Zabbix--03 邮件报警、微信报警

3.查看启动应用 同时会生成应用的AgentId以及Secret,这个在后面步骤会有用

Zabbix--03 邮件报警、微信报警

4.接口调用测试http://work.weixin.qq.com/api/devtools/devtool.php

Zabbix--03 邮件报警、微信报警

这里的corpid为公司ID

Zabbix--03 邮件报警、微信报警

Corpsecret就是刚才创建应用生成的Secrt,确认没问题填写进去然后下一步 如果没问题会显示200状态码

Zabbix--03 邮件报警、微信报警

6.添加成员

Zabbix--03 邮件报警、微信报警

7.关注公众号

Zabbix--03 邮件报警、微信报警

8.查看自己的账号

Zabbix--03 邮件报警、微信报警

9.修改脚本里的信息

[root@m01 /usr/lib/zabbix/alertscripts]# cat weixin.py 
..............
corpid='微信企业号corpid'
appsecret='应用的Secret'
agentid=应用的id
..............
注意: 如下所示windows上生成的内容对照填进去
AgentId:1000008
Secret: 6h3MVlvmjqN-8rKz4V84OPMB5cp0PPJPlKR0ny9kt6U
corpid: wwd26fdfb9940e7efa

10.发信测试

[root@m01 /usr/lib/zabbix/alertscripts]# python  weixin.py  你的账号  '发信测试'  ‘微信测试消息’

11.微信号上查看

Zabbix--03 邮件报警、微信报警

12.发送到整个微信组

虽然我们实现了发送到单个用户的功能,但是如果我们的用户比较多,这样还是麻烦的,不过我们可以发送到整个组,其实脚本里已经预留好了配置,只不过默认注释了。
将脚本修改为以下内容,注释掉用户,打开组设置

#!/usr/bin/env python

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='wwd26fdfb9940e7efa'
appsecret='Btg89FnZfMu0k7l6b4iagmAR5Z9TCgKknYbx-SMQvmg'
agentid=1000005

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]
toparty=sys.argv[1]
subject=sys.argv[2]
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:' + toparty + ';;subject:' + subject + ';;message:' + message)                                                                              

注意: toparty=sys.argv[1]默认是全组

12.随机发送到指定用户玩笑脚本

#!/bin/bash 
num=$(echo $(($RANDOM%28+1)))
name=$(sed -n "${num}p" name.txt)
ok_boy=$(grep -v "${name}" name.txt)

for ok in ${ok_boy}
do
  python  weixin.py ${ok}  "$1"  "$2"
done

Zabbix--03 邮件报警、微信报警

上一篇:微信小程序框架部署:mpvue+typescript


下一篇:微信公众平台后台配置自定义菜单