利用微信公众号实现zabbix告警

简介:

之前觉得没必要写这个,这两天有同学问到zabbix关于微信告警的相关问题,于是昨天就注册了一个微信公众号,当做学习交流一下;

    首先;我们要明白我们创建微信公众号发送消息到底需要哪些参数,这样我们再创建时候注意生成就可以了,需要的有如下几个参数:

    1、通讯用户:touser

    2、用于生成token的:corpid,secret

    3、用于ID


开始操作:企业号注册连接:https://qy.weixin.qq.com/cgi-bin/loginpage


1、点击注册,然后选择团队主从即可:


wKioL1etaPKAc7RrAADBARlsruc254.png-wh_50


wKiom1etaR6hLjR8AABOF53CVw4196.png-wh_50


wKioL1etaXHSV_oYAAEIMD_nIC4344.png-wh_50


2、创建企业号名称之后,默认需要创建一个通信账号,要是没有可以点击通讯录创建(touser):

wKiom1etaj7xDh5NAABQCutgxVQ128.png-wh_50


3、点击应用中心,新建应用,消息应用(获取应用ID):


wKiom1etasbybLNRAABJbGVTTLg465.png-wh_50


wKioL1etawfT1KzWAABaF8sytwQ711.png-wh_50



wKiom1etaxehED-UAABaxYHLozA910.png-wh_50


可以看到已经生成应用ID:


wKioL1eta2GCmYGvAABJa_Kam_A180.png-wh_50


4、开始添加应用权限,生成corpid,secret:


点击设置--》权限管理--》进来分组管理的名称和用户用xiaoluo即可:


wKiom1eta_uD5H9rAAA1efPqGcE147.png-wh_50

创建之后可以查看看到corpid和secret了:


wKiom1etbEWAP8_YAABO5ZZsi24566.png-wh_50


然后把应用权限和通讯录权限都添加进去即可,不然可能会报权限错误:


wKioL1etbI7BP1gQAABuaV0tHOg063.png-wh_50


上面的步骤修改通讯录权限,添加我们的用户即可:下面我们用curl来测试一下是否可以


1、通过corpid和secret获取token,发送get请求:


1
2
[root@monitor weixin]# curl "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx026430a7e676a190&corpsecret=tbb9lAJRS-tY96qzH0q8hcecCx563GceEKXTWmrvUQYXb52v90AeVBNxBP1O2dq1"
{"access_token":"-z6APpKnSGFgPHNjPgX24Nu9ph7uexsFQOjj2-I8YWZ0F-9_CJ5CgF2WnkX901Lu","expires_in":7200}


2、通过tokenid 发送数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@monitor weixin] # cat port_data.py 
#!/usr/bin/env python
import  requests
url  =  "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=WkLoCGsyUk7ItDtwG2P5KqX6EPvhIXlzgc4BbUAROAfjAJBD1ZRebeuIOG-_ylUF"
data  =  { 
    "touser" :  "xiaoluo" , 
    "msgtype" :  "text" , 
    "agentid" :  1 , 
    "text" : { 
        "content" :  "hello ,xiaoluoge" 
    }, 
    "safe" : "0" 
}
r  =  requests.post(url,json = data)
print  r.status_code
print  r.content

执行结果:

1
2
3
[root@monitor weixin] # python port_data.py 
200
{ "errcode" : 0 , "errmsg" : "ok" }


    到此没问题的话,那么说明微信公众号的收发数据功能已经做好了,接下来就是设置zabbix的步骤了


1、添加媒介,设置成我们的脚本:


wKiom1etlB_C7wpYAAA1YFGfQhA915.png-wh_50

备注:{ALERT.SENDATO}和{ALERT.MESSAGE}是两个内置宏。


2、创建动作和执行操作:


wKiom1etlJ6DftEEAAA19DaQiwQ031.png-wh_50


wKioL1etlL7QfG9SAABsz8MqcNc399.png-wh_50


3、用户添加媒介:


wKioL1etlN-yxBHBAAAqO-vDgPc287.png-wh_50


