- 文档首页
托管 Prometheus
最佳实践
资源与业务监控
使用 node-exporter 监控 ECS 实例
资源与业务监控
使用 node-exporter 监控 ECS 实例
使用 node-exporter 监控 ECS 实例
托管 Prometheus 服务支持监控云服务器(ECS)实例,获取云服务器的指标信息。本文为您介绍如何基于 node-exporter 实现云服务器(ECS)实例监控。
node-exporter 是 Prometheus 开源生态中的重要组件,它能够对 Linux 服务器硬件和操作系统的指标进行收集,包括:CPU、内存、磁盘、网络、文件系统等。它以 HTTP 服务的形式对外提供这些指标数据,方便 Prometheus 进行抓取,进而实现对 Linux 服务器运行状态的监控。
node-exporter 与其他监控工具相比,包含以下主要优势:
- 深度融入 Prometheus 生态:作为 Prometheus 官方组件,能与 Alertmanager、Grafana 等无缝协作,形成完整监控闭环。
- 轻量高效:采用 Go 语言开发,资源占用低,对被监控节点性能影响小,适合大规模集群部署。
- 指标采集全面且灵活:默认覆盖系统底层指标,还支持通过自定义脚本或拓展组件(如文本文件收集器)添加个性化指标,适配不同监控场景。
- 社区活跃与生态丰富:依托 Prometheus 庞大社区,更新维护及时,且在云原生环境(如 Kubernetes)中支持节点自动发现,适配容器化部署趋势。
前提条件
- 托管 Prometheus 和云服务器,必须在相同地域。
- 已创建托管 Prometheus 工作区,详情请参见 创建工作区。
操作步骤
步骤一:配置安全组
- 在安全组列表中,单击 创建安全组,配置托管采集器使用的安全组。该安全组会在配置集成任务时,绑定在托管采集器的 Pod 网卡上,允许托管采集器访问指定的目标 IP 网段和端口。
- 在 访问规则 中,选择 出方向,单击 添加规则,配置托管采集器的安全规则。其中,目的 IP 地址为采集目标所在的网段,例如172.16.0.0/12,端口号为 TCP 协议9100端口。
-
- 配置 ECS 实例使用的安全组,本文以 Default 安全组为例。在 入方向规则中,添加规则,放通指标采集端口。其中,源地址为上文中配置的采集器的安全组,端口为 TCP9100端口。
-
说明
您也可以创建一个新的安全组,并将托管采集器和 ECS 实例均加入到该安全组。此时,无需配置新的访问规则,新创建安全组中的默认的出规则和入规则,即可实现托管采集器和 ECS 实例之间的互访。
步骤二:在 ECS 实例中部署 node-exporter
- 在左侧菜单栏中选择 实例与镜像 > 实例,进入目标云服务器的控制台。
-
- 执行以下命令,下载 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
- 进入解压后的文件夹,执行以下命令,启动 node-exporter。
- 执行以下命令,查看 node-exporter 暴露的指标,确认其是否工作正常。
curl http://127.0.0.1:9100/metrics
预期返回结果如下,够获看到采集到的指标。
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
go_info{version="go1.19.3"} 1
go_memstats_alloc_bytes 2.626832e+06
go_memstats_alloc_bytes_total 2.626832e+06
go_memstats_buck_hash_sys_bytes 1.447059e+06
go_memstats_frees_total 2055
步骤三:配置接入任务
-
- 当第一次配置 ECS 集成任务时,需要对 VMP 服务面向 ECS 服务和 VPC 服务进行跨服务访问授权。单击 去授权,配置服务授权。
-
- 单击 立刻授权,为 VMP 跨服务访问请求进行授权。
-
-
- Job 配置,指定采集间隔、服务发现的端口号等。
说明
- Job 配置修改并下发后,约 1 分钟后才会生效,请您耐心等待。
查看结果
配置完成后,您可以查看任务状态和任务详情。确定目标 ECS 实例是否正确接入 Promethues 服务。
- 单击左侧导航栏的 集成中心,并选择 集成任务 页签。
- 在任务列表中,选择目标任务,在 操作 栏中单击 目标列表,即可查看系统自动发现,并已正确接入托管 Prometheus 的 ECS 实例。
查看信息
指标
您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询。
说明
RabbitMQ 的常见指标,请参见 官方文档。 大盘
您可以自建 Grafana,并通过 Grafana 查看 ECS 实例的指标和创建大盘。包括:
告警
您可以在托管 Prometheus 的告警中心配置 ECS 实例的相关告警。详情请参见 创建告警规则。 常见问题
如何查看云服务器的 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"&
最近更新时间:2025.06.17 15:19:03