You need to enable JavaScript to run this app.
导航
监控 ECS 实例中的应用
最近更新时间:2024.08.27 16:13:24首次发布时间:2024.03.19 15:12:29

当您在火山引擎云服务器(ECS)中部署业务时,允许接入托管 Prometheus,实现对 ECS 实例基础资源和业务的监控。本文为您介绍如何监控 ECS 实例中搭建的业务。

背景信息

当您的应用(例如:数据库、中间件等)部署在 ECS 实例中时,由于应用可能分散部署在一个或多个 VPC 内,且每个 VPC 内也有可能配置了多个 ECS 实例。此时,为了保证应用工作正常,您需要实现对这些 ECS 实例、基础组件和业务应用本身进行统一的观测。

基于应用本身的特点,托管 Prometheus 支持如下方法实现 ECS 实例和应用的观测:

  • 对于符合云原生的组件或应用,由于直接提供了符合 Prometheus 要求的 Metrics 端口,因此可以直接接入托管 Prometheus,实现指标的观测。
  • 对于一些传统应用和中间件,由于没有提供用于 Prometheus 监控的接口,也不支持 Prometheus 数据格式。您可以在 VPC 内的 ECS 实例上,部署对应的 exporter,然后接入托管 Prometheus,完成服务发现和指标观测。

alt

说明

  • ECS 实例本身资源的观测方式,请参见 云服务器接入监控 ECS 实例
  • 本文以部署在 ECS 实例中的 RabbitMQ 为例,介绍如何观测 ECS 实例中部署的应用。在 ECS 实例中搭建 RabbitMQ 的方法,请参见 搭建 RabbitMQ

前提条件

  • 托管 Prometheus 和云服务器,必须在相同地域。
  • 已创建云服务器实例,并绑定公网 IP,详情请参见 购买云服务器实例
  • 已创建托管 Prometheus 工作区,详情请参见 创建工作区

操作步骤

步骤一:配置安全组

为了保证托管的采集器能够正确采集到 ECS 实例的监控数据,您需要首先配置指标采集使用的安全组。步骤如下:

  1. 登录 私有网络控制台

  2. 在左侧导航栏中选择 安全组

  3. 在安全组列表中,单击 创建安全组,配置托管采集器使用的安全组。该安全组会在配置集成任务时,绑定在托管采集器的 Pod 网卡上,允许托管采集器访问指定的目标 IP 网段和端口。

    • 私有网络 下拉菜单中,选择用户的 VPC。
    • 访问规则 中,选择 出方向,单击 添加规则,配置托管采集器的安全规则。其中,目的 IP 地址为采集目标所在的网段,例如172.16.0.0/12,端口号为 TCP 协议9419端口。
      alt
  4. 配置 ECS 实例使用的安全组,本文以 Default 安全组为例。在 入方向规则中,添加规则,放通指标采集端口。其中,源地址为上文中配置的采集器的安全组,端口为 TCP9419端口。
    alt

    说明

    您也可以创建一个新的安全组,并将托管采集器和 ECS 实例均加入到该安全组。此时,无需配置新的访问规则,新创建安全组中的默认的出规则和入规则,即可实现托管采集器和 ECS 实例之间的互访。

步骤二:在 ECS 实例中部署 rabbitmq_exporter

为了保证托管采集器能够正确的采集到 ECS 实例中 RabbitMQ 的指标,需要在 ECS 实例中安装 rabbitmq_exporter。

  1. 登录 ECS 实例。详情请参见 登录实例
  2. 执行以下命令,下载 rabbitmq_exporter。
wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v1.0.0-RC19/rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz
  1. 执行以下命令,解压 rabbitmq_exporter 安装包。
tar -zxvf rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz
  1. 在 ECS 实例中创建 rabbitmq_exporter 的配置文件config.example.json,并完成配置。
sudo vi config.example.json

配置文件中的内容如下:

