首页 > 其他分享 >zabbix企业微信报警

zabbix企业微信报警

时间:2024-06-06 23:43:54浏览次数:30  
标签:weixin 微信 报警 server zabbix usr

1.微信报警原理流程

注册微信企业号,通过企业号提供的信息ID、以及获取微信的API接口,就可以将服务器的报警数据,发给API,发给微信,发给关注这个公众号的所有用户、

2.注册企业微信

https://work.weixin.qq.com/wework_admin/frame

3.修改通讯录组名

4.创建自定义zabbix应用

5.查看企业ID

6.微信报警架构图逻辑图

7.添加通信群组成员
想让其他人也加入到这个组,便于接收消息,因此需要邀请加入组。
扫码加入企业
加入监控小分队即可。

8.关注监控公众号(无须下载企业微信了)

9.推送报警信息(python)
脚本是python3,你的目标机器,是否支持python3

yum install python3 python3-devel  python3-pip -y

pip3 install requests
#!/usr/bin/env python3
# Author: www.yuchaoit.cn


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_python.log'),
                filemode = 'a')
# 企业ID
corpid='ww76b67c7e3bea'

# 应用秘钥
appsecret='Z2LpWY2H15svWZXuXAzyxqCuGUWrDPKhhHvvnY'

# 应用id
agentid=1000002

# 获取身份令牌,用于和微信通信的认证
# 参考企业微信API文档https://developer.work.weixin.qq.com/document/path/90487
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]
toparty=sys.argv[1]
subject=sys.argv[2]

# 发送微信消息的数据格式
message=sys.argv[2] + "\n\n" +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))
# 调试请求发送结果
print(req.content)
# 记录日志
logging.info('sendto:' + toparty + ';;subject:' + subject + ';;message:' + message)

坑记录,添加ip白名单

# 踩坑了,tmd,需要加入自建应用的ip白名单
# https://open.work.weixin.qq.com/devtool/query?e=60020


应用管理
python3版本的坑

#!/usr/bin/env python3

别忘记,修改脚本的python解释器!!

测试发微信(python)

python3 weixin_zabbix.py 2 "zabbix微信报警测试" "当前使用python脚本发送,发送人www.yuchaoit.cn"

10.推送报警信息(bash)

cat > weixin.sh << 'EOF'
#!/bin/bash
# Authror: www.yuchaoit.cn
#需要将下列信息修改为自己注册的企业微信信息 #应用ID
agentid='1000002'

#secretID
corpsecret='Z2LpWYv2tswSWZXuXAzyxqCuGUWrDPKhhHvvnY' 

#企业ID 
corpid='ww76b673e3bea'

#接受者的账户,由zabbix传入 
#user=$1

#报警邮件标题,由zabbix传入 
title=$2 

#报警邮件内容,由zabbix传入 
message=$3

# 接收信息的组
group=$1 

#获取token信息,需要在链接里带入ID
token=$(curl -s -X GET "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${corpsecret}"|awk -F \" '{print $10}')

#构造语句执行发送动作,发送http请求
curl -s -H "Content-Type: application/json" -X POST "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${token}" -d' {
   "toparty" : "'"${group}"'",
   "msgtype" : "text",
   "agentid" : '"${agentid}"',
   "text" : {
       "content" : "'"${title}\n\n${message}"'"
   },
   "safe":0
}' >> /tmp/weixin_bash.log

#将报警信息写入日志文件
echo -e "\n报警时间:$(date +%F-%H:%M)\n报警标题:${title}\n报警内容:${message}" >> /tmp/weixin_bash.log
EOF

bash发报警

[root@m-61 ~]#bash weixin.sh 2 "bash还是不如python美丽啊" "bash发送报警了!!"

注意,该脚本,放入服务端的一个alter脚本目录中即可,
zabbix-server可以去调用它
AlertScriptsPath=/usr/lib/zabbix/alertscripts

确保脚本如下即可

