• Nginx:vts模块(监控)


    目录

    监控nginx主要用到以下三个模块

    安装依赖环境

    解压缩文件包

    创建运行用户

    检查配置文件是否配置正确

    使用systemctl 管理

    修改配置文件

    ​编辑测试是否加载完成​编辑


    监控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 Prome theus consumption. 主要用于收集nginx的监控数据,并给prometheus提供监控接口,默认端口号为9913

    3、prometheus:监控nginx-vts-exporter提供的nginx数据,并且存储在时序数据库中,可以使用rromQL对时序数据进行查询和聚合。

    安装依赖环境

    1. systemctl stop firewalld
    2. systemctl disable firewalld
    3. setenforce 0
    4. yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel make

    解压缩文件包

    1. cd /opt
    2. tar -xvf nginx-1.15.9.tar.gz
    3. cd nginx-1.15.9
    4. ./configure \
    5. --prefix=/usr/local/nginx \ 指定路径
    6. --user=nginx \ 指定用户
    7. --group=nginx \ 指定组
    8. --add-module=/usr/local/nginx-module-vts-master/ 代替上一条

    创建运行用户

    useradd -M -s /sbin/nologin nginx

    检查配置文件是否配置正确

    1. nginx -t #检查配置文件是否配置正确
    2. nginx #启动

    使用systemctl 管理

    1. vim /usr/lib/systemd/system/nginx.service
    2. [Unit]
    3. Description=nginx #描述
    4. After=network.target #描述服务类别
    5. [Service]
    6. Type=forking #后台运行类型
    7. PIDFile =/usr/local/nginx/logs/nginx.pid #PID文件位置
    8. ExecStart=/usr/local/nginx/sbin/nginx #启动服务
    9. ExecrReload=/bin/kill -s HUP $MAINPID #根据PID重载配置
    10. ExecrStop=/bin/kill -s QUIT $MAINPID #根据PID终止进程
    11. PrivateTmp=true
    12. [Install]
    13. WantedBy=multi-user.target #启动级别
    14. chmod 754 /lib/systemd/system/nginx.service #设置754权限是一种安全优化
    15. systemctl start nginx.service
    16. systemctl enable nginx.service
    17. PS:
    18. systemctl status 多个服务
    19. watch -n 2 systemctl status

    修改配置文件

    1. vim nginx.conf
    2. http {
    3. include mime.types;
    4. default_type application/octet-stream;
    5. vhost_traffic_status_zone; #流量状态监控
    6. log_format main '{ "@timestamp": "$time_local", '
    7. '"@fields": { '
    8. '"uri":"$request_uri",'
    9. '"url":"$uri",'
    10. '"upstream_addr":"$upstream_addr",'
    11. '"remote_addr": "$remote_addr", '
    12. '"remote_user": "$remote_user", '
    13. '"body_bytes_sent": "$body_bytes_sent", '
    14. '"host":"$host",'
    15. '"server_addr":"$server_addr",'
    16. '"request_time": "$request_time", '
    17. '"request_time":"$request_time",'
    18. '"status":"$status",'
    19. '"request": "$request", '
    20. '"request_method": "$request_method", '
    21. '"size":$body_bytes_sent,'
    22. '"upstream_time":"$upstream_response_time"'
    23. '"http_referrer": "$http_referer", '
    24. '"body_bytes_sent":"$body_bytes_sent", '
    25. '"http_x_forwarded_for": "$http_x_forwarded_for", '
    26. '"http_user_agent": "$http_user_agent" } }';
    27. PS:主要是修改默认日志文件格式,添加压缩配置,添加监控配置,具体可根据自己的需求修改

    1. location / {
    2. root html;
    3. index index.html index.htm;
    4. }
    5. location /status {
    6. vhost_traffic_status_display;
    7. vhost_traffic_status_display_format html;
    8. }

    测试是否加载完成

    监控列表各项信息

    Server main 主服务器

    • Host:主机名
    • Version:版本号
    • Uptime:服务器运行时间
    • Connections active:当前客户端的连接数
      • reading:读取客户端连接的总数
      • writing:写入客户端连接的总数
    • Requsts accepted:接收客户端的连接总数
      • handled:已处理客户端的连接总数
      • Total:请求总数
      • Req/s:每秒请求的数量
    • Shared memory:共享内存
      • name:配置中指定的共享内存名称
      • maxSize:配置中指定的共享内存的最大限制
      • usedSize:共享内存的当前大小
      • usedNode:共享内存中当前使用的节点数

    Server zones 服务器区域

    • zone: 当前区域
    • Requests Total:请求总数
      • Req/s:每秒请求数
      • time:时间
    • Responses:状态码数量 1xx、2xx、3xx、4xx、5xx 表示响应不同状态码数量
      • Total:响应状态码的总数
    • Traffic表示流量
      • Sent:发送的流量
      • Rcvd:接收的流量
      • Sent/s:每秒发送的流量
      • Rcvd/s:每秒接收的流量
    • Cache表示缓存
      • Miss:未命中的缓存数
      • Bypass:避开的缓存数
      • Expirde:过期的缓存数
      • Stale:生效的缓存数
      • Updating:缓存更新的次数
      • Revalidated:重新验证的缓存书
      • Hit:缓存命中数
      • Scarce:未达缓存要求的请求次数
      • Total:总数

  • 相关阅读:
    Python语言学习:Python语言学习之文件读取&写入/操作系统(OS模块详解)的简介、案例应用之详细攻略
    Python绘图系统24:绘图类型和坐标映射的关系
    基于暗原色先验的单幅图像去雾——算法复现
    熬夜也要肝完的阿里内部面试官手册,吃透直接拿下大厂心仪offer
    删除矩阵中0所在行 matlab
    关于:在企业局域网中启用 Delivery Optimization
    基于Springboot宠物医院管理系统
    论文解读(PairNorm)《PairNorm: Tackling Oversmoothing in GNNs》
    单细胞数据分析(一):10X数据生成seurat数据对象
    python-opencv之形态学操作(腐蚀和膨胀)原理详解
  • 原文地址:https://blog.csdn.net/qq_69278945/article/details/126524944