目录
如果有没安装zabbix的网友可以看我上一章安装文档,先把zabbix安装上
案例概述:本章使用zabbix来监控nginx是否启用、PV(浏览量)和当前连接数并设置触发器实现web前台报警。
环境介绍:
主机名 | ip地址 | 软件 | 系统版本 |
zbx-server | 192.168.100.101 | Zabbix监控端 | Centos 7.4 x86_64 |
nginx | 192.168.100.102 | Agent、nginx | Centos 7.4 x86_64 |
1.安装nginx
(1)如果已安装nginx可略过此步
可通过rpm包快速部署nginx
http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm
[root@nginx ~]# yum -y install nginx-1.24.0-1.el7.ngx.x86_64.rpm
#注意安装时必须和rpm包在同一目录
(2)启动并设置开机自启
[root@nginx ~]# systemctl start nginx
[root@nginx ~]# systemctl enable nginx
2.打开状态统计功能
(1)修改nginx主配
[root@nginx ~]# vim /etc/nginx/conf.d/default.conf
(2)开启自定义监控项
[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.conf
##取消注释将0改为1表示启用允许用户自定义参数
(3)创建一个存放zabbix脚本目录
[root@nginx ~]# mkdir /etc/zabbix/scripts/
写一个简单监控nginx状态脚本
[root@nginx ~]# vim /etc/zabbix/scripts/nginx_status.sh
#!/bin/bash
#这是一个监控nginx状态简单脚本
case $1 in
status)
systemctl status nginx >>/dev/null
if [ $? -eq 0 ];then
echo "1"
else
echo "0"
fi
;;
pv)
curl -s 127.1.1.1/status |awk NR==3'{print $1}'
;;
lianjie)
curl -s 127.1.1.1/status |awk NR==1'{print $3}'
;;
esac
(4)给脚本添加执行权限
[root@nginx ~]# chmod +x /etc/zabbix/scripts/nginx_status.sh
(5)添加键值
[root@nginx ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=status,bash /etc/zabbix/scripts/nginx_status.sh status
UserParameter=pv,bash /etc/zabbix/scripts/nginx_status.sh pv
UserParameter=lianjie,bash /etc/zabbix/scripts/nginx_status.sh lianjie
键值概述:
zabbix监控的功能项,有的监控内容不存在(如硬盘的读取速度),想利用已经存在的模块完成监控,这里考虑zabbix已经存在的其他键值,看看是否可以实现需求;
(6) 重启agent
[root@nginx ~]# systemctl restart zabbix-agent.service
3.来到Server端安装zabbix-get
[root@zbx-server ~]# yum -y install zabbix-get
查看其监控项的键值
[root@zbx-server ~]# /usr/bin/zabbix_get -s 192.168.100.102 -k nginx.fangwen
##输出1表示nginx正在运行
4.来到zabbix web界面添加nginx监控主机
5.添加自定义监控项
添加一个模版
点击刚创建的模版
点击‘监控项’---‘创建监控项’
下滑点击测试---获取到的值为‘1’表示nginx为启用状态
测试没问题后点击‘添加’
可以按照刚才的方法把其余两个监控项添加上,如果感觉监控项太多可以不添加
pv 浏览量
lianjie 连接数量
6.给监控项添加图形
把刚才添加的监控项勾选上
点击‘添加’
把其余两个安装也添加上
7.创建触发器(根据条件进行触发某个告警操作)
点击‘触发器’----‘创建触发器’
名称:服务异常关闭----点击‘添加’
选择监控项-----当状态等于0(关闭)时触发条件进行前台告警
再添加一个pv键值访问量的触发器和服务异常恢复的
8.将自定义的nginx模版应用到主机
将刚添加的模版勾选上
验证:
测试1:
耐心等待一两分钟
测试2:
(1)关闭nginx服务查看是否会前台告警
[root@nginx ~]# systemctl stop nginx
(2)启动nginx
测试3:浏览量
用循环生成两百个浏览量,一分钟后查看是否会前台告警
[root@agent ~]# for e in $(seq 220) ;do curl -s 127.1.1.1 >>/dev/null ;echo "已生成$e个浏览量";done
成功!!!
如果感觉前台告警不方便,不易发现,后续可以结合邮箱、微信、钉钉、短信等告警方式