Nginx使用module_vts模块来做监控
最近我们想要用 Prometheus 来监控 Nginx 的状态,所以看了一下有个 module 可以支持。项目地址在:https://github.com/vozlt/nginx-module-vts.git
重新编译 Nginx
首先执行 nginx -V 查看编译参数,记录一下, 比如
1 | --prefix=/usr/local/nginx --user=www --group=www --with-stream --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.1k --with-pcre=../pcre-8.45 --with-pcre-jit --with-ld-opt=-ljemalloc |
然后需要 Nginx 源码包和当前安装的 Nginx 版本相同
下载 nginx_module_vts
1 | git clone git://github.com/vozlt/nginx-module-vts.git |
进入 nginx 源码目录
1 | cd nginx-1.20.2 |
开始编译,编译时增加一条参数
1 | --add-module=../nginx-module-vts |
结合上面记录的编译参数,完整的编译参数是:
1 | ./configure --prefix=/usr/local/nginx --user=www --group=www --with-stream --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.1k --with-pcre=../pcre-8.45 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../nginx-module-vts |
开始编译
1 | make |
然后将编译好的二进制文件替换现有的 nginx
1 | cp /data/server/nginx-1.20.2/objs/nginx /usr/local/nginx/sbin/nginx |
注:nginx-module-vts 模块从 0.1.17+ 版本之后原生支持 prometheus 数据格式,可跳过 nginx-vts-exporter 的安装。
之前没安装过 nginx 的可以直接
make && make install
开启监控
1 | # 在 http 和 server 块中加入如下信息 |
监控接口为:
1 | 支持的输出格式有json html和 Prometheus |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论