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

托管 Prometheus 服务支持监控云服务器(ECS)实例,获取云服务器的指标信息。本文为您介绍如何配置云服务器(ECS)实例监控。

前提条件

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

操作步骤

步骤一:配置安全组

  1. 登录 私有网络控制台

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

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

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

    说明

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

步骤二:在 ECS 实例中部署 node-exporter

  1. 登录 云服务器控制台
  2. 在左侧菜单栏中选择 实例与镜像 > 实例,进入目标云服务器的控制台。
    alt
  3. 执行以下命令,下载 node-exporter 并解压。
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz && tar -xvf node_exporter-1.5.0.linux-amd64.tar.gz

alt

说明

如果您无法在 ECS 云服务器中下载 exporter,可以尝试在本地主机中下载并上传至 ECS 云服务器。详情请参见 本地 Linux 或 macOS 系统通过 SCP 上传文件到 Linux 云服务器

  1. 进入解压后的文件夹,执行以下命令,启动 node-exporter。
nohup ./node_exporter &
  1. 执行以下命令,查看 node-exporter 暴露的指标,确认其是否工作正常。
curl http://127.0.0.1:9100/metrics

预期返回结果如下,够获看到采集到的指标。

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0
go_gc_duration_seconds{quantile="0.75"} 0
go_gc_duration_seconds{quantile="1"} 0
go_gc_duration_seconds_sum 0
go_gc_duration_seconds_count 0
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 7
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.19.3"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 2.626832e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 2.626832e+06
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.447059e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 2055
......

步骤三:配置集成任务

  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: 9100

说明

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

查看结果

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

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

alt

查看信息

指标

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

说明

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

大盘

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

告警

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

常见问题

如何查看云服务器的 9100 端口是否被占用

您可以在云服务器实例的控制台中,执行以下命令,检查接口是否被占用。

ss -naltp | grep 9100

返回如下信息时,表示 9100 端口已经被占用。

LISTEN     0      128       [::]:9100                  [::]:*                   users:(("node_exporter",pid=1654,fd=3))

如何修改 node-exporter 的缺省端口

node-exporter 缺省使用 9100 端口对外暴露指标,当云服务器中的 9100 端口被占用时,您可以在启动 node-exporter 时,通过--web.listen-address参数,修改 node-exporter 的指标暴露端口。例如修改为 9200 端口。

nohup ./node_exporter  --web.listen-address=":9200"&