zabbix enterprise micro-channel alarm monitoring [end]

1, download mobile enterprise micro-channel
2, create an enterprise
Here Insert Picture Description
3, computer login
Here Insert Picture Description
Here Insert Picture Description
drop-down
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
this record will be used later after successfully created
agentid 1000002
Secret RroB-PrX4crYoE-C0ubxdXAKKrRyaxVqzJfonGWHdEo
Here Insert Picture Description
department also id down
Here Insert Picture Description
corporate id also down
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description

Here Insert Picture Description
Test success

Server operating
python alarm monitoring script

需要修改脚本中的四个信息:
self.__corpid = 'wwd5348195e1cd' //公司的corpid
self.__secret = '2QvlfpUxh4k-JeIVNmkh2N7ijfkCs1lzb4Tkgr6xQ' //应用的secret
'toparty':1, //部门id
'agentid':"1000002", //应用id
[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 = 'wwd5348195e1cdd809'
                self.__secret = '2QvlfpUxh4k-JeIuxVNmkh2N7ijfkCs1lzb4Tkgr6xQ'


        # 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':touser,
                        'toparty':1,
                        'msgtype':"text",
                        'agentid':"1000002",
                        '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])
                                                                                                                                                                             
监控脚本测试:
注:Youn为企业微信名 test为标题 yufei为内容,标题和内容均可自定义
[root@youngfit ~]# /usr/lib/zabbix/alertscripts/wechat.py Youn test yufei
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
看下自己的企业微信是否收到信息
一般youn设置其他也能收到
zabbix create a media alert

Note :( send alarm information to which way text messaging, scripts, etc.)
Here Insert Picture Description
Here Insert Picture Description

名称:sendmail                    //名称任意
类型:脚本
脚本名称:sendmail.sh              自己写的脚本
脚本参数:                          //一定要写,否则可能发送不成功
    {ALERT.SENDTO}              //照填,收件人变量
    {ALERT.SUBJECT}             //照填,邮件主题变量,变量值来源于‘动作’中的‘默认接收人’
    {ALERT.MESSAGE}           //照填,邮件正文变量,变量值来源于‘动作’中的‘默认信息’

zabbix adding an alarm users

创建用户组:web-group,包含yangge、alice...等用户
创建用户:yangge、alice...等用户,并关联到微信告警
希望的结果是:发微信到组web-group,组中的用户yangge、alice都能收到

Here Insert Picture Description
Here Insert Picture Description
Set user group has read and write (send message) to the host group permissions
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description

如果希望中文显示:
告警主机: {HOST.NAME}
告警地址: {HOST.IP}
监控项目: {ITEM.NAME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警时间: {EVENT.DATE} {EVENT.TIME}


收到的信息
主机: 192.168.119.130
时间: 2020.03.25 19:49:22
级别: High
触发: HTTP service is down on 192.168.119.130
详情: nginx status:net.tcp.listen[80]:Up (1)
状态: nginx已启动
项目:net.tcp.listen[80] 
事件ID:2548


主机: {HOST.NAME1}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {TRIGGER.SEVERITY}
触发: {TRIGGER.NAME}
详情: {ITEM.NAME1}:{ITEM.KEY1}:{ITEM.VALUE1}
状态: {TRIGGER.STATUS}
项目:{TRIGGER.KEY1} 
事件ID:{EVENT.ID}

Here Insert Picture Description

Test micro-channel alarm

End operation is monitored

###### 测试微信报警

被监控端操作  这个机器要在你放入用户组权限的那个组机组里面才可以
[root@zabbix-agent-none1 ~]# systemctl stop nginx
查看自己的企业微信
Published 48 original articles · won praise 18 · views 3633

Guess you like

Origin blog.csdn.net/wx912820/article/details/105103279