前言

本文带你深入了解如何安装更强大的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。

更多推荐