博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用微信公众号实现zabbix告警
阅读量:7123 次
发布时间:2019-06-28

本文共 3255 字,大约阅读时间需要 10 分钟。

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

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

    1、通讯用户:touser

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

    3、用于ID

开始操作:企业号注册连接:

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

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

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

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

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

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

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

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

上面的步骤修改通讯录权限,添加我们的用户即可:下面我们用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" 
}
= 
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、添加媒介,设置成我们的脚本:

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

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

3、用户添加媒介:

#备注: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、执行效果:

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,如需转载请自行联系原作者
你可能感兴趣的文章
Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】
查看>>
提升编程能力的11个技巧
查看>>
Windows Server 2008 各版本功能差异与比较各版本概观--转载
查看>>
一套最全的JavaScript 语言基础知识点总结(思维导图10张)
查看>>
【原】iOS学习之第三方-AFNetworking1.3.0
查看>>
元素的content属性
查看>>
popoverController使用注意
查看>>
关于Could not parse configuration: /hibernate.cfg.xml的问题
查看>>
python-第三方模块
查看>>
十天冲刺之六
查看>>
开启telnet
查看>>
个人冲刺第四天
查看>>
OpenStack开启sshd
查看>>
Java基础语法
查看>>
Zabbix4.0+第三方报警平台OneAlert监控报警
查看>>
C#中如何使用断点操作调试程序
查看>>
hdu1513 经典dp:添加最少字符使字符串回文:(滚动数组优化空间)
查看>>
YAML Class ID Reference
查看>>
多端生成图片
查看>>
什么是人工智能?
查看>>