zabbix监控nginx状态

本文介绍了如何在Linux环境下利用zabbix监控nginx的状态。首先,在客户端部署zabbix agent并安装依赖,然后编译安装nginx,修改配置文件并设置开机自启。接着,开启nginx的状态界面,并通过特定方式访问状态页面。最后,编写脚本并在zabbix_server服务端进行测试,确保监控正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zabbix监控nginx

环境说明:

环境IP地址安装的服务
服务器:server1192.168.244.144lamp架构
zabbix server
zabbix agent
客户端:test192.168.244.133zabbix agent
nginx

在客户端部署zabbix agent

[root@node1 bag]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.4/zabbix-5.4.4.tar.gz

[root@node1 bag]# ls
zabbix-5.4.4.tar.gz


#解压
[root@node1 bag]# tar xf zabbix-5.4.4.tar.gz -C  /usr/local/

安装依赖包和编译器

[root@node1 ~]#  yum -y install vim  wget gcc gcc-c++ make pcre-devel

创建用户

[root@node1 ~]#  useradd -r -M -s /sbin/nologin zabbix
[root@node1 ~]# id zabbix
uid=989(zabbix) gid=986(zabbix) groups=986(zabbix)

进入包编译安装

[root@node1 zabbix-5.4.4]# cd  /usr/local/zabbix-5.4.4/
[root@node1 zabbix-5.4.4]#  ./configure --enable-agent
......
......
  LDAP support:          no
  IPv6 support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************
[root@node1 zabbix-5.4.4]# make install
......
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/usr/local/zabbix-5.4.4'
make[1]: Leaving directory '/usr/local/zabbix-5.4.4'

修改配置文件

[root@node1 zabbix-5.4.4]# cd /usr/local/etc/
[root@node1 etc]# vim  zabbix_agentd.conf


Server=192.168.244.144  #server1 IP

......
ServerActive=192.168.244.144

.....
Hostname=tom   #名字随便改

配置service文件可开机自启

[root@node1 etc]# vim  zabbix_agentd.conf
[root@node1 etc]# cd  /usr/lib/systemd/system/
[root@node1 system]#  vim  zabbix_agentd.service
[root@node1 system]# cat zabbix_agentd.service
[Unit]
Description=zabbix agent daemon
After=network.target 

[Service]
Type=forking

ExecStart=/usr/local/sbin/zabbix_agentd 
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@node1 system]# systemctl  daemon-reload
[root@node1 system]# systemctl enable --now zabbix_agentd
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix_agentd.service → /usr/lib/systemd/system/zabbix_agentd.service.
[root@node1 system]# zabbix_agentd 
[root@node1 system]# 
[root@node1 system]# ss -antl
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:443                            0.0.0.0:*                    
LISTEN   0        128               0.0.0.0:10050                          0.0.0.0:*                    
LISTEN   0        128                  [::]:22                                [::]:*                    
LISTEN   0        80                      *:3306                                 *:*   

开启状态界面

开启status:

location /status {
  stub_status {on | off};
  allow 172.16.0.0/16;
  deny all;
}

访问状态页面的方式:http://server_ip/status

状态页面信息详解:

状态码表示的意义
Active connections 2当前所有处于打开状态的连接数
accepts总共处理了多少个连接
handled成功创建多少握手
requests总共处理了多少个请求
Readingnginx读取到客户端的Header信息数,表示正处于接收请求状态的连接数
Writingnginx返回给客户端的Header信息数,表示请求已经接收完成, 且正处于处理请求或发送响应的过程中的连接数
Waiting开启keep-alive的情况下,这个值等于active - (reading + writing), 意思就是Nginx已处理完正在等候下一次请求指令的驻留连接

在nginx.conf

        location /status {
            stub_status off;
            allow 192.168.244.144;
            allow 192.168.244.0/24;
            deny all;
        }

[root@node1 ~]# nginx -s reload

访问

[root@node1 ~]# curl 192.168.244.133/status
Active connections: 3 
server accepts handled requests
 31 31 23 
Reading: 0 Writing: 1 Waiting: 2 

编写脚本

[root@node1 scripts]# pwd
/scripts

[root@node1 scripts]# cat check_Reading.sh 
#!/bin/bash
Reading=$( curl -s 192.168.244.133/status |awk 'NR==4 {print$2}' )

if [ $Reading -gt 3 ];then
            echo '1'
    else
            echo '0'
fi

[root@node1 scripts]# cat check_Writing.sh 
#! /bin/bash

Writing=$( curl -s 192.168.244.133/status |awk 'NR==4 {print$4}' )

if [ $Writing -gt 0 ];then
            echo '1'
    else
            echo '0'
fi
[root@node1 scripts]# ./check_Reading.sh 
0
[root@node1 scripts]# ./check_Writing.sh 
1
      
[root@node1 ~]# vim /usr/local/etc/zabbix_agentd.conf

........
UnsafeUserParameters=1
UserParameter=check_Reading,/scripts/check_Reading.sh
UserParameter=check_Writing,/scripts/check_Writing.sh
UserParameter=check_Waiting,/scripts/check_Waiting.sh



[root@node1 ~]# zabbix_agentd 

zabbix_server服务端测试

[root@localhost ~]# zabbix_get -s 192.168.244.133 -k check_Reading
0


[root@localhost ~]# zabbix_get -s 192.168.244.133 -k check_Writing
1

访问zabbix_server服务端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试

[root@localhost ~]# yum -y install httpd-tools

[root@localhost ~]#  ab -n 15000 http://192.168.244.133/status
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.244.133 (be patient)
Completed 1500 requests
Completed 3000 requests
Completed 4500 requests
Completed 6000 requests
Completed 7500 requests
Completed 9000 requests
Completed 10500 requests
Completed 12000 requests
Completed 13500 requests
Completed 15000 requests
Finished 15000 requests


Server Software:        nginx/1.20.1
Server Hostname:        192.168.244.133
Server Port:            80

Document Path:          /status
Document Length:        115 bytes

Concurrency Level:      1
Time taken for tests:   3.887 seconds
Complete requests:      15000
Failed requests:        0
Total transferred:      3885000 bytes
HTML transferred:       1725000 bytes
Requests per second:    3858.65 [#/sec] (mean)
Time per request:       0.259 [ms] (mean)
Time per request:       0.259 [ms] (mean, across all concurrent requests)
Transfer rate:          975.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       4
Processing:     0    0   0.0      0       1
Waiting:        0    0   0.0      0       1
Total:          0    0   0.1      0       4

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      0
  95%      0
  98%      0
  99%      0
 100%      4 (longest request)
[root@localhost ~]# 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值