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来查看
完成