全部产品
Search
文档中心

可观测监控 Prometheus 版:Nginx接入

更新时间:Nov 25, 2024

本文介绍如何将Nginx类型组件接入可观测监控 Prometheus 版。Nginx是一个高性能的开源Web服务器,支持反向代理、负载均衡和HTTP缓存等功能。可观测监控 Prometheus 版支持采集Nginx相关请求数、字节数、响应时间等指标,以及统计Nginx服务所接收和处理的请求数量。可观测监控 Prometheus 版提供开箱即用的专属监控大盘,帮助管理员了解服务器的运行情况,进行服务器性能优化和故障排查。

背景信息

Nginx类型组件采集的Nginx指标请在ARMS控制台接入中心中查看。9.jpg

前提条件

  • 您已成功安装并运行Nginx服务。

  • 如果您需要开启Nginx for Stub Status监控,请安装ngx_http_stub_status_module模块。

    展开查看安装ngx_http_stub_status_module模块的具体操作

    1. 检查状态监控模块ngx_http_stub_status_module是否已安装。

      nginx -V 2>&1 | grep -o with-http_stub_status_module
      • 出现以下提示则表示已安装ngx_http_stub_status_module模块。cw_prom_exporter_nginx_module

      • 若未出现以上提示,则说明未安装ngx_http_stub_status_module模块,可执行以下命令安装此模块。

        wget http://nginx.org/download/nginx-1.13.12.tar.gz
        tar xfz nginx-1.13.12.tar.gz
        cd nginx-1.13.12/
        ./configure --with-http_stub_status_module
        make
        make install
    2. 启用ngx_http_stub_status_module模块查询Nginx状态。

      location /nginx_status {
        stub_status on;
        allow 127.0.0.1;  #only allow requests from localhost
        deny all;   #deny all other hosts 
       }
      说明
      • Location地址请严格命名为nginx_status

      • allow 127.0.0.1deny all表示仅允许本地访问。若需允许Nginx Exporter访问,则可将这两行代码注释,或者将127.0.0.1设置为Nginx Exporter的IP地址。

    3. 重启Nginx。

      nginx -t
      nginx -s reload 
    4. 可选:验证ngx_http_stub_status_module模块是否已成功启动。

      curl http://127.0.0.1/nginx_status

      出现以下提示则表示ngx_http_stub_status_module模块已成功启动。wo

  • 如果您需要开启Nginx for Vts监控,请安装nginx-module-vts模块。

    展开查看安装nginx-module-vts模块的具体操作

    1. 下载nginx-module-vts模块。

      说明

      git@github.com:vozlt/nginx-module-vts.git

    2. 编译配置。

      1. 在nginx编译时添加nginx-module-vts模块。

        --add-module=/path/to/nginx-module-vts
      2. 下载官方软件包并编译进nginx-module-vts模块。

        ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_sysguard_module  --add-module=nginx-module-vts
    3. 安装nginx-module-vts模块。

      make && make install
    4. Nginx配置。更改nginx.conf的配置,并添加监控接口。

      http {
          vhost_traffic_status_zone;
              vhost_traffic_status_filter_by_host on;
      
          ...
      
          server {
      
              ...
      
              location /status {
                  vhost_traffic_status_display;
                  vhost_traffic_status_display_format html;
              }
          }
      }

      在配置文件中打开vhost过滤。

      vhost_traffic_status_filter_by_host on
      说明

      开启此功能,当Nginx配置有多个server_name的情况下,系统会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。

      若您不需要统计流量的server区域,可以执行如下命令禁用vhost_traffic_status。以下示例中的...部分是省略的内容。

      server {
      ...
      vhost_traffic_status off;
      ...
      }
    5. 验证nginx-module-vts模块是否安装成功。

      curl http://127.0.0.1/status

接入Nginx

  1. 登录ARMS控制台,在左侧导航栏单击接入中心,然后单击Nginx卡片。

  2. 配置接入参数。

    1. 选择所属环境类型。

      • 容器服务环:监控目标在容器集群中运行

      • ECS(VPC):监控目标在ECS主机上运行

    2. 选择容器服务集群或ECS实例。

    3. 配置信息。

      容器服务环境

      名称

      说明

      示例值

      接入名称(非必填)

      自定义。

      nginxtest123

      开启 Nginx for Stub Status 监控

      监控开关。

      使用监控模块Ngx_Http_Stub_Status_Module(一般内置在Nginx内部)进行数据采集,支持统计Nginx服务所接收和处理的请求数量。

      说明

      打开此开关前,请确认已安装ngx_http_stub_status_module模块

      不涉及

      开启 Nginx for Vts 监控

      监控开关。

      使用监控模块Nginx-Module-Vts(一般需自行集成)进行数据采集,支持Nginx相关请求数、字节数、响应时间等指标。

      说明

      打开此开关前,请确认已安装nginx-module-vts模块

      不涉及

      Nginx 服务域名

      支持以下三类Nginx服务域名:

      • Nginx的集群内访问地址

      • 服务所处集群内网IP地址

      • 服务所处公网的IPv4地址

      Nginx的集群内访问地址(例如:nginx-server.namespace)

      Nginx 服务端口

      Nginx服务端口。

      80

      Metric 采集间隔(单位/秒)

      监控数据采集时间间隔,默认15s。

      15

      ECS(VPC)

      名称

      说明

      示例值

      接入名称(非必填)

      自定义。

      nginxtest321

      开启 Nginx for Stub Status 监控

      监控开关。

      使用监控模块Ngx_Http_Stub_Status_Module(一般内置在Nginx内部)进行数据采集,支持统计Nginx服务所接收和处理的请求数量。

      不涉及

      开启 Nginx for Vts 监控

      监控开关。

      使用监控模块Nginx-Module-Vts(一般需自行集成)进行数据采集,支持Nginx相关请求数、字节数、响应时间等指标。

      说明

      打开此开关前,请确认已安装nginx-module-vts模块

      不涉及

      Nginx 服务域名

      支持以下三类Nginx服务域名:

      • Nginx的集群内访问地址

      • 服务所处集群内网IP地址

      • 服务所处公网的IPv4地址

      Nginx的集群内访问地址(例如:nginx-server.namespace)

      Nginx 服务端口

      Nginx服务端口。

      80

      Metric 采集间隔(单位/秒)

      监控数据采集时间间隔,默认15s。

      15

      自定义标签

      通过自定义标签向Prometheus收集的指标中添加自定义键值对标签,便于在使用Grafana等工具时对这些指标进行细粒度的组织、查询、监控和分析。更多信息,请参见VPC环境主机监控自定义标签注入指标

      说明
      • 标签名不能包含特殊字符,如短划线(-)、半角句号(.)、百分号(%)等,这些字符在Prometheus中有特殊含义。

      • 注入的标签需要是Prometheus允许的有效的Key-Value标签格式。

      test1:aaa

查看监控信息

已接入的组件可单击左侧导航栏中的接入管理查看。单击已接入组件卡片,在弹出的面板中可以查看Targets、指标、大盘、告警、服务发现配置、Exporter等信息。image