zabbix实现状态码情况之微信告警
2017-08-23 00:00
489 查看
摘要: 阿里云服务器遭受ddoc攻击,显而易见。当云服务器被攻击后导致流量过大,机器宕机,对于公司业务部门的损失是有多大,不言而喻。故可以在本地实现curl云服务器ip的状态码,实时发现被攻击服务器的宕机情况。
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、恢复状态时,也会发送微信信息
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、恢复状态时,也会发送微信信息
相关文章推荐
- Zabbix实现微信告警
- zabbix实现微信告警功能
- Zabbix实现微信告警
- lykchat+zabbix实现微信告警
- Zabbix实现微信告警
- Zabbix-3.0.3实现微信(WeChat)告警
- Zabbix-3.0.3实现微信(WeChat)告警
- zabbix3.0 安装方法,一键实现短信、电话、微信、APP 告警
- Zabbix-3.2.3实现微信(WeChat)告警
- Zabbix-3.0.3实现微信(WeChat)告警
- Zabbix-3.0.3实现微信(WeChat)告警
- zabbix3.0 安装方法,一键实现短信、电话、微信、APP 告警
- Zabbix-3.0.3实现微信(WeChat)告警
- zabbix3.0 安装方法,一键实现短信、电话、微信、APP 告警
- Zabbix 实现微信短信告警
- Zabbix-3.0.3实现微信(WeChat)告警
- Zabbix-3.2.3实现微信(WeChat)告警
- Zabbix-3.2.3实现微信(WeChat)告警
- Zabbix-3.0.3实现微信(WeChat)告警
- Zabbix实现微信告警