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

登录账户密码

 

 

 

 

posted @ 2025-06-08 00:09  Shafir莎菲尔  阅读(1143)  评论(0)    收藏  举报