zabbix3.4使用企业微信告警

第一步、注册企业微信,个人就可以注册,然后按照提示填写相关信息

企业微信注册地址

iShot2020-10-16 09.44.43

第二步、登陆企业微信

企业微信首界面

iShot2020-10-16 09.45.10

应用与小程序-->创建应用,根据提示填写相关信息,这里已经创建好了一个zabbix监控

iShot2020-10-16 09.45.40

点击创建的应用,后续python脚本会用到Agentld和Secret

iShot2020-10-16 09.46.04

点击我的企业,后续python脚本会用到企业ID

iShot2020-10-16 09.46.23

第三步、zabbix-server端配置python脚本

3.1环境准备

#安装依赖包
[root@zabbix-server ~]# yum -y install python-pip 
[root@zabbix-server ~]# pip install requests
[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-server alertscripts]# ls
weixin.py

#给脚本赋予执行权限
[root@zabbix-server alertscripts]# chmod +x weixin.py

#一定要修改/tmp/weixin.log这个文件的权限为zabbix,因为zabbix程序在执行weixin.py的时候是以zabbix用户执行的,而这个文件默认是root,不修改权限会报错
[root@zabbix-server alertscripts]# chown zabbix.zabbix /tmp/weixin.log

3.2编写微信告警脚本

[root@zabbix-server alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@zabbix-server alertscripts]# cat >weixin.py <<'EOF'
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bxb
#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和appsecret在创建的应用中查看
#agentid在我的企业中查看
corpid='xxxxxx'
appsecret='xxxxxxx'
agentid=xxxxxx
#获取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)  
EOF


#验证脚本是否能正确发送信息,BaiXueBing为企业微信账号,在通讯录-->成员信息中查看
[root@zabbix-server alertscripts]# ./weixin.py 企业微信号 test test

企业微信收到信息即为正确

iShot2020-10-16 09.46.44

第四步、zabbix-server端配置

4.1管理-->报警媒介类型-->创建媒体类型

iShot2020-10-16 09.47.06

4.2填写相关信息

脚本名称为自己定义的weixin.py,路径为在zabbix-server端/etc/zabbix/zabbix_server.conf中定义

AlertScriptsPath=/usr/lib/zabbix/alertscripts


在下图中脚本参数的地方写入以下3个参数,注意脚本参数一定要填写正确

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

iShot2020-10-16 09.47.28

4.3设置收件人

右上角小人头-->报警媒介-->添加

iShot2020-10-16 09.47.54

iShot2020-10-16 09.48.11

第五步、修改告警相关信息

5.1修改告警操作

修改操作标题如下

服务器:{HOST.NAME}发生: {TRIGGER.NAME} 故障!

修改消息内容如下

服务器:{HOST.NAME}发生: {TRIGGER.NAME} 故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}

iShot2020-10-16 09.48.35

5.2修改恢复操作

修改恢复标题如下

服务器:{HOST.NAME}: {TRIGGER.NAME} 已恢复!

修改恢复内容如下

服务器:{HOST.NAME}: {TRIGGER.NAME} 已恢复!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}

iShot2020-10-16 09.49.03

5.3修改确认信息

修改确认标题如下

服务器:{HOST.NAME}:  报警确认

修改确认内容如下

服务器:{HOST.NAME}:  报警确认
{
确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}

iShot2020-10-16 09.51.39

第六步、验证

企业微信中创建的zabbix监控应用能收到信息即为正确

pc端企业微信

iShot2020-10-16 09.52.44

手机端企业微信

iShot2020-10-16 09.55.34

泡泡吐肥皂o © gitbook.pptfz.top 2021 all right reserved,powered by Gitbook文件修订时间: 秃笔南波湾!!!

results matching ""

    No results matching ""