微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx-module-vts监控nginx流量


引言:

使用Nginx-module-vts监控Nginx的请求以便进行分析,监控请求主要是在应用层面,除了请求之外我们一般还需要监控经过Nginx的流量、连接数等偏底层的数据,这些数据对分析Nginx性能比较重要下面我们看下如何对Nginx流量进行监控

一、Nginx监控模块简介

监控Nginx主要用到以下三个模块:
1、Nginx-module-vts:Nginx virtual host traffic status module,Nginx的监控模块,能够提供JSON格式的数据产出。
2、Nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,认端口号9913。
3、Prometheus:监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。

二、配置Nginx-module-vst-master

2.1 上传Nginx-module-vst-master软件包

[root@oracle opt]# rz -E
rz waiting to receive.
[root@oracle opt]# ls
 apache-maven-3.8.5-bin.tar.gz  jdk-8u201-linux-x64.rpm  Nginx-1.20.2  Nginx-1.20.2.tar.gz  Nginx-module-vts-master.zip  rh
[root@oracle opt]# unzip Nginx-module-vts-master.zip 
[root@oracle opt]# mv Nginx-module-vts-master /usr/local/

2.2 安装Nginx依赖环境

[root@oracle opt]# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.3 编译安装Nginx

[root@oracle opt]# tar zxvf Nginx-1.20.2.tar.gz 
[root@oracle opt]# cd Nginx-1.20.2/
[root@oracle Nginx-1.20.2]# ./configure --prefix=/usr/local/Nginx --add-module=/usr/local/Nginx-module-vts-master/
checking for OS
[root@oracle Nginx-1.20.2]# make && make install

2.4 优化管理

[root@oracle Nginx-1.20.2]# ln -s /usr/local/Nginx/sbin/Nginx /usr/local/sbin

2.5 检查开启的模块

[root@oracle Nginx-1.20.2]# Nginx -v
Nginx version: Nginx/1.20.2

2.6 修改配置文件

PS:主要是修改认日志文件格式,添加压缩配置,添加监控配置,具体可根据自己的需求修改
http {
    include       mime.types;
    default_type  application/octet-stream;
    vhost_traffic_status_zone;			#流量状态监控
	#vhost_traffic_status_filter_by_host on;  
PS:开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则认会把流量全部计算到第一个server_name上。	
假如Nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息
user  nobody;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    vhost_traffic_status_zone;

    log_format main '{ "@timestamp": "$time_local", '
                         '"@fields": { '
                         '"uri":"$request_uri",'
                         '"url":"$uri",'
                         '"upstream_addr":"$upstream_addr",'
                         '"remote_addr": "$remote_addr", '
                         '"remote_user": "$remote_user", '
                         '"body_bytes_sent": "$body_bytes_sent", '
                         '"host":"$host",'
                         '"server_addr":"$server_addr",'
                         '"request_time": "$request_time", '
                         '"request_time":"$request_time",'
                         '"status":"$status",'
                         '"request": "$request", '
                         '"request_method": "$request_method", '
                         '"size":$body_bytes_sent,'
                         '"upstream_time":"$upstream_response_time"'
                         '"http_referrer": "$http_referer", '
                         '"body_bytes_sent":"$body_bytes_sent", '
                         '"http_x_forwarded_for": "$http_x_forwarded_for", '
                         '"http_user_agent": "$http_user_agent" } }';

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;
    gzip_min_length   1k;
    gzip_buffers      4 16k;
    gzip_http_version 1.0;
    gzip_comp_level   3;
    gzip_types        text/plain text/css application/x-javascript text/xml application/xml application/xml+RSS text/javascript application/json application/javascript;
    gzip_vary         on;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
	location /status {
		vhost_traffic_status_display;
		vhost_traffic_status_display_format html;
        }
    }
}

2.7 启动测试

Nginx安装目录为/usr/local/Nginx/,相关目录都在这个目录下

        启动Nginx

[root@oracle conf]# /usr/local/Nginx/sbin/Nginx 

        测试
浏览器输入IP+80端口,可打开Nginx页面

 

 浏览器输入“IP:80/status”可打开监控页面

 

2.8 开机自启

 将“/usr/local/Nginx/sbin/Nginx”命令加入“/etc/rc.d/rc.local”文件添加权限即可

chmod +x /etc/rc.d/rc.local

原文地址:https://www.jb51.cc/wenti/3279821.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