1.编译安装NGINX
加入编译安装nginx-module-vts模块,目的是为了获取更多的监控数据(虚拟主机,upstream等)
nginx下载
http://nginx.org/download/nginx-1.20.2.tar.gz
nginx-module-vts下载
https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.1.tar.gz
解压缩,并将v0.2.1.tar.gz解压后的文件夹nginx-module-vts-0.2.1拷入nginx的源码包,和configure同一层级,编译的时候会用到(--add-module=nginx-module-vts-0.2.1 )
tar -zxvf nginx-1.20.2.tar.gz && tar -zxvf v0.2.1.tar.gz
编译+安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --add-module=nginx-module-vts-0.2.1
编译过程可能报错,需要安装一些包:yum -y install openssl openssl-devel
make
make install
配置nginx.conf,并启动nginx
2.安装nginx-vts-exporter服务
使用nginx-vts-exporter
监控nginx
状态,prometheus由此服务获得监控数据
下载链接:
https://github.com/sysulq/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
可直接启动,也可以做成服务,直接启动的命令:
./nginx-vts-exporter -nginx.scrape_uri=http://127.0.0.1/status/format/json --telemetry.address=:9915
3.配置prometheus和grafana显示监控数据
修改prometheus服务器的配置文件prometheus.yml,增加一段配置,指向nginx-vts-exporter服务
- job_name: 'nginx'scrape_interval: 30sstatic_configs:- targets: ['192.168.252.100:9915']labels:instance: '监控(192.168.252.100:9915)'
配置grafana数据源和Dashboards
下载并导入Dashboards
Nginx VTS Stats | Grafana LabsShow stats from the hnlq715/nginx-vts-exporter.https://grafana.com/grafana/dashboards/2949-nginx-vts-stats/展示效果如图: