nginx-监控-prometheus:nginx-module-vts ,nginx-vts-exporter ,grafana -04
一 、nginx-module-vts 监控
nginx-module-vts(Nginx Virtual Host Traffic Status Module)是一个第三方 Nginx 模块,用于实时监控 Nginx 的流量和状态信息。它可以统计虚拟主机(server)、上游(upstream)、缓存、TCP/UDP 等各类流量数据,并以多种格式(HTML/JSON/Prometheus)输出监控结果。
典型应用场景
-
实时监控:查看各服务的请求量、错误率
-
性能分析:定位高延迟的接口或上游
-
告警系统:对接 Prometheus + Grafana
-
流量调度:基于统计动态调整负载均衡
安装操作步骤:
前提:已成功安装nginx
1、 下载安装包
2、上传安装包到路径下:/root/tools
[root@demo tools]# ls
jdk-8u211-linux-x64.tar.gz nginx-module-vts redis-5.0.4.tar.gz
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz redis-5.0.4
[root@demo tools]# pwd
/root/tools
[root@demo tools]#
3、添加模块配置,进入到nginx路径
[root@demo nginx-1.16.1]#
[root@demo nginx-1.16.1]# pwd
/usr/local/nginx-1.16.1
4、配置模块
[root@demo nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --user=nginx --add-module=/root/tools/nginx-module-vts
checking for OS
+ Linux 4.19.12-1.el7.elrepo.x86_64 x86_64
checking for C compiler ... found
.....
creating objs/Makefile
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
You have new mail in /var/spool/mail/root
5、 编译
[root@demo nginx-1.16.1]# make
make -f objs/Makefile
make[1]: Entering directory `/usr/local/nginx-1.16.1'
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
....
6、停止nginx服务
[root@demo objs]# systemctl stop nginx
7、先配置文件,
[root@demo objs]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
8、复制文件
[root@demo objs]# cp /usr/local/nginx-1.16.1/objs/nginx /usr/local/nginx/sbin/
9、查看参数
[root@demo objs]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx --user=nginx --add-module=/root/tools/nginx-module-vts
9、修改nginx.conf 配置,
[root@demo objs]# cd /usr/local/nginx/conf/
You have new mail in /var/spool/mail/root
[root@demo conf]# vim nginx.conf
添加如下信息:
vhost_traffic_status_zone;
location /status {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}

10、验证nginx
[root@demo conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
11、 启动nginx
[root@demo conf]# nginx
12、查看进程
[root@demo conf]# netstat -lntp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15114/nginx: master
tcp6 0 0 :::8080 :::* LISTEN 2613/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2613/java
tcp6 0 0 :::8009 :::* LISTEN 2613/java
13、 浏览器访问查看 http://ip/status

二、nginx-vts-exporter
1、下载 nginx-vts-exporter
2、上传到该目录下
[root@demo local]# pwd
/usr/local
[root@demo local]#
3、解压
[root@demo local]# tar -zxvf nginx-vts-exporter-0.9.1.linux-amd64.tar.gz
4、进入目录,
[root@demo local]# cd nginx-vts-exporter-0.9.1.linux-amd64
[root@demo nginx-vts-exporter-0.9.1.linux-amd64]# ll
total 9756
-rw-rw-r-- 1 2000 2000 1063 Feb 27 2018 LICENSE
-rwxr-xr-x 1 2000 2000 9982855 Feb 27 2018 nginx-vts-exporter
[root@demo nginx-vts-exporter-0.9.1.linux-amd64]# pwd
/usr/local/nginx-vts-exporter-0.9.1.linux-amd64
启动程序
[root@demo nginx-vts-exporter-0.9.1.linux-amd64]# ./nginx-vts-exporter -nginx.scrape_uri http://ip/status/format/json
2025/06/07 18:44:21 Starting nginx_vts_exporter (version=0.9.1, branch=HEAD, revision=06ade92fb9e98ddd9544d1118983459e489b180c)
2025/06/07 18:44:21 Build context (go=go1.10, user=root@66925540c2cc, date=20180227-13:06:29)
2025/06/07 18:44:21 Starting Server at : :9913
2025/06/07 18:44:21 Metrics endpoint: /metrics
2025/06/07 18:44:21 Metrics namespace: nginx
2025/06/07 18:44:21 Scraping information from : http://ip/status/format/json
5、浏览器访问http://ip:9913/

三、与prometheus 相结合配置
服务器 prometheus 已安装
prometheus 的安装步骤参考: 待补充
1、进入到安装prometheus 的机器,进入该目录
[root@demo prometheus-2.19.1.linux-amd64]# pwd
/usr/local/prometheus-2.19.1.linux-amd64
2、修改配置,增加 配置信息 nginx-vts-exporter 所在的服务器ip 和端口
- job_name: 'nginx-1'
static_configs:
- targets: ['192.168.117.188:9913']
[root@demo prometheus-2.19.1.linux-amd64]# vim prometheus.yml

3、启动prometheus
[root@demo prometheus-2.19.1.linux-amd64]# nohup ./prometheus --config.file=prometheus.yml &
4、可以浏览器访问 http://ip:9090/graph


注意点,如何要查看信息,要保证nginx-vts-exporter 所在的服务器 是启动状态
[root@demo nginx-vts-exporter-0.9.1.linux-amd64]# pwd
/usr/local/nginx-vts-exporter-0.9.1.linux-amd64
[root@demo nginx-vts-exporter-0.9.1.linux-amd64]# ./nginx-vts-exporter -nginx.scrape_uri http://192.168.117.100/status/format/json
2025/06/07 23:55:30 Starting nginx_vts_exporter (version=0.9.1, branch=HEAD, revision=06ade92fb9e98ddd9544d1118983459e489b180c)
2025/06/07 23:55:30 Build context (go=go1.10, user=root@66925540c2cc, date=20180227-13:06:29)
2025/06/07 23:55:30 Starting Server at : :9913
2025/06/07 23:55:30 Metrics endpoint: /metrics
2025/06/07 23:55:30 Metrics namespace: nginx
2025/06/07 23:55:30 Scraping information from : http://192.168.117.100/status/format/json
点击 执行,才会有如下信息

三、与grafana相结合配置
服务器已安装grafana
grafana 安装步骤参考:待补充
1、进入grafana 所在服务器
2、查看是否正常启动
[root@demo prometheus-2.19.1.linux-amd64]# netstat -lnpt |grep 3000
tcp6 0 0 :::3000 :::* LISTEN 1021/grafana-server
You have new mail in /var/spool/mail/root
3、正常启动后,浏览器访问 http://192.168.147.132:3000/login
登录账户密码






浙公网安备 33010602011771号