如何使用Prometheus监控云产品
本文介绍如何使用Prometheus监控云产品。
自建Prometheus监控云产品的挑战
虽然Prometheus官方社区维护了很多Exporter,第三方厂商或者主流开源项目也参与维护中。但由于云产品的特殊性,如果您想要通过自建 Prometheus去监控云产品,就需要通过Prometheus Exporter形式将观测到的Metric数据收集到服务端,因此会增加额外的工作量,具体说明如下:
额外的研发工作量
虽然官方提供了四种语言(Go、Java、Python、Ruby)的正式客户端库用来开发一个集成HTTP Server 的Exporter库,并提供了完整的开发规范。但仍需要运维工程师针对不同云产品开发定制Exporter,即调用企业云监控实时导出服务获取Metric数据),对于开箱即用的云服务而言,降低了业务上线效率。
额外的Exporter资源消耗
由于Exporter本身提供了一个REST服务器,会带来一些线程消耗,随着Exporter接入的云产品越多、指标越多,随之消耗的资源也会增多。
如何通过Prometheus监控云产品
根据不同云产品的Prometheus集成情况,可观测监控 Prometheus 版的云产品分为企业云监控集成以及云产品自监控集成两种形式。
企业云监控集成
阿里云部分云产品在产品控制台已默认集成了可观测监控 Prometheus 版,但是目前还有众多云产品尚未集成可观测监控 Prometheus 版,为了您能通过可观测监控 Prometheus 版这些未集成的云产品,可观测监控 Prometheus 版提供了企业云监控集成方式。您可以通过企业云监控获取监控指标,其中指标上报流量费用由云监控收取,具体收费详情,请参见企业云监控计费规则。可观测监控 Prometheus 版侧会为您提供免费的存储及应用。因此在没有增加您的运维成本下,您将可以获得可观测监控 Prometheus 版更精细与灵活的指标加工与应用能力。
部署形式如下:
Exporter:以Pod方式部署在Prometheus企业云监控集成的托管K8s集群,通过调用企业云监控实时导出API收集已集成的云产品指标数据。
Agent:ARMS Prometheus Agent。
Alarm:定义集成的云产品告警模板。
Grafana:提供已集成的云产品默认大盘。
目前已接入云产品包括:
弹性计算类:阿里云ECS。
网络类:阿里云ALB、阿里云API网关、阿里云Connector、阿里云CDN、阿里云CEN、阿里云DCDN、阿里云Cloud NAT、阿里云EIP。
大数据类:阿里云E-MapReduce、阿里云Elasticsearch、阿里云Logstash。
数据库类:阿里云PolarDB、阿里云RDS PostgreSQL、阿里云RDS MySQL、阿里云Redis、阿里云RDS SQLServer、阿里云Hologres、阿里云ADB、阿里云DRDS、阿里云DTS。
安全类:阿里云WAF。
云产品自监控集成
目前,部分云产品在各自控制台提供了自身产品的可观测性,但这些云产品的指标及看板散落在各个控制台。为了能将这些数据进行统一展示,可观测监控 Prometheus 版提供了云产品自监控集成方式,为您提供更加便捷的日常运维监控界面。云产品自监控集成的相关指标来源于各云产品。
部署形式如下:
Exporter:以Pod方式部署在云产品侧K8s集群,负责收集云产品指标数据。
Agent:ARMS Prometheus Agent
Alarm:定义告警模板。
Grafana:提供云产品默认大盘。
目前已接入的产品包括:
数据库类:阿里云Clickhouse、阿里云Lindorm、云数据库MongoDB。
消息队列类:消息队列RabbitMQ、消息队列Kafka、消息队列RocketMQ。
中间件类:企业级分布式应用服务EDAS、微服务引擎MSE-云原生网关、Serverless应用引擎SAE、应用高可用服务AHAS。
运维类:Grafana服务、性能测试PTS。
企业云监控集成最佳实践
这里以接入阿里云ECS为例为您介绍具体的集成步骤。
步骤一:接入云产品
在左侧导航栏单击监控列表,进入可观测监控 Prometheus 版的实例列表页面。
在实例列表中单击目标云服务类型的Prometheus实例,进入集成中心页面。
单击未集成区域的目标阿里云ECS卡片的复选框,然后单击右下角的确认,完成接入。
步骤二:查看监控指标
在已集成区域,单击阿里云ECS卡片,您可以在弹出的面板中查看该阿里云ECS产品的指标监控数据。
参数 | 说明 |
指标 | 该指标的名称。 |
类别 | 企业云监控产品的类别。 |
描述 | 该指标的含义。 |
占比 | 该指标数量在所有指标中的占比。 |
指标量(最近十分钟) | 最近十分钟指标落库存储的数量。 |

