• 使用nginx-module-vts监控各虚拟主机的流量


    一、前言

    由于所有业务只有一个公网IP入口,无法统计到每个业务的流量带宽,好在nginx上通过域名进行业务区分,可以借助nginx-module-vts模块来实现需求。
    本文将主要用到以下几个模块和工具:
    nginx-module-vts: Nginx virtual host traffic status module,nginx的监控模块,能够提供json、html、prometheus格式的数据产出。
    nginx-vts-exporter: Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。
    Prometheus: 监控nginx-vts-exporter提供的nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。
    Grafana: 可视化监控数据展示工具

    二、安装nginx-module-vts

    • 下载并编译ngx-module-vts模块
    shell> git clone git://github.com/vozlt/nginx-module-vts.git
    # 编译nginx时添加监控组件nginx-module-vts,其他nginx安装过程的内容详见《源码安装openresty》,这里不在重复说明。
    shell> ./configure --add-module=/usr/local/src/nginx-module-vts
    
    • 编辑nginx.conf配置文件
    # 在 http 和 server 块中加入如下信息
    http {
        vhost_traffic_status_zone;
        ...
        server {
            ...
            location /status {
                vhost_traffic_status_display;
                vhost_traffic_status_display_format html;
            }
        }
    }
    
    • 在浏览器输入 "IP:80/status" 打开监控页面

    三、安装nginx-vts-exporter

    注:nginx-module-vts 模块从0.1.17+版本之后原生支持 prometheus 数据格式,可跳过 nginx-vts-exporter 的安装。
    • 下载安装
    shell> wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
    shell> tar zxvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz -C /opt/prometheus/
    
    • 启动服务
    shell> /opt/prometheus/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_timeout 10 -nginx.scrape_uri http://{IP}/status/format/json
    
    • 配置systemd服务
    shell> cat > /etc/systemd/system/nginx_vts_exporter.service << EOF
     [Unit]
    Description=nginx_exporter
    After=network.target
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/server/prometheus/nginx-vts-exporter-0.10.3.linux-amd64/nginx-vts-exporter -nginx.scrape_uri=https://{IP}/status/format/json
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    EOF
    
    # 启动并检查服务状态
    shell> systemctl start nginx-vts-exporter.service
    shell> systemctl status nginx-vts-exporter.service
    
    • 修改prometheus.yml
    # nginx-vts-exporter 默认的抓取地址为http://{IP}:9913/metrics
    vim /server/prometheus/prometheus.yml
      - job_name: nginx
        static_configs:
          - targets: ['10.20.73.71:9913']
            labels:
              instance: 91donkey-web01
    
    • 重启prometheus服务
    shell> systemctl restart prometheus
    

    四、配置 grafana

    • 导入nginx vts模板
      根据采集源的不同,选用不同的 grafana dashboard 模板

    • 访问 Dashboards

  • 相关阅读:
    tkinter 表格
    Python编程学习笔记 随时更新
    WIN32窗口程序
    OutputDebugString方便格式化WIN32封装
    免费的剪贴板工具Ditto安装与使用
    Notepad++安装json插件
    华为机试训练题
    Python+Flask+MysqL的web建设技术过程
    python Django 用法总结(转)
    python Robot Framework用法总结(转)
  • 原文地址:https://www.cnblogs.com/91donkey/p/11643558.html
Copyright © 2020-2023  润新知