1、我们在使用Prometheus监控添加nginx节点监控的时候,在被监控节点的nginx配置文件中添加下面的模块
server { listen 80; server_name localhost;
location /stub_status { stub_status on; access_log off; allow 0.0.0.0/0; deny all; }
}
然后curl http://本机IP/stub_status
发现出来的并不是我们需要的nginx的服务器统计数据,通常是因为 stub_status 模块没有被正确启用或者是没有安装stub_status模块。
2、查看日志如下图所示
3、我们可以使用nginx -V来查看一下
通过上图我们可以发现,并没有stub_status 模块。
解决办法
#进入到Nginx 的源码目录下
cd /usr/local/nginx-1.24.0/
# 下载新的nginx-module-vts
wget https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.1.tar.gz
# 解压
tar -zxvf v0.2.1.tar.gz
#使用 ./configure 来配置编译 Nginx,包括一些常用的模块和选项
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --add-module=nginx-module-vts-0.2.1 --without-http-cache --with-http_realip_module --with-threads --with-http_secure_link_module --with-http_gzip_static_module --with-stream
# 编译 (这里只make,不要make install,不然会覆盖。如果是新装nginx,可以继续make install)
make
因为我是新装的nginx还没有在使用所以我make install 一下
重启nginx并查看是否添加--add-module=nginx-module-vts-0.2.1
如上图所示我们已经添加了--add-module=nginx-module-vts-0.2.1现在已经支持了stub_status
接下来我们可以在nginx的配置文件中添加stub_status模块来统计nginx的数据。
server { listen 80; server_name localhost;
location /stub_status { stub_status on; access_log off; allow 0.0.0.0/0; deny all; } }
保存退出后重新加载配置文件
nginx -s reload
我们可以访问http://本机IP/stub_status来查看
完成
参考链接
发表评论