zabbix微信报警

1、找到alertscripts文件夹路径,修改zabbix_server.conf

[root@zabbixserver ~]# vim /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2、收集自己的企业信息

 点击用户的姓名选取账号

 部门ID

3.将脚本放在zabbix告警脚本目录下,并测试

[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/wechat.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
class WeChat(object):
        __token_id = ''
        # init attribute
        def __init__(self,url):
                self.__url = url.rstrip('/')
                self.__corpid = 'ww811b50b6a70e5322'    ######1.企业ID
                self.__secret = 'DELOceiqeXbP9evP3TZDa2zY3vggQVOMpo55uei9qys'  #####3.机器ID下面的
        # Get TokenID
        def authID(self):
                params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
                data = urllib.urlencode(params)
                content = self.getToken(data)
                try:
                        self.__token_id = content['access_token']
                        # print content['access_token']
                except KeyError:
                        raise KeyError
        # Establish a connection
        def getToken(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'gettoken?'
                try:
                        response = urllib2.Request(url + data)
                except KeyError:
                        raise KeyError
                result = urllib2.urlopen(response)
                content = json.loads(result.read())
                return content
        # Get sendmessage url
        def postData(self,data,url_prefix='/'):
                url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
                request = urllib2.Request(url,data)
                try:
                        result = urllib2.urlopen(request)
                except urllib2.HTTPError as e:
                        if hasattr(e,'reason'):
                                print 'reason',e.reason
                        elif hasattr(e,'code'):
                                print 'code',e.code
                        return 0
                else:
                        content = json.loads(result.read())
                        result.close()
                return content
        # send message
        def sendMessage(self,touser,message):
                self.authID()
                data = json.dumps({
                        'touser':'LinXing', #####4.用户名称
                        'toparty':2,        ######5.部门ID
                        'msgtype':"text",
                        'agentid':"1000002",  #####2.机器ID
                        'text':{
                                'content':message
                        },
                        'safe':"0"
                },ensure_ascii=False)
                response = self.postData(data)
                print response

if __name__ == '__main__':
        a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
        a.sendMessage(sys.argv[1],sys.argv[3])


 在zabbix-server端进行脚本测试

[root@Chengzhang etc]# /usr/local/zabbix/share/zabbix/alertscripts/weixin.py  LinXing 发布主题 文件内容

 OK了

8、在zabbix-server的web界面中创建报警媒介

在这里插入图片描述
9、为用户添加告警媒介(可以新建用户,也可以直接使用管理员账户admin),让这个用户关联告警媒介,并添加收件人

 

 

 {ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

注意:类型(创建的告警媒介)、收件人(企业微信中的那个用户)

10、创建动作,实现企业微信告警(当有触发器被触发时,发送告警给特定用户)

定义动作:使用触发器,触发器自己定义,我这里用的是之前为了监控nginx运行状态创建的触发器。

定义操作:当动作被触发后,将会进行设置好的操作


发送消息的内容:
默认接收人:故障{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}: {TRIGGER.NAME}

消息:

告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}

11、验证
当触发器被触发时,企业微信收到了告警信息

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摚张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值