设为首页 收藏本站
查看: 1147|回复: 0

[经验分享] Zabbix 3.0搭配微信企业号报警

[复制链接]

尚未签到

发表于 2017-11-23 11:45:36 | 显示全部楼层 |阅读模式
现在打开微信企业号的官方网站https://work.weixin.qq.com  ,然后扫描一下微信二维码登录到企业号的控制台。

在控制台网页里,需要查找几个元素,分别是CorpID、应用AgentId、应用Secret还有用户账号。

首先,在控制台里选择“我的企业”,然后就可以看见CorpID,如图:
b256d5b66c67d276bf21f2bc1556fc40.png

然后点击“企业应用”,如果没有应用,那么就新建立一个应用。比如我已经建立了一个应用叫“zabbix告警”,那么应用AgentId和应用Secret就在如图的位置:
591045d3513b61bd4fbb137d27a314c9.png



有了上面的CropID和Secret,就可以去验证一下accesstoken,登录http://qydev.weixin.qq.com/debug ,后在填入对应的CropID和Secret,看一下返回结果是否是“HTTP/1.0 200 OK”,如图:
5a6cce0d4cfccdf419db68ad662fecca.png

在这个“zabbix告警”的应用里可见范围里添加对应需要通知的人,然后在“通讯录”里,找到对应的人,记录他们的账号,如图:
16ab981808f3676f4af390e34a2af2e5.png

材料已经俱备完毕,现在需要做的是更改zabbix-server配置。

首先,在zabbix-server.conf里添加一句“AlertScriptsPath=/usr/lib/zabbix/alertscripts”,这是为了说明一下脚本所在的路径。当然,这个路径你可以自己更改,然后重启一下zabbix-server。

#cd /usr/lib/zabbix/alertscripts,在这个目录下我们要新写一个微信脚本,比如脚本名称叫wechat.py。

这个python脚本是需要requests模块的,所以需要先安装这个模块,安装方法如下:
1
2
pip install requests
pip install --upgrade requests




而python脚本内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#this script is used for alarm by WECHAT

import requests,sys,json
import urllib3

urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')

def GetToken(Corpid,Secret):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid":Corpid,
        "corpsecret":Secret
    }
    r = requests.get(url=Url,params=Data,verify=False)
    Token = r.json()['access_token']
    return Token

def SendMessage(Token,User,Agentid,Subject,Content):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    Data = {
        "touser": User,                                 # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
        #"totag": Tagid,                                # 企业号中的部门id,群发时使用。
        "msgtype": "text",                              # 消息类型。
        "agentid": Agentid,                             # 企业号中的应用id。
        "text": {
            "content": Subject + '\n' + Content
        },
        "safe": "0"
    }
    r = requests.post(url=Url,data=json.dumps(Data),verify=False)
    return r.text

if __name__ == '__main__':
    User = sys.argv[1]                                                              # zabbix传过来的第一个参数
    Subject = sys.argv[2]                                                           # zabbix传过来的第二个参数
    Content = sys.argv[3]                                                           # zabbix传过来的第三个参数
    Corpid = "这里填写Corpid"                                                   
    Secret = "这里填写Secret"                           
    Agentid = "这里填写应用的agentid"                                                        
    Token = GetToken(Corpid, Secret)
    Status = SendMessage(Token,User,Agentid,Subject,Content)
    print Status




脚本保存后,#chown -R zabbix:zabbix wechat.py,然后小试一下,上面看到“Zabbix告警”这个微信应用里有一个用户账号叫ChenShuo,那么wechat.py执行语句是:#python wechat.py ChenShuo 这个是标题  这里是正文!!

然后看一下微信,如图:
17a4cf1f7a19345a0032bccc26d618d7.jpg

正确出现了微信提示,可见这个脚本是OK的了。

现在我们要登录到zabbix网站,最上面的“Administration”里选择“Media types”,新建立一个Media type,如图:
1b7a0a5e164e84aa5c3091ae9dcfe3dd.png

保存之后,在“Administration”里选择“Users”,在Admin用户里点击“media”,把刚刚新增的“微信告警”这个media type添加进去,如图:
e12317003105498ad7033a3e382abc2b.png

通知手段配置完毕,现在就是要在具体的Trigger上把微信告警这个新手段添加到active里。首先打开Configuration里的actions界面。此时假设现在有一个告警Trigger叫“模块发生了重启”,判断模块是否重启的依据就是pid值是否发生了变化。那么点击这个Trigger,在action里把“微信告警”添加到报警手段里,如图:
d7194f411c2b82da9bcc64315eeaf0e7.png

保存之后,整个的微信告警配置就完成了。为了验证配置是否生效,我冒死重启了一台生产环境的服务器,当然啦,好孩子千万不要效仿。

收到微信提示如图:
90130f270163d35d32b70c75e4503102.jpg

不过考虑到微信告警可能会有所延迟,所以在这建议大家把告警阈值配置稍微早一点,避免“孩子死了奶来了”这种尴尬的情况。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409857-1-1.html 上篇帖子: LinkedSee灵犀——云时代的智能IT运营专家 下篇帖子: zabbix基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表