可观测实践|如何利用 Prometheus 精细化观测云产品

简介: 随着企业使用越来越多的云产品,如何监控不同云产品运行状态,又该如何建立统一大盘,不妨看看如何通过阿里云Prometheus解决上述问题。

引言


随着云计算的普及,企业用到越来越多云产品,例如:ECS、RDS、Redis 等。服务众多企业之后,阿里云可观测团队发现在运维场景愈发精细化的今天,对于指标按需再加工、对于告警规则的灵活设置成为刚需,云监控等基础默认监控能力,无法满足当下的运维需求,例如:


  1. 查看各 Region ECS CPU 使用率 Top10;
  2. 为 Kafka 服务连续 10 分钟堆积增量超过 500 的 ConsumerGroup 设置告警;
  3. 基于磁盘空间的变化预测清理时间,避免告警无法及时处理导致故障。 


与此同时,Prometheus + Grafana 成为可观测性事实标准。运维团队可以使用 Prometheus 监控云原生 Kubernetes 体系 Node、ApiServer、workload 等基础指标的同时,还可以通过 Prometheus Exporters 采集各种组件(如 Redis、Kafka 等)和业务应用的相关指标,最后通过 Grafana 进行整体可视化展示,借助 AlertManager 进行告警,实现云原生时代的指标可观测闭环。


回到最开始的话题,随着云产品应用愈发普及,基于“Prometheus + Grafana”的指标可观测体系是否可以针对云产品的相关指标提供更加精细化的加工与应用能力,实现对云产品的指标可观测闭环?


答案是肯定的。


自建 Prometheus 监控云产品的挑战


虽然 Prometheus 官方社区维护了很多 Exporter,第三方厂商或者主流开源项目也参与到贡献及维护中。但由于云产品的特殊性,如果用户想要通过自建 Prometheus 去监控云产品,就需要用户通过 Prometheus Exporter 形式将观测到的 Metric 数据收集到服务端。但这里就会出现一些关于 Exporter 的额外工作量:


  • 额外的研发工作量


虽然官方提供了四种语言(Go/Java/Python/Rubby)的正式客户端库用来开发一个集成 http server 的 Exporter 库,并提供了完整的开发规范。但这需要运维工程师针对不同云产品开发定制 Exporter(调用企业云监控实时导出服务获取 Metric 数据),对于开箱即用的云服务而言,拖慢了业务上线效率。


  • 额外的 Exporter 资源消耗


由于 Exporter 本身提供了一个 REST 服务器,会带来一些线程消耗,随着 Exporter 接入云产品越多、指标越多消耗的资源也会随之越多。


可以看到,虽然运维工程师可以通过自研 Eexporter 完成对于云产品的监控,但有没有更简单的方式?


阿里云 Prometheus 服务(下面简称 Prometheus)成为最佳选择,提供全托管、开箱即用的云产品指标监控能力,并结合常见运维场景,预置若干多维度监控大盘以满足常见监控场景。针对不同云产品可观测性集成情况,提供「企业云监控集成」以及「云产品自监控集成」两种不同接入模式,最大限度的降低运维接入成本。


如何通过阿里云 Prometheus 服务监控云产品


根据不同云产品的 Prometheus 集成情况,Prometheus 服务的云产品监控分为「企业云监控集成」以及「云产品自监控集成」两种形式,接下来我们将进行详细解读。


企业云监控集成


阿里云部分云产品在产品控制台默认集成了 Prometheus 监控,但还有众多云产品尚未集成 Prometheus。为了能通过 Prometheus 服务监控这部分云产品,我们提供企业云监控集成模式,通过企业云监控获取监控指标,指标上报流量费用由云监控收取(收费标准),Prometheus 免费存储及应用。在用户运维成本未增加的前提下,获得了 Prometheus 更精细与灵活的的指标加工与应用能力。

部署形式如下图:


1.png


  • Exporter:以 Pod 方式部署在 Prometheus 企业云监控集成的托管 K8s 集群,通过调用企业云监控实时导出 API 收集已集成的云产品指标数据;
  • Agent:Arms Prometheus Agent
  • Alarm:定义集成的云产品告警模板
  • Grafana:提供已集成的云产品默认大盘 


对于云产品控制台目前尚不支持Prometheus监控的产品,通过该方式实现产品指标监控,目前支持 25 款云产品并不断扩增。企业云监控集成目前仅支持国内 Region,海外 Region 暂未开放。云产品接入后,包含全部 Region 监控指标。目前已接入产品包括:


  • 弹性计算类:阿里云 ECS;
  • 存储类、阿里云 SLS、阿里云 OSS;
  • 网络类:阿里云 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; 

2.png


云产品自监控集成


