Nginx流量监控:nginx-module-vts访问状态模块
·
文章目录
前言
本文带你深入了解如何安装更强大的nginx-module-vts模块,以此来监控Nginx的运行状态和流量情况并且保证服务稳定性。
一、nginx-module-vts模块简介
nginx-module-vts(全称 Virtual Host Traffic Status Module)是一个开源的第三方 Nginx 模块,旨在为 Nginx 提供类似商业版 Nginx Plus 的实时监控能力。它通过嵌入 Nginx 内核,采集虚拟主机、上游服务器及缓存等维度的运行状态数据。
二、安装nginx-module-vts
2.1 下载模块
#从 GitHub 上以“压缩包”的形式下载 nginx-module-vts 项目的全部源代码。
wget https://github.com/vozlt/nginx-module-vts/archive/refs/heads/master.zip -O nginx-module-vts-master.zip
#解压
unzip nginx-module-vts-master.zip
mv nginx-module-vts-master /usr/local/

2.2 编译Nginx并添加模块
# 安装依赖环境
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
# 配置编译参数,添加vts模块
cd /opt/nginx-1.20.2 # 你的nginx解压的目录(不是安装目录)
./configure --add-module=/usr/local/nginx-module-vts-master/ # 在原参数基础上添加
# 编译
make
# 关闭服务
systemctl stop nginx
# 备份旧版本
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.backup
# 替换为新编译的二进制文件,因为添加了模块
cp /opt/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/nginx
# 重启服务
systemctl start nginx #重启服务

2.3 配置Nginx.conf
vim /usr/local/nginx/conf/nginx.conf
http {
# 添加共享内存区域配置
vhost_traffic_status_zone;
# 启用按主机名统计(当有多个server_name时很重要)
vhost_traffic_status_filter_by_host on;
server {
listen 80;
server_name localhost;
# 状态监控端点
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
}
}


2.4 重启nginx服务并访问页面
# 重启服务
systemctl restart nginx
# 访问页面
http://10.8.0.10/status

三、nginx-module-vts 的作用
nginx-module-vts 的主要作用是为 Nginx 提供全方位的实时监控能力,可以清晰掌握服务器的运行状态。
具体来说,它可以:
实时采集数据:监控每个网站域名、上游服务器及缓存区域的连接数、请求量、流量和响应状态码等关键指标。
可视化展示:通过内置的简洁状态页面,直观地查看各项数据。
简单来说,它就像是Nginx的“体检仪表盘”,可以及时发现性能瓶颈和定位问题。
总结
nginx-module-vts功能比stub_status模块更强大,Nginx监控方案的选择应根据实际需求和环境复杂程度来决定。
- 如果只需要基本的状态监控,并且不想重新编译Nginx,那么stub_status模块足以满足需求。
- 如果需要详细的监控数据,那么nginx-module-vts模块是更好的选择,虽然它需要重新编译Nginx。
更多推荐

所有评论(0)