zabbix企业微信报警

2022-09-22 18:45:52 浏览数 (1)

前言:通过企业微信小程序,实现zabbix自动注册和zabbix告警的微信消息推送。

一、整体架构

1、企业微信 - 创建zabbix机器人应用 - 取得企业微信ID、应用Agentld和Secret

2、编写zabbix机器人推送脚本,测试脚本

3、添加报警媒介

4、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息

5、配置Autoregistration actions自动注册,填写要发送的信息

6、进行测试

二、注册或使用已有的企业微信,查询企业微信ID

1、在企业微信 - 我的企业 - 企业信息 - 企业ID

2、创建zabbix机器人应用

企业微信后台 - 应用管理 - 应用 - 创建应用

3、查看Agentld和Secret

三、编写zabbix机器人脚本

准备工作

yum -y install epel-release

yum -y install python-pip

pip install requests

查询脚本存放位置

cat /etc/zabbix/zabbix_server.conf | grep AlertScript

可以看到脚本存放在/usr/lib/zabbix/alertscripts目录中

编写脚本 weixin.py并放入上面的目录 ,填入上面获得的三个值

#!/usr/bin/env python

#-*- coding: utf-8 -*-

import requests

import sys

import os

import json

import logging

logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',

datefmt = '%a, %d %b %Y %H:%M:%S',

filename = os.path.join('/tmp','weixin.log'),

filemode = 'a')

corpid='ww36e'

appsecret='5yFNqeTjrr3I'

agentid=1000002

token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' corpid '&corpsecret=' appsecret

req=requests.get(token_url)

accesstoken=req.json()['access_token']

msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' accesstoken

touser=sys.argv[1]

subject=sys.argv[2]

#toparty='3|4|5|6'

message=sys.argv[2] "nn" sys.argv[3]

params={

"touser": touser,

# "toparty": toparty,

"msgtype": "text",

"agentid": agentid,

"text": {

"content": message

},

"safe":0

}

req=requests.post(msgsend_url, data=json.dumps(params))

logging.info('sendto:' touser ';;subject:' subject ';;message:' message)

赋予执行权限

chmod x /usr/lib/zabbix/alertscripts/weixin.py

创建日志文件

touch /tmp/weixin.log

chown zabbix.zabbix /tmp/weixin.log

测试脚本,用户名为企业微信通讯录中的用户名,一般为拼音全拼,严格区分大小写!

/usr/lib/zabbix/alertscripts/weixin.py 用户名 '标题' '测试成功'

此时企业微信可以收到zaabix应用发来的信息。

四、添加报警媒介,测试媒介

zabbix后台 - 管理 - 报警媒介类型

名称 weixin

类型 脚本

脚本名称 weixin.py

脚本参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

五、配置Trigger actions触发动作,启用消息推送管理员,填写要发送的信息

配置 - 动作 Trigger actions - 创建动作

在 动作 中填写名称

在 操作 中编辑操作和恢复操作

1、操作

发送消息

zabbix管理员组

仅发送到微信

custom message

主题:服务器报警

消息:

告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

2、恢复操作

通知所有参与者

custom message

主题:服务器已恢复

消息:

告警主机:{HOST.NAME}

告警地址:{HOST.IP}

监控项目:{ITEM.NAME}

监控取值:{ITEM.LASTVALUE}

告警等级:{TRIGGER.SEVERITY}

当前状态:{TRIGGER.STATUS}

告警信息:{TRIGGER.NAME}

告警时间:{EVENT.DATE} {EVENT.TIME}

事件ID:{EVENT.ID}

六、配置Autoregistration actions自动注册,填写要发送的信息

在Autoregistration actions自动注册中

发送消息

zabbix管理员组

仅送到weixin

Custom message

主题:

Linux主机自动注册到zabbix服务器

消息:

主机名:{HOST.HOST}

主机IP:{HOST.IP}

Agent端口:{HOST.PORT}

七、进行测试

新linux上线微信收到提示

linux重启微信收到提示

八、总结

很简单的啦

0 人点赞