最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 安装时如何配置支持集群状态监控与指标收集
时间:2026-08-30 11:18:49 编辑:袖梨 来源:一聚教程网
关键是在编译阶段集成--with-http_stub_status_module和nginx-module-vts模块,配置/metrics等安全限流接口,确保Nginx输出结构化、多维、可被Prometheus稳定采集的监控数据。
安装 Nginx 时要为后续集群状态监控与指标收集打好基础,关键不是“装完再补”,而是在编译或初始化阶段就集成可采集的状态能力。核心是让每台 Nginx 实例能输出结构化、带维度的运行数据,并确保这些数据安全、稳定、可被自动化工具抓取。
编译安装:启用状态模块并推荐 vts
若采用源码编译(推荐用于生产集群),必须显式启用监控所需模块:
-
必选:添加
--with-http_stub_status_module,提供基础连接与请求计数(active connections,accepts/handled/requests) -
强烈推荐:同时集成 nginx-module-vts,它支持 JSON 接口、按
server_name/upstream/location多维分组,含响应时间分布、缓存命中率、各状态码明细等——这是 Prometheus 或 Telegraf 能做精准下钻的前提 - 编译示例命令:
./configure --with-http_stub_status_module --add-module=/path/to/nginx-module-vts --prefix=/usr/local/nginx随后执行
make && make install
包管理安装:确认模块可用性并补全 vts
若用 apt 或 yum 安装(如 Ubuntu 的 nginx-full、CentOS 的 nginx-mod-http-stub-status):
- 先验证 stub_status 是否内置:
nginx -V 2>&1 | grep -o with-http_stub_status_module;若无,需切换为编译安装或启用第三方仓库(如 nginx.org 最新 repo) - vts 模块不包含在标准发行版中,必须单独编译加载:下载对应 Nginx 版本的 vts 源码,通过
--add-dynamic-module编译为.so动态模块,再在nginx.conf中用load_module加载 - 动态模块优势:无需重编译主程序,升级 Nginx 时可保留监控能力
配置状态接口:安全、轻量、可标识
无论用 stub_status 还是 vts,配置 location 是落地关键:
- 禁用日志:
access_log off;避免监控请求污染访问日志 - 严格限流限源:
allow 10.10.0.0/16;+deny all;,仅放行监控采集器所在网段(如 Prometheus Server 或 Telegraf 节点 IP) - 统一路径规范:例如全部使用
location /metrics(vts 的 JSON 接口)或location /nginx_status(stub_status),便于采集器批量发现 - 为节点打标:在 Nginx 配置中通过
env或注释注明角色(role=lb-edge)、机房(zone=shanghai),后续采集时可通过 relabel 注入 Prometheus 标签
验证与连通性检查
安装配置完成后,立即验证是否满足监控链路起点要求:
- 本地测试:
curl -s http://localhost/metrics | head -20(vts)或curl -s http://localhost/nginx_status(stub_status) - 从监控服务器测试:
curl -I http://nginx-node-01.example.com/metrics,确认返回200 OK且无认证/网络拦截 - 检查响应头是否含
Content-Type: application/json(vts)或纯文本(stub_status),这对 exporter 解析至关重要
相关文章
- css设置滚动条样式如何写?兼容写法与示例 08-30
- css链接样式如何设置 08-30
- 高冷昵称2个字女生如何选?2个简洁推荐 08-30
- csspositiontable是什么意思?position定位与table布局关系说明 08-30
- css半透明样式设计怎么实现?3种常用做法 08-30
- TPLink TLWR742N 无线路由器设为无线交换机方法 08-30