zabbix之企业微信告警

文章目录

  • zabbix之企业微信告警
    • 二进制安装python
      • 下载并安装python3.6
      • 做软链接
      • 安装requests库
      • 查看python版本
    • 微信告警的配置方式
      • 修改zabbix_server配置文件
      • 通过企业ID和secret来获取token
      • 测试你的token值是否可用
      • 编写通过企业微信告警脚本
      • 测试脚本是否可用
      • 修改脚本属组和属主并添加执行权限
      • 定义企业微信的脚本告警媒介
      • 为用户添加企业微信的告警媒介
      • 配置动作
      • 手动触发警告
      • 验证

zabbix之企业微信告警

二进制安装python

下载并安装python3.6

[root@zabbix ~]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
[root@zabbix ~]# tar xf Python-3.6.5.tgz
[root@zabbix ~]# cd Python-3.6.5
[root@zabbix Python-3.6.5]# ./configure --prefix=/usr/local/python3
[root@zabbix Python-3.6.5]# make
[root@zabbix Python-3.6.5]# make install

做软链接

[root@zabbix Python-3.6.5]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@zabbix Python-3.6.5]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

安装requests库

[root@zabbix Python-3.6.5]# /usr/local/python3/bin/pip3 install requests

查看python版本

若能看到版本则说明安装没有问题

[root@zabbix Python-3.6.5]# pip3 -V
pip 9.0.3 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
[root@zabbix Python-3.6.5]# python3 -V
Python 3.6.5

微信告警的配置方式

修改zabbix_server配置文件

将zabbix_server配置文件中的脚本存放地址取消注释

[root@zabbix /]# vim /usr/local/etc/zabbix_server.conf
……
 AlertScriptsPath=/usr/local/share/zabbix/alertscripts
 ……

通过企业ID和secret来获取token

[root@zabbix /]# curl https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=你的企业ID&corpsecret=你的secret
{"errcode":0,"errmsg":"ok","access_token":"此处为你的token值","expires_in":7200}

测试你的token值是否可用

将你自己的信息复制到对应的地址上,复制链接到浏览器若可以查看到程序、用户等信息表示可用

curl https://qyapi.weixin.qq.com/cgi-bin/agent/get?access_token=你的token值&agentid=你的agentid

编写通过企业微信告警脚本

[root@zabbix /]# vim /usr/local/share/zabbix/alertscripts/weixin.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
import json
import sys
import urllib3
class weChat:
    def __init__(self,Corpid,Secret):
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' %(Corpid,Secret)
        res = self.url_req(url)
        self.token = res["access_token"]
    def url_req(self,url):
        requests.packages.urllib3.disable_warnings()
        req = requests.get(url, verify=False)
        res = json.loads(req.text)
        return res
    def send_message(self,user,content):
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" %self.token
        data = {
                "touser": user,
                "msgtype": "text",
                "agentid": 1000002,
                "text": {
                    "content": content
                    },
                "safe":"0"
                }
        requests.packages.urllib3.disable_warnings()
        res = requests.post(url,json=data, verify=False)
        if json.loads(res.content)['errmsg'] == 'ok':
            return "send message sucessed"
        else:
            return res
if __name__ == '__main__':
    user = sys.argv[1]
    content = sys.argv[2]
    get_token = weChat('你自己的企业微信的ID','你自己的secert值')
    print (get_token.send_message(user, content))

测试脚本是否可用

成功则会出现send message sucessend并且向企业微信中的HanAo用户发送test

[root@zabbix /]# python3 /usr/local/share/zabbix/alertscripts/weixin.py 'HanAo' 'test'
send message sucessed

修改脚本属组和属主并添加执行权限

[root@zabbix share]# chown zabbix.zabbix zabbix
[root@zabbix /]# chmod +x /usr/local/share/zabbix/alertscripts/weixin.py 

定义企业微信的脚本告警媒介

zabbix之企业微信告警_第1张图片
添加各类信息发布格式
zabbix之企业微信告警_第2张图片

为用户添加企业微信的告警媒介

zabbix之企业微信告警_第3张图片

配置动作

配置动作名
zabbix之企业微信告警_第4张图片
zabbix之企业微信告警_第5张图片

手动触发警告

[root@client ~]# echo '123' >> /etc/test 

验证

zabbix之企业微信告警_第6张图片

你可能感兴趣的:(笔记,zabbix,centos)