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;

相关推荐
Zzqqads10 分钟前
vnc连接问题:Timed out waiting for a response from the computer
服务器
玖疯子17 分钟前
JavaScript性能优化实战的技术文章大纲
服务器
小鹏linux1 小时前
【linux】进程与服务管理命令 - at
linux·运维·服务器
wniuniu_1 小时前
blob是啥
java·服务器·网络
FIT2CLOUD飞致云2 小时前
操作教程丨通过1Panel轻松安装和管理MySQL开源数据库
linux·运维·服务器·mysql·开源·1panel
222you2 小时前
前后端分离项目在云服务器上的部署(Spring Boot + Vue)
运维·服务器·spring boot
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之lsattr命令(实操篇)
linux·运维·服务器·笔记·elasticsearch
tzhou644522 小时前
Docker 部署 Nginx HTTPS 服务(CentOS 7)
nginx·docker·https
郝学胜-神的一滴2 小时前
Linux线程错误调试指南:从原理到实践
linux·服务器·开发语言·c++·程序人生
QT 小鲜肉3 小时前
【Linux命令大全】001.文件管理之mdir命令(实操篇)
linux·运维·服务器·chrome·笔记