第一章 Zabbix5.0版本的安装教程
第二章 Zabbix监控平台部署实验——自定义zabbix监控项目
目录
Zabbix系列文章目录
前言
二、操作步骤
1.安装配置环境
2、授权zabbix-server可以进来拉数据
3、关闭防火墙和selinux
第一步:打开nginx的状态统计功能
第二步:设置zabbix-agent的参数文件
第四步:zabbix-server服务器端查看数据
第五步:zabbix前端操作
总结
提示:主要是通过zabbix来自定义监控项,监控nginx的状态。
一、Zabbix监控的原理图
根据Zabbix监控模式——主要是模拟一台zabbix-server,和两台zabbix-agent的监控,其中一台用是用centos-8 的nginx,还有一台是centos-7 的mariadb。
该实验模拟只监控一台nginx的自定义监控,通过nginx编写脚本获取数据,再传到zabbix监控中显示出来。
zabbix-agent的配置:
zabbix-agent-nginx的安装:
# 查看centos是哪个版本
[root@LB-2 ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)
#安装zabbix 5.0版本centos8
[root@LB-2 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
[root@LB-2 ~]# yum install zabbix-agent -y # 安装zabbix-agent
[root@LB-2 ~]# service zabbix-agent start # 启动agent服务
[root@LB-2 ~]# ps aux|grep zabbix # 查看zabbix进程是否启动
[root@LB-2 ~]# ss -anplut|grep zabbix # 查看端口
出现下图说明已经启动zabbix-agent:
# 修改zabbix配置文件
[root@LB-2 ~]# cd /etc/zabbix
# 修改下面两行的ip
[root@LB-2 zabbix]# vim zabbix_agentd.conf
Server=192.168.138.100 允许ip地址,过来拿数据
ServerActive=192.168.138.100
#重新启动zabbix-agent
[root@LB-2 ~]# service zabbix-agent restart
修改如下图:
[root@LB-2 zabbix]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@LB-2 zabbix]# getenforce
Disabled
在zabbix-server上安装一下zabbix_get :是服务器端可以主动去agent端获取数据的命令
[root@zabbix-server ~]# yum install zabbix-get -y
4、开始设置自定义监控项
示例如下:
状态统计功能:
开启nginx的状态统计功能,可以看到nginx目前的访问量信息、有多少在线、累计有多少次访问、连接了多少次等
(1)编辑 /usr/local/scnginx8/conf/nginx.conf 文件在server下加一个模块:
location = /sc_status{
stub_status;
}
(2)启动nginx
#启动nginx 直接用安装的目录启动
[root@LB-2 conf]# /usr/local/scxiayuzhen99/sbin/nginx
[root@LB-2 conf]# ps aux|grep nginx # 看进程是否真的启动nginx
root 27829 0.0 0.1 43384 880 ? Ss 21:59 0:00 nginx: master process /usr/local/scxiayuzhen99/sbin/nginx
xiayuzh+ 27830 0.0 0.6 77412 5424 ? S 21:59 0:00 nginx: worker process
xiayuzh+ 27831 0.0 0.6 77412 5424 ? S 21:59 0:00 nginx: worker process
root 27836 0.0 0.1 12320 996 pts/0 R+ 21:59 0:00 grep --color=auto nginx
(3)访问nginx页面 用刚刚在nginx.conf文件中加的location路径/sc_status
agent-nginx使用的脚本:
[root@LB-2 zabbix_agentd.d]# pwd # 进入到该zabbix目录下
/etc/zabbix/zabbix_agentd.d
[root@LB-2 zabbix_agentd.d]# vim nginx_data.sh #在agent-nginx上创建nginx脚本
#!/bin/bash
# 填写自己这台nginx的ip地址
HOST="192.168.138.5"
PORT="80"
case $1 in
active)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Active/{print $NF}'
;;
reading)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Reading/{print $2}'
;;
writing)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Writing/{print $4}'
;;
waiting)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk '/Waiting/{print $6}'
;;
accepts)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3 {print $1}'
;;
ping)
/sbin/pidof nginx | wc -l
;;
handled)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3{print $2}'
;;
requests)
/usr/bin/curl --insecure "http://$HOST:$PORT/sc_status" 2>/dev/null| awk 'NR==3{print $3}'
;;
esac
继续操作zabbix-server:
zabbix-agent使用的参数文件:
在zabbix-agent上执行
[root@LB-2 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d --》路径
# 编辑自定义的用户参数文件
[root@LB-2 zabbix_agentd.d]# vim userparameter_nginx.conf 写入下面这行内容
UserParameter=sc.nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_data.sh $1
# 授予权限
[root@LB-2 zabbix_agentd.d]# chmod +x nginx_data.sh
[root@LB-2 zabbix_agentd.d]# ll
总用量 8
-rwxr-xr-x 1 root root 1085 8月 5 20:12 nginx_data.sh
-rw-r--r-- 1 root root 78 8月 5 16:58 userparameter_nginx.conf
# 刷新服务
[root@LB-2 zabbix_agentd.d]# service zabbix-agent restart
Redirecting to /bin/systemctl restart zabbix-agent.service
在zabbix-server上添加监控项--》出图、触发器
监控项的key是sc.nginx.status[ping]
监控项的key是sc.nginx.status[active]
监控项的key是sc.nginx.status[requests]
zabbix服务器端:
[root@zabbix-server ~]# curl http://192.168.138.5/sc_status # 获取前端页面信息
Active connections: 1
server accepts handled requests
310 310 303
Reading: 0 Writing: 1 Waiting: 0
# 使用zabbix-get命令获取相关信息
sc.nginx.status[] 定义好的格式
[root@zabbix-server ~]# zabbix_get -k sc.nginx.status[active] -s 192.168.138.5
1
[root@zabbix-server ~]# zabbix_get -k sc.nginx.status[requests] -s 192.168.138.5
305
1、建立应用集——监控项——图形——触发器——添加聚合图形
2、关掉agent-nginx的服务
[root@LB-2 zabbix_agentd.d]# /usr/local/scxiayuzhen99/sbin/nginx -s stop
3、查看zabbix监控是否变化 看仪表盘——看聚合图形
4、启动agent-nginx
[root@LB-2 zabbix_agentd.d]# /usr/local/scxiayuzhen99/sbin/nginx
5、再次查看是否恢复
首先,登录进去创建一个主机。
配置主机:
配置模板:
主机群组选择Templates之后,再进来选择其他的。
创建应用集:
创建监控项:
键值要跟nginx配置文件的一致。
创建触发器:
创建图形:
在查看监控主机:
点击图形:这样说明有数据展示
也可以添加到聚合图形中。
在仪表盘中查看是否警告:
如果这个时候后台nginx是启动的,就会显示绿色——是;如果关掉nginx,就会显示——否。可以通过开启或者关闭nginx,来查看监控警报。
启动agent-nginx:
[root@LB-2 zabbix_agentd.d]# /usr/local/scxiayuzhen99/sbin/nginx
关掉agent-nginx的服务:
[root@LB-2 zabbix_agentd.d]# /usr/local/scxiayuzhen99/sbin/nginx -s stop
查看端口是否启动nginx:
[root@LB-2 conf]# ps aux|grep nginx
以上就是今天要讲的内容,本文介绍了使用zabbix来监控nginx,下次还可以用这样的方法试着监控其他的数据。