Zabbix7.4.8(二):通过http监控Nginx相关指标

一、概述

使用 Zabbix 监控 Nginx 是确保 Web 服务稳定性的关键。其核心原理是通过 Nginx 的 stub_status 模块获取服务器的实时状态信息,然后由 Zabbix Agent 采集并上报给 Zabbix Server。

Nginx 自带一个名为 ngx_http_stub_status_module 的模块,启用后可通过一个特定 URL(如 /nginx_status)返回简洁的状态数据。

下面直接通过http获取服务器的实时状态信息。

二、操作过程

2.1在 Nginx 服务器上启用 stub_status 模块

1.进入nginx容器:

docker exec -it nginx /bin/bash

2.确认模块已编译:

执行 nginx -V 2>&1 | grep -o with-http_stub_status_module

如果有输出,说明模块已包含。如果没有,需要重新编译 Nginx 并添加 --with-http_stub_status_module 参数。

3.编辑 Nginx 配置文件(通常在 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 目录下)。

在 server 块中添加以下 location 配置:

location /nginx_status {

stub_status on;

access_log off;

allow 192.168.1.0/24;

allow 172.22.0.0/16;

allow 172.17.0.0/16;

deny all;

}

允许192.168.1.0/24、172.22.0.0/16整个子网访问

allow 172.17.0.0/16; # ✅ 允许 Docker 网桥网段

4.重启nginx

#docker restart nginx

5.测试状态页面:

在 Nginx 服务器上执行:

curl http://192.168.1.204:7001/nginx_status

监控指标解释

指标 含义

Active connections 当前活动的 TCP 连接总数

accepts Nginx 接受的连接总数

handled Nginx 处理的连接总数

requests Nginx 处理的请求数总数

Reading Nginx 正在读取客户端请求头的连接数

Writing Nginx 正在向客户端发送响应的连接数

Waiting 空闲的 keep-alive 连接数

​​​​​​​2.2在 Zabbix Web 中 调整参数

1.数据采集------模版

2.监测------主机------创建主机

模版群组:Templates/Applications

主机群组:Applications

2.3监控效果

三、问题

​​​​​​​3.1问题1

执行apk add curl报如下错误:

ERROR: Unable to lock database: Permission denied

ERROR: Failed to open apk database: Permission denied

解决方案:

从宿主机以 root 身份进入容器

docker exec -it --user root zabbix-server-pgsql /bin/sh

apk add curl

​​​​​​​3.2问题2

在另外一台服务器中执行curl http://192.168.1.204:7001/nginx_status,报

curl http://192.168.1.204:7001/nginx_status

<html>

<head><title>403 Forbidden</title></head>

<body>

<center><h1>403 Forbidden</h1></center>

<hr><center>nginx/1.27.5</center>

</body>

</html>

原因:

Docker 容器网络模型导致源 IP 被 NAT。

从这台 172.22.0.6 的机器上执行:

curl http://192.168.1.204:7001/nginx_status

这个请求的路径是:

容器 A: 172.22.0.6

→ 经过 Docker 网络 NAT

→ 到达 Nginx 容器

在 Nginx 容器看来,这个请求的源 IP 并不是 172.22.0.6,而是 Docker 网桥的 IP(如 172.17.0.1 )。

解决方案:

在default.conf增加allow 172.17.0.0/16;

相关推荐
mmmayang20 分钟前
基于 QUIC 的 HTTP_3
网络·网络协议·http
风味蘑菇干1 小时前
WTomcat服务器
java·服务器
ElevenS_it1881 小时前
Nginx日志监控告警实战:access_log解析+5xx突增+慢请求+异常IP自动告警完整方案(Filebeat+Zabbix)
运维·网络·tcp/ip·nginx·zabbix
liulilittle2 小时前
Linux Swap 文件配置与持久化(虚拟内存)
linux·运维·服务器
荒--2 小时前
MSF 使用
linux·运维·服务器
狮子再回头2 小时前
relhat9.1 sshd配置
linux·服务器·网络
不爱编程的小陈3 小时前
深入解析 Go 网络 I/O 的底层引擎:从 epoll 到 netpoll
服务器·网络·golang
烁3473 小时前
liunx命令不完整版
linux·运维·服务器
vsropy3 小时前
cmake版本不对不能直接删/无法source
linux·运维·服务器
火山上的企鹅4 小时前
Codex实战:APP远程升级服务搭建(四)Node 服务端自动识别 APK 信息
android·服务器·git·github·qgc