#备注:xiaoluo是传参的第一个参数,就是我们创建的用户。


4、脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[root@monitor alertscripts] # cat post_data.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import  requests
import  json
import  sys
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):
         req  =  requests.get(url)
         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" :  1 , 
                 "text" : { 
                         "content" : content
                         }, 
                 "safe" : "0" 
                 }
 
         res  =  requests.post(url,json = data)
         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 ,Secret)
     print  get_token.send_message(user,content)


5、执行效果:


wKiom1etlgfzaJgkAAGBsYaAiEQ813.png-wh_50

zabbix视频请移步:http://www.roncoo.com/details/fb3050a5b34b42f39ccad83ebebc89c1


zabbix自动化课程目录(需求更新中):


1、zabbix生产环境如何使用

2、saltstack批量部署zabbix_agent

3、zabbix API简单使用讲解

4、web UI讲解

5、开始监控之添加一个简单的linux监控

6、zabbix 强大的内置key讲解

7、内置key的使用、 端口、用户数、磁盘读取状态出图

8、trigger表达式学习,实现用户登录数,端口检查告警

9、zabbix邮件告警设置与维护周期

10、zabbix自定义Key添加,tcp状态模板编写

11、自定义监控之、监控nginx解析与实现

12、自定义监控之php-fpm监控

13、自定义监控之mysql状态监控

14、自定义监控之缓存服务器memcached,redis监控

15、自动化之saltstack管理zabbix,批量推送key生效

16、zabbix自动发现绑定删除模板,自动注册

17、zabbix lld发现讲解以及端口发现监控告警出图

18、zabbix lld 发现web站点以及批量获取状态码

19、zabbix lld复习和监控磁盘的运行状况

20、zabbix生成环境规范和按月生成报表资源统计

21、微信公众号告警











本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1837443,如需转载请自行联系原作者
目录
相关文章
|
监控 机器人 Python
Zabbix实现钉钉群告警
Zabbix实现钉钉群告警
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
一文吃透企业级elk技术栈:9. zabbix结合logstash告警
|
运维 监控 前端开发
Zabbix告警分析新革命:DeepSeek四大创新场景助力智能运维
面对日益复杂的IT环境,高效分析监控数据并快速响应成为运维的关键挑战。本文深入探讨了DeepSeek与Zabbix结合的创新应用,包括一键式智能告警分析、Zabbix文档知识库助手及钉钉告警增强功能。通过部署指南和实用脚本,展示了如何提升故障排查效率,为运维工程师提供高效解决方案。
1756 5
|
人工智能 运维 监控
Zabbix告警分析新纪元:本地DeepSeek大模型实现智能化告警分析
本文由Zabbix中国峰会演讲嘉宾张世宏撰写,介绍如何通过集成Zabbix监控系统与深度求索(DeepSeek)AI助手,构建智能化告警处理方案。该方案利用Webhook机制传递告警信息,借助DeepSeek的智能分析能力,帮助运维团队快速识别问题根源并提供解决方案。文章详细描述了技术架构、环境搭建、Webhook配置及实际案例,展示了AI在运维领域的应用前景和优势。
3282 0
|
监控 机器人 Shell
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
868 1
Nightingale——夜莺监控系统部署企业微信机器人告警系【四】
|
监控 Shell API
shell监控脚本告警通过微信外发
shell监控脚本告警通过微信外发
570 1
|
Prometheus Cloud Native Linux
Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(基础篇---三)
Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(基础篇---三)
1119 0
|
Prometheus 监控 Cloud Native
Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(基础篇---二)
Linux|centos7下部署安装alertmanager并实现邮箱和微信告警(基础篇---二)
1513 0
|
监控 NoSQL Redis
【Zabbix】Zabbix微信告警配置演示(下)
【Zabbix】Zabbix微信告警配置演示(下)
575 0
|
监控
【Zabbix】Zabbix微信告警配置演示(上)
【Zabbix】Zabbix微信告警配置演示
469 0

推荐镜像

更多