zabbix监控nginx状态页面

环境说明

系统

服务

ip

主机名

centos7

zabbix

192.168.47.140

zabbix_server

redhat8

nginx

zabbix_agentd

192.168.47.115

nginx

一、zabbix服务配置

请参考这里

[root@zabbix_server ~]# ss -anlt
State      Recv-Q Send-Q                          Local Address:Port                                         Peer Address:Port              
LISTEN     0      128                                         *:10050                                                   *:*                  
LISTEN     0      128                                         *:10051                                                   *:*                  
LISTEN     0      128                                 127.0.0.1:9000                                                    *:*                  
LISTEN     0      128                                         *:22                                                      *:*                  
LISTEN     0      100                                 127.0.0.1:25                                                      *:*                  
LISTEN     0      80                                         :::3306                                                   :::*                  
LISTEN     0      128                                        :::80                                                     :::*                  
LISTEN     0      128                                        :::22                                                     :::*                  
LISTEN     0      100                                       ::1:25                                                     :::*

zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标

二、nginx服务配置

请参考这里

[root@nginx ~]# ss -anlt
State              Recv-Q             Send-Q                         Local Address:Port                         Peer Address:Port             
LISTEN             0                  128                                  0.0.0.0:80                                0.0.0.0:*                
LISTEN             0                  128                                  0.0.0.0:22                                0.0.0.0:*                
LISTEN             0                  128                                     [::]:22                                   [::]:*                
[root@nginx ~]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-10-28 13:59:35 CST; 4h 12min ago
  Process: 986 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 1006 (nginx)
    Tasks: 2 (limit: 11300)
   Memory: 8.3M
   CGroup: /system.slice/nginx.service
           ├─  1006 nginx: master process /usr/local/nginx/sbin/nginx
           └─282928 nginx: worker process

10月 28 13:59:35 localhost.localdomain systemd[1]: Starting nginx...
10月 28 13:59:35 localhost.localdomain systemd[1]: Started nginx.

三、nginx主机端的zabbix_agentd配置

复制资源包
[root@zabbix_server ~]# cd /usr/src/
[root@zabbix_server src]# ls
apr-1.7.0  apr-util-1.6.1  httpd-2.4.49  libzip-1.3.2  libzip-1.3.2.tar.gz  php-7.4.25  php-8.0.10  zabbix-5.4.4  zabbix-5.4.4.tar.gz
[root@zabbix_server src]# scp zabbix-5.4.4.tar.gz root@192.168.47.115:/usr/src/
root@192.168.47.115's password: 
zabbix-5.4.4.tar.gz                                                                                         100%   23MB  74.7MB/s   00:00
安装服务
[root@nginx ~]#  yum -y install vim wget gcc gcc-c++ make pcre-devel openssl openssl-devel
[root@nginx src]# useradd -r -M -s /sbin/nologin zabbix

[root@nginx ~]# cd /usr/src/
[root@nginx src]# ls
debug  echo-nginx-module-master  echo-nginx-module-master.tar  kernels  nginx-1.21.3  zabbix-5.4.4.tar.gz
[root@nginx src]# tar xf zabbix-5.4.4.tar.gz 
[root@nginx src]# cd zabbix-5.4.4
[root@nginx zabbix-5.4.4]# ./configure --enable-agent
[root@nginx zabbix-5.4.4]# make install
配置服务
[root@nginx zabbix-5.4.4]# vim /usr/local/etc/zabbix_agentd.conf
Server=192.168.47.140			#113行
ServerActive=192.168.47.140 	#154行
Hostname=tanjie				    #165行 (唯一性)也可以用生产环境建议使用随机生成的字符串
启动服务
[root@nginx ~]# zabbix_agentd 
[root@nginx ~]# ss -anlt
State              Recv-Q             Send-Q                         Local Address:Port                          Peer Address:Port            
LISTEN             0                  128                                  0.0.0.0:80                                 0.0.0.0:*               
LISTEN             0                  128                                  0.0.0.0:22                                 0.0.0.0:*               
LISTEN             0                  128                                  0.0.0.0:10050                              0.0.0.0:*               
LISTEN             0                  128                                     [::]:22                                    [::]:*

四、zabbix_server端添加监控主机

zabbix nginx监控指标 zabbix监控nginx模板_vim_02


zabbix nginx监控指标 zabbix监控nginx模板_nginx_03


zabbix nginx监控指标 zabbix监控nginx模板_zabbix_04

五、nginx主机配置

