宝塔面板安装的nginx添加nginx-module-vts模块

因为想用prometheus监控nginx,想细节到每个域名的访问,通过一通检索,找到了nginx-module-vts这个好东西,作为nginx的一个模块,可以方便直接的看到当前nginx服务器的每个域名的访问量及耗时等数据,他还可以提供检索和提供json数据,这就方便作为数据源来统计nginx的访问量了。

开始此篇文章前我用的宝塔面板的版本是7.6.0,安装nginx的方式是编译安装,
当然你要编译进去这个nginx-module-vts模块,必须是得编译安装的模式,这样你才能在原来的基础上进行编译安装,下面就真是开始了。

首先下载nginx-module-vts这个模块,可以通过github来下载地址是:https://github.com/vozlt/nginx-module-vts

当然也可以通过git下载,命令如下:
https://github.com/vozlt/nginx-module-vts

假设下载的目录是在tmp ,下载完软件的具体位置就是 /tmp/nginx-module-vts
记住这个地址,当前别的目录也可以,主要是得对应起来,我这以/tmp/nginx-module-vts为例来说明

宝塔面板的默认安装nginx的地址是 /www/server/nginx
nginx的源码位置是在 /www/server/nginx/src

下面查看nginx的编译参数,命令如下:
nginx -V,详情一般如下

在src目录下执行:

./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --with-openssl=/www/server/nginx/src/openssl --with-pcre=pcre-8.43 --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc --with-http_dav_module --add-module=/www/server/nginx/src/nginx-dav-ext-module --add-module=/tmp/nginx-module-vts

make

make 完毕 可以不用执行 make install
把nginx 备份下,然后把 objs 下的 nignx 拷贝到/www/server/nginx/sbin目录下
安装就算完成了。

nginxp配置如下:

http {
    vhost_traffic_status_zone;
    vhost_traffic_status_filter_by_host on;
    server {
    #   vhost_traffic_status off;
        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
    }
}

1.打开vhost过滤:
vhost_traffic_status_filter_by_host on;
开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。
在不想统计流量的server区域禁用vhost_traffic_status

server {
...
vhost_traffic_status off;
...
}

.假如nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息。

nginx-vts-exporter 的安装及配置

下载 wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
解压到 /opt/nginx-vts-exporter下
tar zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz

手动启动测试下
/opt/nginx-vts-exporter/nginx-vts-exporter -nginx.scrape_uri=http://www.test.com/vts_status/format/json
把域名及链接替换成上面自己nginx伤配置的链接
然后访问服务器的9913端口 例如:http://1.1.1.1:9913/metrics 就可以看到采集的数据了

参考链接:https://blog.csdn.net/specter11235/article/details/86755857
https://github.com/knyar/nginx-lua-prometheus
https://github.com/hnlq715/nginx-vts-exporter

You May Also Like