• Tengine 添加第三方监控模块nginx-module-vts


    一、概述

      除nginx官网源码提供的各种模板,nginx还有第三方模块。官方文档中也列出了nginx的很多第三方模块,除官网之外,还有很多的有用的模块也能在Github上找到。

    官网第三方模块地址:https://www.nginx.com/resources/wiki/modules/

    公司前端使用的是nginx代理,反向代理了很多域名,流量无法进行区分,nginx本身不支持按域名统计,需要安装第三方模块nginx-module-vts

    二、配置安装

    2.1 因上线的业务正在运行着nginx程序,需要先查看当前nginx编译参数。

    # nginx -V
    Tengine version: Tengine/2.2.0 (nginx/1.8.1)
    built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 
    TLS SNI support enabled
    configure arguments: --prefix=/etc/nginx --with-pcre=../pcre-8.36 --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf ……

    2.2 下载nginx-module-vts插件

    # cd /usr/local/src/
    # git clone git://github.com/vozlt/nginx-module-vts.git

    2.3 重新编译nginx,可运行make,不要make install

    # cd /usr/local/src/tengine-2.2.0
    # ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf  ...  --add-module=/usr/local/src/nginx-module-vts
    # make

    2.4 替换原nginx命令,替换完成之后一定要重启nginx否则不会生效。

    # mv /usr/sbin/nginx /usr/sbin/nginx.bak        # 备份原来的nginx命令
    # cp objs/nginx /usr/sbin/nginx                 # 把tengine/objs目录中的nginx复制到/usr/sbin/目录中
    # nginx -V                                      # 查看是否是新编译的nginx命令,需带--add-module=/usr/local/src/nginx-module-vts此参数
    # nginx -s stop                                 # 需要重启nginx,否则不生效,使用kill -USR2 `cat /var/run/nginx.pid`未生效,就被它折腾了一天,
    # nginx

    2.5 配置ngin,使其生效

    http {
        vhost_traffic_status_zone;
    
        ...
    
    

    server {
        listen 1080;
        server_name _;   # 内网可以通过http://IP:1080/status 进行访问,1080端口仅对内网开放

    
    

        location /status {
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
        location / {
            return 403;
    }
    }

    
    }

    三、界面展示

    更多用法参数https://github.com/vozlt/nginx-module-vts说明

    整体界面概览:

    备注:定时清空所有数据,重新统计

    http:
    //xxx.xxx.xxx.xxx/status/control?cmd=reset&group=* {"processingReturn":true,"processingCommandString":"reset","processingGroupString":"*","processingZoneString":"","processingCounts":71}
  • 相关阅读:
    计划任务
    swap
    fdisk
    raid 搭建
    Http协议中Cookie详细介绍
    linux系统日志以及分析
    搞清楚php-FPM到底是什么?
    Amoeba+Mysql实现数据库读写分离
    Last_SQL_Error: Error 'Can't drop database 'ABC'; database doesn't exist' on query. Default database: 'ABC'. Query: 'drop database ABC'
    MySQL主从失败, 错误Got fatal error 1236解决方法
  • 原文地址:https://www.cnblogs.com/cyleon/p/10522872.html
Copyright © 2020-2023  润新知