步骤三:查看Grafana大盘
在已集成区域,单击阿里云ECS卡片,然后在弹出面板单击大盘页签,大盘页签展示了阿里云ECS产品的所有Grafana默认大盘缩略图,您可以单击大盘名称跳转至Grafana平台查看大盘的详情数据。阿里云ECS主要包括以下几个大盘:
ECS实例详情:提供ECS实例的CPU、内存、磁盘、网络等系统指标的监控,支持通过区域、ECS标签、实例名称、实例ID等进行筛选。
ECS全局公网大盘:提供ECS实例公网流入、流出带宽合计、TOP等指标。
ECS实例利用率排序大盘:支持Region和全局维度TOP实例,主要指标有CPU使用率、内存利用率、网络连接等。
ECS资源区域分布模板大盘:支持按照区域分布统计的ECS实例、CPU、内存、磁盘、网络连接等指标数据。
步骤四:配置告警
在已集成区域,单击企业云监控产品卡片,然后在弹出面板单击告警页签,告警页签展示了该云产品配置的所有告警规则。默认的告警规则有:
CPU使用率:AliyunEcs_cpu_total{}>80。
内存利用率:AliyunEcs_memory_usedutilization{}>90。
磁盘利用率:AliyunEcs_diskusage_utilization{}>90,当磁盘使用率超过90%时则需要进行磁盘清理。
磁盘剩余空间不足:AliyunEcs_diskusage_free{}<1024*1024*1024*5,当磁盘剩余空间小于5G时则需要考虑清理。
其他热点指标:
类型
指标名称
描述
操作系统级
AliyunEcs_cpu_idle
CPU处于空闲状态时间比例
AliyunEcs_diskusage_utilization
ECS磁盘利用率
AliyunEcs_memory_usedutilization
ECS内存使用率
AliyunEcs_load_1m/5m/15m
CPU过去1/5/15分钟的系统平均负载
AliyunEcs_load_per_core_1m/5m/5m
CPU平均每核过去1/5/15分钟的系统平均负载
AliyunEcs_net_tcpconnection
各种状态下的TCP连接数,包括:
LISTEN
SYN_SENT
ESTABLISHED
SYN_RECV
FIN_WAIT1
CLOSE_WAIT
FIN_WAIT2
LAST_ACK
TIME_WAIT
CLOSING
CLOSED
网络流量
AliyunEcs_InternetIn
经典网络公网流入流量(Byte)
AliyunEcs_InternetOut
经典网络公网流出流量(Byte)
AliyunEcs_IntranetIn
内网流入流量(Byte)
AliyunEcs_IntranetOut
内网流出流量(Byte)
AliyunEcs_packetInDropRates
入方向丢包率(%)
AliyunEcs_packetOutDropRates
出方向丢包率(%)
您还可以在告警页签为阿里云ECS产品创建新的Prometheus告警规则,查看监控告警信息。如何创建告警规则的具体操作,请参见Prometheus告警规则。
云产品自监控集成最佳实践
通常在开通云产品后创建实例时,相关控制台界面会有同时开通ARMS Prometheus的选项,有些云产品在创建时是默认开通可观测监控 Prometheus 版且不可取消的,有些是需要您自行勾选开通的,因此当您在创建云产品实例完成后即可通过可观测监控 Prometheus 版实现该产品的指标监控。这里以开通MSE服务的云服务网关为例为您介绍如何开通可观测监控 Prometheus 版。
登录MSE网关管理控制台。
在左侧导航栏,选择云原生网关 > 网关列表。
在顶部菜单栏选择地域,然后在网关列表页面左上角单击创建网关,在云原生网关的开通购买页面可以看到系统默认为您开通了ARMS Prometheus功能。
开启ARMS Prometheus功能之后,该云产品会显示在可观测监控 Prometheus 版控制台云产品自监控集成页面的已集成区域,则表示该云产品已成功接入。更多信息,请参见云产品自监控集成。
创建完成后,在网关列表页面单击新创建的网关名称,然后在左侧导航栏选择可观测监控 Prometheus 版监控的指标数据。
,在全局看板页签您可以查看