zabbix 微信告警

一、企业微信端配置

1、创建微信群机器人

在需要接收告警信息的企业微信群上右键(注意群里成员至少要3人以上),选择“添加群机器人”,设置机器人名称,系统自动生成此机器人的webhook地址,请记住该地址,不要随便给其他人,以免无关人员通过此地址推送垃圾信息!

zabbix企业微信报警频率 企业微信报警机器人_python

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_02

2、查看群机器人webhook信息,后面需要用到。

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_03

二、告警脚本配置

ps:zabbix利用python脚本给企业微信机器人推送告警信息~

1、登录zabbix server服务器,查找并进入zabbix告警脚本调用目录

grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A

查到目录为 /usr/lib/zabbix/alertscripts 这也是默认告警脚本目录,进入此目录,创建脚本文件并编辑,名称自定义,例如 weixin.py,填入以下脚本内容,并将“url”字段修改为刚才的机器人webhook地址。

#!/usr/bin/python
#-*- coding: utf-8 -*-
import requests
import json
import sys
import os
 
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cxxxxxxxxxxxxxxxx"   #这个是企业微信机器人生成的webhook地址,修改为你的即可。
 
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text,
            "mentioned_mobile_list":["13800000000","13800000001"]     #这个是企业微信机器人自动艾特群里成员,修改为群成员手机号即可。
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
 
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

2、赋予此脚本执行权限,并进行文本内容推送测试

chmod +x weixin.py

python weixin.py Hello

微信群机器人正常收到推送内容:

如果容器里面没有python 需要安装python

如果  这个方法不行 请自行搜索换一种方法

apt-get update
apt-get upgrade
apt install build-essential -y
apt install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y
apt install zlib1g-dev
apt install wget
apt install openssl
apt install curl
apt install libsqlite3-dev
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar -xvf Python-3.7.3.tgz
cd Python-3.7.3
./configure —enable-loadable-sqlite-extensions
make
make install
apt-get clean
rm -rf /var/lib/apt/lists/*
ln -s /usr/local/bin/pip3 /usr/bin/pip
ln -s /usr/local/bin/python3 /usr/bin/python

安装pip

pip在usr/local/bin/pip,如果已经安装pip,要先进行卸载
没有执行以下命令
sudo apt-get remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
hash -r

最后安装requests模块

pip3 install requests -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com

##如果 测试的时候报错 把容器内的地址映射到本地路径里面

三、zabbix端配置企业微信告警

1、创建告警媒介

管理---报警媒介类型---右上角“创建媒体类型”

zabbix企业微信报警频率 企业微信报警机器人_json_04

名称自定义,类型选择“脚本”,脚本名称填写刚才创建的python脚本文件名称,参数调用告警消息字段,添加即可:

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_05

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_06

2、编辑用户告警媒介选项

管理---用户,选择需要发送告警消息的用户,点击用户名称进入配置页面,选择“报警媒介”标签,点击添加新媒介

zabbix企业微信报警频率 企业微信报警机器人_json_07

zabbix企业微信报警频率 企业微信报警机器人_json_08

类型选择刚才创建的企业微信告警媒介,收件人填写机器人所在群成员的任何可以作为关键信息的内容,例如成员名称,成员手机号等,启用时段和告警程度按照需求选择,然后启用添加即可

zabbix企业微信报警频率 企业微信报警机器人_zabbix_09

 

zabbix企业微信报警频率 企业微信报警机器人_json_10

3、配置告警动作参数

配置---动作---右上角“创建动作”

zabbix企业微信报警频率 企业微信报警机器人_json_11

在“动作”标签填写动作名称,添加触发器示警度和触发条件,然后切换到“操作”标签,设置示警动作详细配置:.

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_12

zabbix企业微信报警频率 企业微信报警机器人_python_13

 

zabbix企业微信报警频率 企业微信报警机器人_zabbix_14

 

zabbix企业微信报警频率 企业微信报警机器人_python_15

按照下图进行配置,添加“操作”配置。告警消息自定义内容如下,可复制使用:

主题:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
 
消息:
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

zabbix企业微信报警频率 企业微信报警机器人_json_16

zabbix企业微信报警频率 企业微信报警机器人_python_17

按照下图进行配置,添加“恢复操作”配置。恢复告警消息自定义内容如下,可复制使用:

主题:
故障恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}已恢复!
 
消息:
恢复告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

zabbix企业微信报警频率 企业微信报警机器人_zabbix_18

 

zabbix企业微信报警频率 企业微信报警机器人_json_19

系统已经完成了告警动作生成,这就完成了通过企业微信机器人推送告警的所有配置!

zabbix企业微信报警频率 企业微信报警机器人_zabbix_20

 

zabbix企业微信报警频率 企业微信报警机器人_zabbix企业微信报警频率_21

 可以关闭某个服务 比如http 服务 测试报警脚本