Zabbix监控服务03-实现触发器微信告警

要实现微信报警,首先我们需要注册一个企业微信,获取企业ID、secret、企业AgentId,然后编写一个python脚本接入微信,并将脚本放入zabbix指定的脚本目录,并访问到zabbix管理页面,在管理报警媒介类型中添加微信报警,最后在用户管理里添加微信报警媒介,即可实现微信告警
 
第一个历程:注册企业微信,并做简单配置
我的企业:
1)获取企业ID:ww20fc32c8e433d8eb
2)获取企业二维码:允许员工加入

 

管理工具:进行成员加入审核
应用小程序:
1)进行创建应用
2)收集程序信息
    AgentId:1000002
    Secret:QL-9EpXLOBOPnq-x0pAGC86sVoAKLs3Hiw5oxUIcNKg
 
第二个历程:编写python脚本
第二个历程:编写python脚本
    cat /etc/zabbix/zabbix_server.conf
    AlertScriptsPath=/usr/lib/zabbix/alertscripts  --- 放置报警脚本路径
 
[root@m01 alertscripts]# vim /usr/lib/zabbix/alertscripts/weixin.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#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='ww20fc32c8e433d8eb'
appsecret='QL-9EpXLOBOPnq-x0pAGC86sVoAKLs3Hiw5oxUIcNKg'
agentid=1000002
#获取acceddtoken
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@m01 alertscripts]# ./weixin.py ChenYun 晚上  小树林;
 
第三个历程:修改添加报警媒介 --- 定义了发微信配置
点击管理 --- 报警媒介类型 --- 编写相关信息 --- 添加
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
 
第四个历程:配置接收微信的人员
点击小人头 --- 报警媒介 --- 填写相关信息 --- 添加 --- 更新
 
zabbix发送报警信息时遇到如下报警
原因:/tmp/weixin.log属主的root,而zabbix执行时使用的zabbix用户,权限不足
解决方法:
[root@m01 alertscripts]#  chown zabbix.zabbix /tmp/weixin.log
 
将nginx服务再次停止测试

 

posted @ 2020-04-30 21:20  向云而生(陈云)  阅读(266)  评论(0编辑  收藏  举报