文档章节

zabbix实现状态码情况之微信告警

q867765383
 q867765383
发布于 2017/08/23 18:02
字数 1174
阅读 82
收藏 1

zabbix实现状态码情况之微信告警

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。即数据的采集方式有两种:

公用协议专用:(SNMP SSH Telnet)无agent,不需要去安装额外的agent

专用客户端采集:zabbix agent来完成数据采集工作

下面采用C/P/S架构实现:

在搭建zabbix这块就不详细介绍了,我这边大概描述下:

一、安装server端

1、首先在server端安装一个网络yum包:

rpm  -ivh  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

 

2、安装zabbix server端:监控端

yum install -y zabbix-server-mysql zabbix-web-mysql

 

3、安装数据库:mariadb

yum groupinstall -y mariadb mariadb-client

 

4、修改mariadb配置文件

vim /etc/my.cnf

character-set-server=utf8 #设置字符集为utf8

innodb_file_per_table=1   #让innodb的每个表文件单独存储

 

5、将mariadb服务开机自动启动和重启服务:

systemctl enable mariadb

systemctl restart mariadb

 

执行安全操作:

mysql_secure_installation

mysql -uroot -predhat

 

创建数据库zabbix,授权给用户zabbix访问本地数据库:

a、MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

b、MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

c、MariaDB [(none)]> flush privileges;

 

在数据库里面导入表:

cd /usr/share/doc/zabbix-server-mysql-3.2.1/

解压缩:gzip -d create.sql.gz

mv /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql /root

登录zabbix数据库:mysql -uzabbix -pzabbix zabbix

将create.sql表导入数据库:source create.sql

 

6、配置文件vim /etc/zabbix/zabbix_server.conf

DBPassword=zabbix

 

 

7、重启服务(使用rhel7.2,不然7.0要升级)

systemctl enable zabbix-server.service

systemctl restart zabbix-server.service

 

8、PHP:在配置文件修改时区

 

重启http服务:

systemctl restart httpd

 

9、实验的验证:http://172.25.254.132/zabbix

注意:防火墙这边我都没设置,故可以直接关闭防火墙和关闭selinux

二、安装客户端(zabbix-agent):

1、在agent端上安装网络yum源包:

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

 

2、安装监控主机zabbix-agent

a、yum install -y zabbix-agent

 

b、要修改好配置文件之后才启动服务。

vim /etc/zabbix/zabbix_agentd.conf    配置文件

Server=172.25.254.132                监控的服务器是谁!

Hostname=chen                       监控主机:hostname最左边的字段

systemctl restart zabbix-agent.service  配置改完重启服务

 

3、创建主机

4、对zabbix-get命令简单的测试

在server端安装zabbix-get包!

yum install -y zabbix-get

zabbix_get --help

zabbix_get -s 172.25.254.133 -k system.hostname

zabbix_get -s 172.25.254.131 -k system.cpu.util[0,user,avg5]

 

三、接下来直入主题

首先,添加报警媒介、用户,

微信告警脚本如下:

CropID='xxxxxxxxxxx'
Secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl  $GURL -H "DNT: 1" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/8.1 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -H "X-DevTools-Emulate-Network-Conditions-Client-Id: B546FC80-414C-403F-95F0-EB0F70E58EF7" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" --compressed | awk -F \" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body() {
        local int AppID=1                       # 企业号中的应用id
        local UserID=$1                         # 部门成员id,zabbix中定义的微信接收者
        local PartyID=2                         # 部门id,定义了范围,组内成员都可接收到消息
        local Msg=$(echo "$@" | cut -d" " -f3-) # 过滤出zabbix中传递的第三个参数
        printf '{\n'
        printf '\t"touser": "'"$User"\"",\n"
        printf '\t"toparty": "'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'" $AppID "\"",\n"
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"\""\n"
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

 

然后,在主机中添加监控项

自己定义监控项监控curl状态码的情况

 

其次,Trigger设置4步曲:

只要trigger状态发生变化,就会伴随事件的发生,随之也会有相应action

1、设置Trigger

2、配置用户

3、配置告警介质

4、设置Action

 

接着,添加action的步骤:

a、user/group:发送消息的媒介

b、报警媒介类型

c、action

到这步已经基本完成。接下来就是监测页面的触发器了

 

状态码出现变化,便会发送微信告警!!!

1、假如出现宕机,便会触发,并微信告警

 

2、恢复状态时,也会发送微信信息

 

© 著作权归作者所有

q867765383
粉丝 0
博文 9
码字总数 4922
作品 0
深圳
架构师
私信 提问
Zabbix实现微信告警

zabbix实现微信告警可以分为以下两个步骤: 在百度告警告警平台实现微信告警 将Zabbix接入百度告警平台 微信告警 实现微信告警只需要如下四步: 个人主页关注微信 升级策略配置微信告警 服务...

百度告警
2016/01/19
2.7K
7
zabbix lld结合pycurl批量监控网站服务质量

前两天看到博客有监控web的,之前也写过pycurl的监控状态;后面想想web监控咱们何不直接通过zabbix的方式监控;zabbix确实是个万花筒,这个也是我喜欢zabbix的一个原因之一吧;pycurl可以参考...

小罗ge11
2016/07/24
0
0
利用微信公众号实现zabbix告警

之前觉得没必要写这个,这两天有同学问到zabbix关于微信告警的相关问题,于是昨天就注册了一个微信公众号,当做学习交流一下; 首先;我们要明白我们创建微信公众号发送消息到底需要哪些参数...

小罗ge11
2018/06/29
0
0
利用zabbix API进行管理

zabbix 现在之所以那么流行,个人感觉跟zabbix 强大的API有一个很大的关系,利用API可以帮我们完成很多事情: 1、获取相关组,主机信息。 2、比如有人喜欢获取历史数据重新出图。 3、添加删除...

小罗ge11
2018/06/29
0
0
Zabbix-3.2.3实现微信(WeChat)告警

Zabbix-3.2.3实现微信(WeChat)告警 Zabbix-3.2.3实现微信(WeChat)告警  Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbi...

Abcdocker
2017/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【JAVA基础☞内部存储和GC】Java方法区和永久代

Java方法区和永久代 这里只讨论HotSpot虚拟机,这也是目前使用的最多的JVM。Sun JDK7 HotSpot虚拟机的内存模型如下图所示: 1、什么是方法区 在Java虚拟机中,方法区是可供各线程共享的运行时...

卯金刀GG
18分钟前
1
0
Spring Boot Actuator

编者注 由于开发一个对性能要求很强的后台应用,突然发现部署到aliyun发生问题,而普通笔记本没有任何问题,则需要持续一段时间的监控定位函数执行时间,分析过程,并添加健康检查的可视化内...

抢小孩糖吃
19分钟前
4
0
Zabbix监控ActiveMQ

当我们在线上使用了ActiveMQ 后,我们需要对一些参数进行监控,比如 消息是否有阻塞,哪个消息队列阻塞了,总的消息数是多少等等。下面我们就通过 Zabbix 结合 Python 脚本来实现对 ActiveMQ...

SEOwhywhy
30分钟前
3
0
非webpack require.js + vue + vueRouter + iView 实现按需加载

适合一个人开发的时候,在整个php框架下,又想单页,又可以直接后端assign变量穿透到模板。又不想写接口搞前后分离脚手架一大堆npm 包, 在php模板下 引入require.js <!DOCTYPE html><html...

一箭落旄头
46分钟前
7
0
新特性解读 | MySQL 8.0 窗口函数详解

原创作者: 杨涛涛 背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能。不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF...

爱可生
52分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部