{
    "rabbit_url": "http://127.0.0.1:15672",
    "rabbit_user": "guest",
    "rabbit_pass": "guest",
    "publish_port": "9419",
    "publish_addr": "",
    "output_format": "TTY",
    "ca_file": "ca.pem",
    "cert_file": "client-cert.pem",
    "key_file": "client-key.pem",
    "insecure_skip_verify": false,
    "exlude_metrics": [],
    "include_exchanges": ".*",
    "skip_exchanges": "^$",
    "include_queues": ".*",
    "skip_queues": "^$",
    "skip_vhost": "^$",
    "include_vhost": ".*",
    "rabbit_capabilities": "no_sort,bert",
    "aliveness_vhost": "/",
    "enabled_exporters": [
            "exchange",
            "node",
            "overview",
            "queue",
            "aliveness"
    ],
    "timeout": 30,
    "max_queues": 0
}

需要重点关注和修改的参数,如下表所示。

参数说明
rabbit_urlRabbitMQ 所在 ECS 实例的 IP 地址和端口号。由于本例中 RabbitMQ 与 rabbitmq_exporter 部署在相同的 ECS 实例中,因此配置为http://127.0.0.1:15672
rabbit_userRabbitMQ 登录的用户名。该用户需要具备administratormonitoring权限,配置方式请参见 搭建 RabbitMQ
rabbit_passRabbitMQ 登录的密码。
publish_portRabbitMQ 指标暴露端口号,默认为9419

说明

rabbitmq_exporter 更多参数配置,请参见 官方文档

  1. 执行以下命令,启动 rabbitmq_exporter。
./rabbitmq_exporter -config-file config.example.json &

预期反馈结果如下,能够看到 rabbitmq_exporter 可以正确地采集指标。
alt
6. 在 ECS 实例中执行以下命令,确定 rabbitmq_exporter 工作正常,查看监控数据。

curl 127.0.0.1:9419/metrics

预期反馈结果如下,能够正常查看到监控信息,说明 rabbitmq_exporter 工作正常。
alt

步骤三:配置集成任务

  1. 登录 VMP 服务控制台
  2. 在顶部导航栏,选择目标地域。
  3. 单击左侧导航栏的 集成中心,并选择 产品服务 页签。
  4. 云服务器 选项卡中,单击 创建集成任务
    alt
  5. (可选)服务授权。
    1. 当第一次配置 ECS 集成任务时,需要对 VMP 服务面向 ECS 服务和 VPC 服务进行跨服务访问授权。单击 去授权,配置服务授权。
      alt
    2. 单击 立刻授权,为 VMP 跨服务访问请求进行授权。
      alt
  6. 配置集成任务的详情。
    alt
    配置项说明
    任务名称配置集成任务的名称。支持中文、英文大小写、数字和下划线_,取值范围为 1~40 个字符。
    工作区选择已创建的托管 Prometheus 工作区。
    ECS VPC选择 ECS 实例所在的 VPC。

    安全组

    选择托管采集器使用的安全组,允许托管采集器访问用户 VPC 中的资源。支持多选。

    注意

    为确保托管采集器能够正确采集到 ECS 中的指标,请将目标网段、端口添加到所选的安全组出访问规则中。

    子网选择进行服务发现的 VPC 子网。系统会在选择的子网下进行 ECS 服务发现,监控所有符合要求的 ECS 实例。支持多选。
  7. Job 配置,指定采集间隔、服务发现的端口号等。
global:
  scrape_interval: 15s
  scrape_timeout: 10s
scrape_configs:
- job_name: ecs
  scheme: http
  metrics_path: /metrics
  volc_sd_configs:
  - port: 9419

说明

  • 更多配置项说明,请参见 云服务器接入
  • Job 配置修改并下发后,约 1 分钟后才会生效,请您耐心等待。
  1. 单击 确认,完成配置。

查看结果

配置完成后,您可以查看任务状态和任务详情。确定目标 ECS 实例是否正确接入 Promethues 服务。

  1. 单击左侧导航栏的 集成中心,并选择 集成任务 页签。
  2. 在任务列表中,选择目标任务,在 操作 栏中单击 目标列表,即可查看系统自动发现,并已正确接入托管 Prometheus 的 ECS 实例。

alt

查看信息

指标

您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询

说明

RabbitMQ 的常见指标,请参见 官方文档

大盘

您可以自建 Grafana,并通过 Grafana 查看 RabbitMQ 的指标和创建大盘。包括:

告警

您可以在托管 Prometheus 的告警中心配置 RabbitMQ 的相关告警。详情请参见 创建告警规则