您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

zabbix5.0 配置监控agent, 并通过微信接收报警

时间:2020-08-31 12:42:57  来源:  作者:

今天主要说一下 zabbix5.0 监控agent 并通过微信接收报警信息。

 

安装 agent

#安装
yum install ./zabbix-agent-5.0.2-1.el7.x86_64.rpm
#修改配置 [root@cms-192 ~]# cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1
Server=192.168.100.5
ServerActive=192.168.100.5
Hostname=cms-192.168.100.9
Include=/etc/zabbix/zabbix_agentd.d/
#配置HostMetadataItem 用于区分linuxwindows    HostMetadataItem=system.uname    #192.168.100.5 是 zabbix server 的IP地址   
#启动 agent systemctl start zabbix-agentsystemctl enable zabbix-agent

在 zabbix web 上先手动添加一下这个主机

先在左侧找到配置 ,选择主机,然后到右上角点创建主机

zabbix5.0 配置监控agent, 并通过微信接收报警

 

给这个主机添加一个模板,强烈推荐 Template OS Linux by Zabbix agent 这个模板,几乎服务器方面的监控就都有了,比如cpu,内存硬盘,网络,进程数等等。这个模板本身就是很多模板链接过来的,相当于汇总了很多模板的功能。

zabbix5.0 配置监控agent, 并通过微信接收报警

 


zabbix5.0 配置监控agent, 并通过微信接收报警

 

添加之后等一分钟再去 最新数据 里选择这个主机,就能看到监控的最新数据了。

zabbix5.0 配置监控agent, 并通过微信接收报警

 

配置自动注册功能,可以实现agent会自动向server端注册,并添加到模板和群组 ,这样如果服务器多了会减轻server端压力,,在这方面比自动发现好一点。

zabbix5.0 配置监控agent, 并通过微信接收报警

 

开始给自动注册创建动作:

zabbix5.0 配置监控agent, 并通过微信接收报警

 


zabbix5.0 配置监控agent, 并通过微信接收报警

 

最后添加完是下图这样的:

zabbix5.0 配置监控agent, 并通过微信接收报警

 

为了验证自动注册功能,我再新增一个主机,这次不在 zabbix web 上添加,用自动注册功能去添加。 在新服务器上启动agent,看看会不会自动注册。

zabbix5.0 配置监控agent, 并通过微信接收报警

 

成功添加!说明自动注册功能可以用了。

 

  • 题外话:

如果在服务器很多的情况下,要监控这些服务器,用自动化工具结合自动注册操作起来更高效。比如用saltstack 给所有的服务器安装agent 并修改配置文件,最后启动agent,然后所有的agent就都可以注册到server 端了。


 

配置微信报警

第一步, 申请一个企业微信

第二步, 登录企业微信后台,创建应用,用于接收报警,这里的应用相当于群组

注意:应用创建完后要启用,并且记住应用的AgentId和Secret,后面会用到 。

第三步, 获取AccessToken ,只有获取了AccessToken 才能给企业微信发送消息

 

用get方法请求这个地址 https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
只需要把corpid和corpsecret换成自己的就可以了。 corpid 创建的企业号生成的企业id , 在我的企业 ---> 企业信息 下面找到企业id  corpsecret 是刚才创建的应用生成的Secret 也可以用下面这个工具获取AccessToken,这个是官方提供的工具。https://work.weixin.qq.com/api/devtools/devtool.php

第四步, 生成发送企业微信的URL地址

 

请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN参数说明:参数	          是否必须	  说明access_token	是	      调用接口凭证  各个消息类型的具体POST格式参考以下文档:返回示例: {   "errcode" : 0,
   "errmsg" : "ok",
   "invaliduser" : "userid1|userid2", // 不区分大小写,返回的列表都统一转为小写
   "invalidparty" : "partyid1|partyid2",
   "invalidtag":"tagid1|tagid2"
 }#如果部分接收人无权限或不存在,发送仍然执行,但会返回无效的部分(即invaliduser或invalidparty或invalidtag),常见的原因是接收人不在应用的可见范围内#例子: corpid = 'xxxxxx'
Secretid = 'xxxxxxx'
AccessTokenUrl= 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' %(corpid,Secretid)
resp = requests.get(AccessTokenUrl).json()access_token = resp['access_token']
SendUrl = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' %access_token
print(SendUrl) #这里的 SendUrl 就是 发送企业微信的URL

 

第五步, 发送消息测试

 

消息类型包括:   
    文本消息                   图片消息    语音消息    视频消息    文件消息    文本卡片消息    图文消息     markdown消息     小程序通知消息   #这里只以文本消息为例,其他消息类型参考文档  https://open.work.weixin.qq.com/api/doc#90002/90151/90854