开启状态页面
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf
        location /status {
            stub_status on;				#on开启 off关闭
            allow 192.168.47.0/24;   	#应许47网段的主机访问
            deny all;					#剩下的拒绝
            root   html;	
            index  index.html;
[root@nginx ~]# nginx -s reload
[root@nginx ~]# curl 192.168.47.115/status
Active connections: 1 
server accepts handled requests
 68 68 155 
Reading: 0 Writing: 1 Waiting: 0
状态页面信息详解:

状态码

表示的意义

Active connections 1

当前所有处于打开状态的连接数

accepts

总共处理了多少个连接

handled

成功创建多少握手

requests

总共处理了多少个请求

Reading

nginx读取到客户端的Header信息数,表示正处于接收请求状态的连接数

Writing

nginx返回给客户端的Header信息数,表示请求已经接收完成,且正处于处理请求或发送响应的过程中的连接数

Waiting

开启keep-alive的情况下,这个值等于active - (reading + writing),意思就是Nginx已处理完正在等候下一次请求指令的驻留连接

配置脚本
#创建存放脚本目录
[root@nginx ~]# mkdir /scripts
[root@nginx ~]# cd /scripts
#监控Reading值脚本
[root@nginx scripts]# vim check_nginx_Reading.sh 
[root@nginx scripts]# cat check_nginx_Reading.sh
#!/bin/bash
curl -s http://192.168.47.115/status|awk 'NR==4 {print $2}'

#监控Writing值脚本
[root@nginx scripts]# vim check_nginx_Writing.sh 
[root@nginx scripts]# cat check_nginx_Writing.sh 
#!/bin/bash
curl -s http://192.168.47.115/status|awk 'NR==4 {print $4}'

#监控Waiting值脚本
[root@nginx scripts]# vim check_nginx_Waiting.sh 
[root@nginx scripts]# cat check_nginx_Waiting.sh 
#!/bin/bash
curl -s http://192.168.47.115/status|awk 'NR==4 {print $6}'

#给权限,修改属主
[root@nginx scripts]# chmod +x check_nginx_Reading.sh check_nginx_Waiting.sh check_nginx_Writing.sh 
[root@nginx scripts]# chown zabbix.zabbix check_nginx_Reading.sh check_nginx_Waiting.sh check_nginx_Writing.sh
[root@nginx scripts]# ll
总用量 12
-rwxr-xr-x. 1 zabbix zabbix 72 10月 29 03:10 check_nginx_Reading.sh
-rwxr-xr-x. 1 zabbix zabbix 72 10月 29 03:08 check_nginx_Waiting.sh
-rwxr-xr-x. 1 zabbix zabbix 72 10月 29 03:11 check_nginx_Writing.sh

#测试
[root@nginx scripts]# ./check_nginx_Reading.sh 
0
[root@nginx scripts]# ./check_nginx_Waiting.sh 
0
[root@nginx scripts]# ./check_nginx_Writing.sh 
1


#取消这322一行的注释并把0修改为1表示启用
[root@nginx ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1 	
#在zabbix配置文件的最后面添加
[root@nginx ~]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_nginx_Reading[*],/scripts/check_nginx_Reading.sh $1
UserParameter=check_nginx_Waiting[*],/scripts/check_nginx_Waiting.sh $1
UserParameter=check_nginx_Writing[*],/scripts/check_nginx_Writing.sh $1

#重启
[root@nginx ~]# pkill zabbix
[root@nginx ~]# zabbix_agentd

六、zabbix_server配置

测试脚本是否可以访问
[root@zabbix_server ~]# zabbix_get -s 192.168.47.115 -k check_nginx_Reading
0
[root@zabbix_server ~]# zabbix_get -s 192.168.47.115 -k check_nginx_Writing
1
[root@zabbix_server ~]# zabbix_get -s 192.168.47.115 -k check_nginx_Waiting
0
添加监控项

zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标_05


zabbix nginx监控指标 zabbix监控nginx模板_zabbix_06


zabbix nginx监控指标 zabbix监控nginx模板_nginx_07


zabbix nginx监控指标 zabbix监控nginx模板_zabbix_08


其余两个值的监控项添加如下

zabbix nginx监控指标 zabbix监控nginx模板_zabbix_09


zabbix nginx监控指标 zabbix监控nginx模板_vim_10


zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标_11


zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标_12


例如

zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标_13

添加触发器

zabbix nginx监控指标 zabbix监控nginx模板_zabbix_14


zabbix nginx监控指标 zabbix监控nginx模板_运维_15


zabbix nginx监控指标 zabbix监控nginx模板_运维_16

zabbix nginx监控指标 zabbix监控nginx模板_nginx_17


zabbix nginx监控指标 zabbix监控nginx模板_vim_18


zabbix nginx监控指标 zabbix监控nginx模板_运维_19


zabbix nginx监控指标 zabbix监控nginx模板_zabbix nginx监控指标_20

Reading数值大的原因:请求较多,处理不过来
Writing数值大的原因:对端处理能力低、网络慢
Waiting数值大的原因:说明他没干事
Waiting数值小的原因:说明他处于饱和状态