目前,部分云产品在各自控制台提供了自身产品的可观测性,但这些云产品的指标及看板散落在各个控制台。为了能将这些数据进行统一展现。Prometheus 服务提供了云产品自监控集成形式,云产品自监控集成的相关指标来源于各云产品,为运维团队提供更加便捷的日常运维监控界面。


部署形式如下:


3.jpeg


  • Exporter:以 Pod 方式部署在云产品侧 K8s 集群,负责收集云产品指标数据;
  • Agent:Arms Prometheus Agent
  • Alarm:定义告警模板
  • Grafana:提供云产品默认大盘 


Prometheus 自监控集成 Tab 页是云产品控制台支持 Prometheus 监控的所有云产品的概览页,展现当前账号下云产品的 Promehtheus 集成状态、指标占比、大盘预览、告警配置。目前已接入的产品包括:


  • 数据库类:阿里云 Clickhouse、阿里云 Lindorm、云数据库 MongoDB;
  • 消息队列类:消息队列 RabbitMQ、消息队列 Kafka、消息队列 RocketMQ;
  • 中间件类:企业级分布式应用服务 EDAS、微服务引擎 MSE - 云原生网关、微服务应用引擎 SAE、应用高可用服务 AHAS;
  • 运维类:Grafana 服务、性能测试 PTS; 


4.png


最佳实践


企业云监控集成


  • 云产品接入
     

登录 Prometheus 控制台,点击左侧菜单“接入中心”选择任意云产品后弹出接入页面,选择待接入的云产品安装即可,安装完成后会创建一个名为“企业云服务”的 Prometheus 实例。


5.png

6.png


  • 监控指标


点击“云服务实例”,选择相应云产品图标会弹出一个包含指标、大盘和告警 3 个 tab 页的窗口。指标页默认包括:指标、类别、描述 3 项基本信息,已集成云产品除默认项外还包括最近 10 分钟的指标量和占比。


ECS 如图:


7.png


  • Grafana 大盘


大盘页默认显示该云产品的所有 Grafana 默认大盘缩略图。已集成的云产品点击缩略图或 Title 链接会跳转至阿里云 Grafana 监控大盘,未集成的云产品点击缩略图或 Title 链接会显示 Grafana 监控大图。


8.png


  • ECS 实例详情:提供 ECS 实例的 CPU、内存、磁盘、网络等系统指标的监控,筛选维度包括:区域、ECS 标签、实例名、实例 ID;
  • ECS 全局公网大盘:提供 ECS 实例公网流入、流出带宽合计、TOP 等指标;
  • ECS 实例利用率排序大盘:支持 region 和全局维度 TOP 实例,主要指标:CPU 利用率、内存利用率、网络连接等;
  • ECS 资源区域分布大盘:支持 ECS 实例、CPU、内存、磁盘、网络连接等按区域分布统计; 


  • 告警配置
     

告警页默认显示该云产品配置的所有告警规则:


9.png


点击“创建 Prometheus 告警规则”通过默认告警模板设置或自定义 PromQL 完成告警规则的创建(自定义 PromQL 指标名可参考步骤“云产品指标”)。


10.png


  • 默认告警规则
     
  • CPU 利用率


AliyunEcs_cpu_total{} > 80

  • 内存利用率


AliyunEcs_memory_usedutilization{} > 90

  • 磁盘利用率:磁盘使用率超过 90%时需要进行磁盘清理


AliyunEcs_diskusage_utilization{} > 90

  • 磁盘剩余空间不足:当磁盘剩余空间小于 5G 时考虑清理


AliyunEcs_diskusage_free{} < 1024*1024*1024*5

  • 热点指标
     

11.png


云产品自监控集成


在开通云产品并创建实例时,会有开通 ARMS Prometheus 相关选项,创建完成后即可通过 Prometheus 实现该产品的指标监控。以“MSE 服务-云服务网关”为例:


1. 创建实例时开通 Prometheus 监控


12.png


2. 产品控制台监控入口


13.png


Grafana 专业版


云服务实例默认使用 Grafana 共享版,如果默认大盘不能满足运维团队可观测需求或者想在默认大盘基础上进行优化,可增购 Grafana 专家版或高级版。

14.png


关于阿里云 Prometheus 监控


阿里云 Prometheus 服务是基于云原生可观测事实标准 - Prometheus 开源项目构建的全托管监控服务。默认集成常见云服务,兼容主流开源组件,全面覆盖业务监控/应用层监控/中间件监控/系统层监控。通过开箱即用的 Grafana 看板与智能告警功能,并全面优化探针性能与系统可用性,帮助企业快速搭建一站式指标可观测体系。助业务快速发现和定位问题,减轻故障给业务带来的影响,并免去系统搭建与日常维护工作量,有效提升运维监控效率。