文本消息:     {   "touser" : "UserID1|UserID2|UserID3",
   "toparty" : "PartyID1|PartyID2",
   "totag" : "TagID1 | TagID2",
   "msgtype" : "text",
   "agentid" : 1,
   "text" : {
       "content" : "下雨了该收衣服了"
   },   "safe":0
}      参数说明:参数	  是否必须	说明touser	否	    成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个),特殊情况:指定为@all,则向该企业应用的全部成员发送;
toparty	否	    部门ID列表,多个接收者用‘|’分隔,最多支持100个,当touser为@all时忽略本参数;
totag	否	    标签ID列表,多个接收者用‘|’分隔,最多支持100个,当touser为@all时忽略本参数;
msgtype	是	    消息类型,此时固定为:textagentid	是	    企业应用的id,整型;企业内部开发,可在应用的设置页面查看;第三方服务商,可通过接口 获取企业授权信息 获取该参数值;content	是	    消息内容,最长不超过2048个字节,超过将截断;
safe	否	    表示是否是保密消息,0表示否,1表示是,默认0;  
################################ 注意:     touser、toparty、totag不能同时为空      其中text参数的content字段可以支持换行、以及A标签,即可打开自定义的网页(注意:换行符请用转义过的n)# 可以根据部门发消息,也可以给个人发消息,还以给全体人员发消息  #例子:  corpid = 'xxxxxx'
Secretid = 'xxxxxxxx'
AccessTokenUrl= 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' %(corpid,Secretid)
resp = requests.get(AccessTokenUrl).json()access_token = resp['access_token']
SendUrl = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' %access_token
params = {   "touser" : "zhangsan",
   "msgtype" : "text",
   "agentid" : 1000019,
   "text" : {
       "content" : "你买的手机到了,快来取吧n。"
   },   "safe":0
}#注意,文本类型只能发送字符串,需要 把字典格式转成字符串 json.dumpsresq = requests.post(SendUrl,data=json.dumps(params))print(resq.status_code)
#这个时候 企业微信可以收到content 里定义的消息,就说明测试通了。#如果发生错误,找到错误码到 https://open.work.weixin.qq.com/devtool/query?e=301002 查看。

 

第六步, 设置微信可以接收企业微信的消息

在我的企业 ---> 微信插件,下方有一个邀请关注的二维码,微信关注后即可收到企业微信的消息,这样就不用再安装企业微信客户端就可以收报警消息了

 

第七步,配置zabbix 向企业微信发送报警信息

  • 在 zabbix web 的管理---->报警媒介----创建媒介类型
zabbix5.0 配置监控agent, 并通过微信接收报警

 

你也可以在上图中的 Message templates 设置一下报警信息的模板。

我没有在这里设置,这里相当于全局。我是在动作里设置的,我有好几个动作,我对每个动作的消息模板还不太一样。

  • 给需要收到微信报警的用户添加报警媒介
zabbix5.0 配置监控agent, 并通过微信接收报警

 

注意,这里的收件人是企业微信里的用户, 你得有那个用户并且在应用里。也可以写@all发给所有人

  • 添加触发器动作

先选择类型:

zabbix5.0 配置监控agent, 并通过微信接收报警

 

点击右上角创建动作:

zabbix5.0 配置监控agent, 并通过微信接收报警

 


zabbix5.0 配置监控agent, 并通过微信接收报警

 

我自定义了消息模板:

zabbix5.0 配置监控agent, 并通过微信接收报警

 

测试微信接收的报警信息:

 

报警:High memory utilization ( >90% for 5m)
Notification: PROBLEM
Host: g1-192.168.100.16
Time: 2020.08.28 18:34:08
Info: High memory utilization ( >90% for 5m) (vm.memory.utilization): 90.59 %

 

最后的关键就是看你的脚本怎么写的,不要频繁的访问获取token的接口,我获取一次token 后保存在本地文件,等快过期的时候再重新获取一次。

如果我的文章有帮助到你,希望你能关注我一下,谢谢。



Tags:zabbix5.0   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
今天主要说一下 zabbix5.0 监控agent 并通过微信接收报警信息。 安装 agent#安装yum install ./zabbix-agent-5.0.2-1.el7.x86_64.rpm#修改配置 [root@cms-192 ~]# cat /etc...【详细内容】
2020-08-31  Tags: zabbix5.0  点击:(1238)  评论:(0)  加入收藏
zabbix 是一款开源的成熟的企业级监控平台,适用于大规模企业IT监控。我本人已经用了zabbix很多年了,之前用的是老版本 zabbix3.0,新环境我用了最新的 zabbix5.0,记录下安装步骤...【详细内容】
2020-08-06  Tags: zabbix5.0  点击:(197)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(1)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(9)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(19)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(14)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(14)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(22)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(28)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条