Zabbix监控之企业微信告警

Zabbix监控之企业微信告警

  • 微信报警、短信、电话、钉钉  自定义脚本报警

  • 通过脚本(py、shell),调用对方api接口(输入接口需要的信息,访问与使用接口)
  • 1、企业微信
  • 2、企业微信id和告警机器人id
  • 3、使用脚本(shell/python)调用企业微信api接口: python 输入收件人 信息
  • 4、发件人: 报警媒介
  • 5、收件人:个人 媒体类型
  • 6、动作

一、zabbix服务端上传告警脚本

# cat /data/services/zabbix/etc/zabbix_server.conf | grep alertscripts
AlertScriptsPath=/data/services/zabbix/share/zabbix/alertscripts
# ll /data/services/zabbix/share/zabbix/alertscripts
总用量 12
-rwxr-xr-x 1 root root 1971 1月   5 2022 weixin.py
-rwxr-xr-x 1 root root  961 7月  14 10:45 weixin.sh

二、获取企业微信的企业ID、机器人ID和secret

登录企业微信官网(管理员扫码登录)

企业ID:我的企业 --> 企业ID

机器人AgentId/Secret:应用管理 --> 自建(创建应用) --> AgentId/Secret

 三、修改脚本(shell脚本和python脚本均可,任选其一)中的企业ID、机器人AgentId和Secret信息

python脚本

cat /data/services/zabbix/share/zabbix/alertscripts/weixin.py

#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yukaiwen
#blog:https://blog.csdn.net/qq_35663625?spm=1000.2115.3001.5343
#EMAIL:904932447@qq.com

#导入python模块
import requests
import sys
import os
import json
import logging


#自定义logging模块的格式,具体日志会存放在"/var/log/weixin.log"中,你也可以自定义到其它目录中,该文件默认以追加方式写入,你可以写一个周期性任务进行滚动操作
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('/var/log','weixin.log'),
filemode = 'a')

#指定企业ID
corpid='wwca0b34519d4a5ebe'

#指定应用管理的Secret
appsecret="ZFbznuAje9BdHqiSC7YOomkjbwdGXVNkN9DXeFNfZl8"

#指定应用管理的AgentId
agentid="1000004"

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

#获取tocken
req=requests.get(token_url)

#获取tocken中access_token字段对应的值
accesstoken=req.json()['access_token']

#定义消息发送的URL
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken

#定义要发送的人,也就是zabbix webUI配置的"{ALERT.SENDTO}"参数对应的值
touser=sys.argv[1]

#定义要发送的主题,也就是zabbix webUI配置的"{ALERT.SUBJECT}"参数对应的值
subject=sys.argv[2]

#定义要发送的消息内容,也就是zabbix webUI配置的"{ALERT.MESSAGE}"参数对应的值
message=sys.argv[2] + "\n\n" +sys.argv[3]

#指定参数
params={
"touser": touser,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}

#基于requests模块的post方法发送企业微信报警消息
req=requests.post(msgsend_url, data=json.dumps(params))

#发送消息后记得打印日志信息,在本地的配置文件中可以查看
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

 如果测试不成功,可以在 /var/log/weixin.log中查看日志

shell脚本

cat /data/services/zabbix/share/zabbix/alertscripts/weixin.py

#!/bin/bash
# send message from weixin for zabbix monitor
# weixin API URL : http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5
# 2022-07-14 by yukaiwen

#账号、应用ID信息
CropID='wwca0b34519d4a5ebe'
Secret='ZFbznuAje9BdHqiSC7YOomkjbwdGXVNkN9DXeFNfZl8'
AgentId='1000004'

#获取access_token、微信请求API
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {
   Message=$(echo "$@" | cut -d" " -f2-)
   echo """
   {
    \"touser\":\"$1\",
    \"msgtype\":\"text\",   
    \"agentid\":$AgentId,
    \"text\":{           
        \"content\":\"$Message\"
    }   
   }
   """
}

/usr/bin/curl --data-ascii "$(body $1 $2)" $PURL >/dev/null 2>&1

四、模拟发送告警(shell脚本为例)

./weixin.sh 用户(id)  内容

用户(id)就是用户账号

# cd /data/services/zabbix/share/zabbix/alertscripts/
[ yfbkf @ IT-CS-Zabbix-Server 192.168.3.52] /data/services/zabbix/share/zabbix/alertscripts
# ./weixin.sh 904932447 yukw-test
[ yfbkf @ IT-CS-Zabbix-Server 192.168.3.52 ]

五、企业微信收到结果

 企业微信能收到消息证明脚本配置正确,接下来在zabbix的ui界面配置参数

六、报警媒介添加发件人

报警媒介类型 --> 创建媒体类型

{ALERT.SENDTO}
{ALERT.MESSAGE}

 七、配置动作发送到企业微信

八、配置接收人

九、触发告警查看是否接收告警信息和恢复恢复信息


十、添加告警用户

1、添加可见范围用户

2、添加用户

附加(略):

一、模拟发送告警(python脚本为例)

python weixin.py 用户(id) 主题  内容

用户(id)就是用户账号

[ root @ IT-CS-Zabbix-Server 192.168.3.52 ] ~
# cd /data/services/zabbix/share/zabbix/alertscripts/
[ root @ IT-CS-Zabbix-Server 192.168.3.52 ] /data/services/zabbix/share/zabbix/alertscripts
# python weixin.py 904932447 微信告警主题 告警内容

二、企业微信收到结果

好了,这就是Zabbix监控之企业微信告警的配置方法了,如有问题可与博主一起交流讨论!

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值