15.png


与此同时,阿里云 Prometheus 作为阿里云可观测套件的重要组成部分,与 Grafana 服务、链路追踪服务,形成指标存储分析、链路存储分析、异构构数据源集成的可观测数据层,同时通过标准的 PromQL 和 SQL,提供数据大盘展示,告警和数据探索能力。为 IT 成本管理、企业风险治理、智能运维、业务连续性保障等不同场景赋予数据价值,让可观测数据真正做到不止于观测。


16.png

相关文章
|
SQL 存储 弹性计算
阿里云EMR 2.0:重新定义新一代开源大数据平台
本次分享主要介绍了阿里云E-MapReduce的开发历程,EMR 2.0的新特性、产品架构,以及EMR 2.0在平台体验、数据开发、资源形态及分析场景等方面的全面突破与创新,重新定义新一代开源大数据平台。
3729 0
阿里云EMR 2.0:重新定义新一代开源大数据平台
|
存储 Prometheus 运维
统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?
MSE 云原生网关默认提供了丰富的 Metrics 指标大盘,配合阿里云 Prometheus 监控提供开箱即用的完整可观测性能力,能够帮助用户快捷、高效的搭建自身的微服务网关与对应的可观测体系。
1153 118
统一观测丨使用 Prometheus 监控云原生网关,我们该关注哪些指标?
|
存储 SQL Cloud Native
一文读懂AnalyticDB MySQL过滤条件智能下推原理
在AnalyticDB MySQL中,由于存储计算分离架构,那么谓词下推就是把所有能推的谓词都推到存储节点上去做。本文深入解析了AnalyticDB MySQL过滤条件智能下推原理。
870 0
一文读懂AnalyticDB MySQL过滤条件智能下推原理
|
弹性计算 Prometheus 运维
统一观测|如何使用 Prometheus 监控 Windows
阿里云 Prometheus 与阿里云容器服务和 ECS 无缝集成,默认提供了 Windows 的 CPU、内存、磁盘、网络和进程等 5 方面的核心监控指标采集,同时提供了对应的优化后的专家级监控大盘和告警指标模板,为用户提供了免运维、开箱即用的 Windows 监控能力。
统一观测|如何使用 Prometheus 监控 Windows
|
存储 运维 监控
跟误告警说再见,Smart Metrics 帮你用算法配告警
本文从两类常见的无效告警规则入手,分析有效告警配置难,误告警泛滥的原因,介绍 Smart Metrics 是如何帮助用户解决告警难配的问题的,并介绍一些最佳实践。
跟误告警说再见,Smart Metrics 帮你用算法配告警
|
消息中间件 存储 Prometheus
Prometheus 监测 RocketMQ 最佳实践
Prometheus 集成的 50 多款云产品中,RocketMQ 在可观测方面实现了非常完善的功能,是一个特别具有代表性的云产品。
Prometheus 监测 RocketMQ 最佳实践
|
存储 Cloud Native 关系型数据库
数据库风向标第七期:PolarDB for MySQL 云原生多主架构解读
杨文锋(高见):阿里云数据库高级产品专家,多年数据库相关运维和产品经验,现负责PolarDB for MySQL的产品管理、方案设计和特性规划工作。 章颖强(江疑):阿里云资深技术专家,PolarDB 多主架构/Serverless/事务引擎 研发负责人。 王林平(君远) :阿里云高级解决方案架构师,从事数据库运维、架构、售前工作16年,现负责泛互联网数据库解决方案工作。
|
运维 Kubernetes 算法
资源画像,看得见的容器资源优化助手
日前,ACK 控制台在此基础上正式发布了资源画像功能,为用户提供了可视化的交互页面,便于管理员快速分析应用资源规格的合理性,并进行资源规格配置的变更。该功能目前已经正式开放公测,ACK 用户可以直接申请白名单试用。
资源画像,看得见的容器资源优化助手
|
消息中间件 存储 SQL
使用Flink 读取kafka Catalog 源表数据展开json写入下游hologres表示例操作
本文主要介绍如何使用Flink 读取kafka Catalog 源表数据写入下游hologres存储,并演示&#39;json.infer-schema.flatten-nested-columns.enable参数,递归的展开JSON中的嵌套列的效果。
使用Flink 读取kafka Catalog 源表数据展开json写入下游hologres表示例操作
|
SQL 存储 运维
EMR-StarRocks 与 Flink 在汇量实时写入场景的最佳实践
本文详细介绍了 EMR-StarRocks 与 Flink 在汇量实时写入场景的最佳实践。
3028 1
EMR-StarRocks 与 Flink 在汇量实时写入场景的最佳实践