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;

相关推荐
Boop_wu4 小时前
[Java EE] 计算机基础
java·服务器·前端
m0_495562784 小时前
Swift的逃逸闭包
服务器·php·swift
wanhengidc5 小时前
全面了解云手机的安全性
运维·服务器·游戏·智能手机·云计算
顾安r5 小时前
11.8 脚本网页 打砖块max
服务器·前端·html·css3
00后程序员张5 小时前
HTTP抓包工具推荐,Fiddler配置方法、代理设置与使用教程详解(开发者必学网络调试技巧)
网络·http·ios·小程序·fiddler·uni-app·webview
menge23335 小时前
Linux DNS域名解析服务器练习
linux·运维·服务器
JZZC25 小时前
29. HTTP
计算机网络·http·ensp
m0_495562785 小时前
Swift-static和class
java·服务器·swift
Chief_fly5 小时前
RestTemplate 和 Apache HttpClient 实现 HTTP 请求
网络协议·http·apache
qq_316837756 小时前
初步压测的 nginx反向代理 到 Spring Cloud网关 到 Spring Cloud微服务的网络参考配置
nginx·spring cloud·微服务