当您使用火山引擎云服务(Elastic Compute Service,ECS)产品时,允许接入托管 Prometheus,实现对 ECS 实例基础资源和业务的监控。本文为您介绍 ECS 实例接入的流程和步骤。
云服务器是一种安全稳定、可弹性伸缩的云上虚拟服务器,包含 CPU、内存、硬盘、网络等资源。您可以使用 ECS 服务器打造弹性易用、安全可靠的业务环境,有效降低 IT 维护成本。
说明
更多产品详情,请参见 云服务器(ECS)产品文档。
当您在火山引擎控制台上购买并创建 ECS 实例时,构建实例的公共镜像中已内置了系统监控组件cloud-monitor-agent
,实现对 ECS 实例进行监控,以获取更深层、更准确的实例运行情况。
9091
,指标暴露的 URI 路径为/metrics
。说明
托管 Prometheus 工作区和目标 ECS 实例必须处于相同地域。
为了保证托管的采集器能够正确采集到 ECS 实例的监控数据,您需要首先配置指标采集使用的安全组。步骤如下:
登录 私有网络控制台。
在左侧导航栏中选择 安全组。
在安全组列表中,单击 创建安全组,配置托管采集器使用的安全组。该安全组会在配置集成任务时,绑定在托管采集器的 Pod 网卡上,允许托管采集器访问指定的目标 IP 网段和端口。
172.16.0.0/12
,端口号为 TCP 协议9091
端口。配置 ECS 实例使用的安全组,本文以 Default 安全组为例。在 入方向规则中,添加规则,放通指标采集端口。其中,源地址为上文中配置的采集器的安全组,端口为 TCP9091
端口。
说明
您也可以创建一个新的安全组,并将托管采集器和 ECS 实例均加入到该安全组。此时,无需配置新的访问规则,新创建安全组中的默认的出规则和入规则,即可实现托管采集器和 ECS 实例之间的互访。
为了保证托管采集器能够正确的采集到 ECS 实例的指标,需要检查 ECS 实例的安全组配置和监控组件的工作状态。
ECS 实例的安全组需要在 入方向 放通9091
端口,您需要确认 ECS 加入的安全组已放通该端口。
历史存量的公共镜像或 ECS 实例,可能未安装监控组件。因此,您需要确定 ECS 云服务器中是否安装了监控组件,步骤如下:
通过 ECS Terminal 进入 ECS 控制台。
执行以下命令,确认是否安装了监控组件,以及监控组件的工作状态。
systemctl status cloud-monitor-agent
预期返回结果如下,系统显示cloud-monitor-agent
组件的状态信息,表示该实例已安装了监控组件。示例如下:
如果 ECS 云服务器中未安装监控组件,请手动安装或更新组件。详情请参见 安装插件。
执行以下命令,确认监控组件正确开启了9091
监控端口。
ss -naltp | grep 9091
LISTEN 0 128 [::]:9091 [::]:* users:(("cloud-monitor-a",pid=1661,fd=3))
#!/bin/bash # set Prometheus = true sed -i 's/Prometheus: false/Prometheus: true/w /dev/stdout' /usr/local/cloud-monitor-agent/config.yaml | grep -q . # returns 0 when substitutions have been made, and 1 when no match is found or file not found if [ $? -eq 0 ]; then systemctl restart cloud-monitor-agent fi
说明
对于批量 ECS 实例,可以通过 ECS OpenAPI 的批量作业 RunCommand 接口来批量修改机器上的配置文件并重启(需要机器已经安装云助手)。详情请参见 批量作业支持在存量(Linux)云服务器上安装 Agent
监控端口打开后,您可以执行以下命令,查看监控数据。
curl 127.0.0.1:9091/metrics
预期反馈结果如下,能查看监控信息,说明 ECS 监控组件工作正常。
配置项 | 说明 |
---|---|
任务名称 | 配置集成任务的名称。支持中文、英文大小写、数字和下划线_ ,取值范围为 1~40 个字符。 |
工作区 | 选择已创建的托管 Prometheus 工作区。 |
ECS VPC | 选择 ECS 实例所在的 VPC。 |
安全组 | 选择托管采集器使用的安全组,允许托管采集器访问用户 VPC 中的资源。支持多选。 注意 为确保托管采集器能够正确采集到 ECS 中的指标,请将目标网段、端口添加到所选的安全组出访问规则中。 |
子网 | 选择进行服务发现的 VPC 子网。系统会在选择的子网下进行 ECS 服务发现,监控所有符合要求的 ECS 实例。支持多选。 |
global: scrape_interval: 15s # 必选,全局采集时间间隔 scrape_timeout: 10s # 必选,全局采集超时时间 external_labels: # 可选,自动添加到采集指标上的标签 cluster: cluster1 scrape_configs: - job_name: ecs # 必选,Job 的名称 scrape_interval: 30s # 可选,该 Job 的采集时间间隔,优先级高于全局配置 scrape_timeout: 30s # 可选,该 Job 的采集超时时间,优先级高于全局配置 metrics_path: /metrics # 必选,采集指标的 URI 路径,默认为 /metrics honor_labels: true # 可选,标签冲突处理策略,配置为 true 表示保留标签;配置为 false 表示重命名标签 honor_timestamps: true # 可选,是否使用指标中的时间戳 scheme: http # 必选,采集协议,支持 http 和 https ,默认为 http params: # 可选,http 协议参数,仅 scheme 为 http 时有效 p1: ["v1", "v2"] tls_config: # 可选,https 协议时的 TLS 配置,仅 scheme 为 https 时有效 ca: MIICXwIBAA*** # 配置 CA 证书 cert: MIICjzCCAfg*** # 配置 TLS 证书 key: MIICXQIBAA*** # 配置 TLS 密钥 server_name: tls-server-demo # 配置 TLS 服务器名称 insecure_skip_verify: true # 是否禁用 https 服务器证书验证 min_version: TLS12 # TLS 最小支持的版本号,取值:TLS10 (TLS 1.0), TLS11 (TLS 1.1), TLS12 (TLS 1.2), TLS13 (TLS 1.3) headers: # 可选,http 请求中的自定义 header - a - b relabel_configs: # 可选,配置指标的 relabel。如没有需求,可省略 - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃) source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel separator: ; # 定义 regex 中的分隔符,默认为 ; target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称 regex: (.*) # 对 source_labels 对应的值进行正则匹配 modulus: 123 # 源标签 Hash 值的模数 replacement: $1 metric_relabel_configs: # 可选,配置指标抓取之后的 relabel。如没有需求,可省略 - action: replace # 标签匹配后的操作,包括:replace(替换)、keep(保留)和 drop(丢弃) source_labels: [ xxxxxx ] # 从原始 labels 中取哪些 label 的值进行 relabel separator: ; # 定义 regex 中的分隔符,默认为 ; target_label: xxxxxx # 当 action 为 replace 时,需要添加或重置的标签名称 regex: (.*) # 对 source_labels 对应的值进行正则匹配 modulus: 123 # 源标签 Hash 值的模数 replacement: $1 sample_limit: 1024 # 可选,采集器每次采集的样本数量,取值为 0 表示无限制 volc_sd_configs: - port: 9091 # 必选,采集指标的端口号 project_name: project_a # 可选,通过 Project 对 ECS 实例进行筛选 tag_filters: # 可选,通过标签对 ECS 实例进行筛选 - key: ecs-label # 筛选 ECS 实例的标签名称 values: ["demo-a", "demo-b"] # 筛选 ECS 实例的标签值 instance_ids: # 可选,通过 ECS 实例 ID 进行筛选 - i-ycpy3h*** - i-ycroi4*** instance_name: ecs-demo # 可选,通过 ECS 实例名称进行模糊匹配和筛选
说明
配置完成后,您可以查看任务状态和任务详情。确定目标 ECS 实例是否正确接入 Promethues 服务。
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。
说明
云服务器的常见指标,请参见 云服务器指标查询。
您可以在容器服务集群或 ECS 主机中自建 Grafana,并下载下面提供的监控大盘 JSON 文件。然后通过 Grafana 查看指标和创建大盘。
您可以在托管 Prometheus 的告警中心配置 ECS 实例的相关告警。详情请参见 创建告警规则。