[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#ll
total 8
-rwxr-xr-x 1 zabbix zabbix 1739 Jul 11 11:57 dingding.py
-rwxr-xr-x 1 zabbix zabbix 2328 Jul 8 16:24 weixin.sh

去zabbix-UI,添加报警动作,执行你的脚本,实现zabbix+脚本实现微信报警通知

1. 需要设置zabbix-server的配置文件,设置一个脚本目录,zabbix才能去这里去找到脚本且执行

[root@zabbix-server-71 ~]#cat  /etc/zabbix/zabbix_server.conf 
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost 
DBName=zabbix
DBUser=zabbix
DBPassword=linux0224
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
# zabbix定义的一个脚本目录
AlertScriptsPath=/usr/lib/zabbix/alertscripts


2. bash py的脚本放入该目录即可,还得注意权限。。。太坑了

修改脚本的权限
[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#chown zabbix.zabbix weixin.sh 
[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#
[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#
[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#chmod +x weixin.sh 
[root@zabbix-server-71 /usr/lib/zabbix/alertscripts]#ll
total 4
-rwxr-xr-x 1 zabbix zabbix 2328 Jul  8 16:24 weixin.sh

12.zabbix页面配置微信报警
添加报警媒介类型


用户设置报警媒介

请注意,这里的收件人,是指微信的组,或者微信的联系人!
传入的参数,我这里是传入的1,是zabbix监控小组的id。


标签:weixin,微信,报警,server,zabbix,usr
From: https://www.cnblogs.com/btcm409181423/p/18236324

相关文章

  • zabbix钉钉报警
    1.钉钉报警原理流程和微信报警类似,发送指定的数据到钉钉官方提供的API接口,钉钉会将报警信息,发送到指定的钉钉群聊,提醒所有的群成员查看,实现告警通知。具体操作流程创建钉钉群聊创建自定义机器人创建报警关键词生成webhook认证信息开发报警脚本填写zabbix-UI界面的配置......
  • 微信小程序学习总结——①
    一、小程序代码的构成1.了解项目的基本组成结构①pages用来存放所有小程序的页面②utils用来存放工具性质的模块(例如:格式化时间的自定义模块)③app.js小程序项目的入口文件④app.json小程序项目的全局配置文件,包括了小程序的所有页面路径、窗口外观、界面表现、底......
  • 微信小程序学习总结——③
    三、小程序的视图与逻辑1.页面导航①页面导航指的是页面之间的相互跳转。例如,浏览器中实现页面导航的方式有如下两种:Ⅰ.<a>链接Ⅱ.location.href②小程序中实现页面导航的两种方式Ⅰ.声明式导航。在页面上声明一个<navigator>导航组件通过点击<navigator>组件......
  • zabbix邮箱报警配置
    1.1配置监控的自定义key判断当前机器登录的用户数量,超过3个1.想好,你这个需求,如何用命令采集,构造出结果who|wc-l2.写zabbix-agent的配置文件[root@zabbix-server-71/etc/zabbix/zabbix_agentd.d]#catuserparameter_login_user.confUserParameter=login.user,who|wc-......
  • QShop商城-在线支付-微信支付
    QShop商城-在线支付-微信支付QShop商城-在线支付-微信支付一、微信支付介绍微信支付支持已认证的服务号,政府或媒体订阅号接入支付功能。公众号接入支付后,可以通过JSAPI支付产品来完成在公众号、朋友圈、聊天窗口等微信内的收款需求。二、如何开通微信在线支付请查看微信官......
  • 微信小程序:实现音乐播放器的功能
    在编写微信小程序时,也许会用到播放背景音乐的功能,那么如果是自动播放背景音乐,可以在加载页面时就运行播放音乐的函数,若是希望简单实现音乐播放器的功能,那么设计几个按钮,并且设计按钮点击的事件。接下来我说明按钮实现音乐播放的功能。wxss文件就不讲了,如果需要设置按钮格式,可......
  • 社交软件红包技术解密(十三):微信团队首次揭秘微信红包算法,为何你抢到的是0.01元
    本文由腾讯梁中原分享,原题“红包算法揭秘!哪段代码让你只抢了0.01元?”,下文进行了排版和内容优化等。1、引言在上一篇《来看看微信十年前的IM消息收发架构,你做到了吗》的文章中,有用户提到想了解自己每次微信红包只能抽中0.01元的反向手气最佳是怎么在技术上实现的,于是就有了本......
  • 用python写一个提取微信群的关键信息应用
    要提取微信群的关键信息,我们可以使用Python编写一个微信聊天记录爬虫,然后分析聊天记录提取关键信息。以下是一个简单的示例:1.安装所需库:```bashpipinstallwxpypipinstallbeautifulsoup4pipinstallrequests```2.编写微信聊天记录爬虫:```pythonimportwxpyimp......
  • springboot+vue+微信小程序的放飞自我自驾游系统
    背景在Internet高速发展的今天,计算机的应用几乎完成覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。在中国,网上管理的兴起也同时飞速发展着。为了适应现代人类强烈的时间观念,对于旅游业来说,大量游玩信息不能及时......
  • 微信小程序(6.生命周期)
    系列文章目录微信小程序(1.基础知识)微信小程序(2.配置文件)微信小程序(3.常用样式和组件)微信小程序(4.事件系统)微信小程序(5.模板语法)微信小程序(6.生命周期)文章目录系列文章目录1.小程序运行机制2.小程序更新机制3.生命周期介绍4.应用级别生命周期5.页面级别生命......