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

Posted 小鱼儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix--03 邮件报警微信报警相关的知识,希望对你有一定的参考价值。

一、 邮件报警

1.定义发件人

2.定义收件人

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.配置发信人

4.配置收信人

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

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

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

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

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

这里的corpid为公司ID

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

6.添加成员

7.关注公众号

8.查看自己的账号

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.微信号上查看

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 邮件报警微信报警的主要内容,如果未能解决你的问题,请参考以下文章

配置zabbix通过微信报警企业微信报警

zabbix配置企业微信报警和邮件报警

Linux中使用Shell把报警信息发送至邮件和微信上

elasticsearch5之Elastalert 安装使用 配置邮件报警和微信报警

Zabbix实现微信平台报警----基于zabbix3.0.4

Zabbix4.0钉钉,邮件,微信报警