可观测实践|如何利用 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

相关文章
|
8月前
|
算法 安全 API
跨境电商必备!如何在 WhatsApp 创建商品目录?
如何在 WhatsApp 创建商品目录,提升客户浏览和购买效率?
948 2
|
人工智能 自然语言处理 数据可视化
实践教程|如何创建一个WhatsApp AI Chatbot
无需代码!使用阿里云百炼 + Chat App 消息服务,10 分钟创建 WhatsApp AI 聊天机器人,支持企业知识库问答
1101 0
|
11月前
|
存储 运维 安全
金融级 ZooKeeper 来袭:性能提升100%,SLA 99.99%,数据防护升级
阿里云微服务引擎 MSE ZooKeeper 企业版正式发布,提供比专业版更高的稳定性与安全能力,SLA 达 99.99%,整体性能提升 100%。企业版通过独享资源池实现更高规格配额,满足大规模需求,并新增数据备份容灾、容量管理、反脆弱限流等功能,助力企业应对复杂业务挑战。
396 12
|
资源调度 运维 Serverless
ES Serverless 8.17王牌发布:向量检索「火力全开」,智能扩缩「秒级响应」!
阿里云 Elasticsearch Serverless 检索增强型8.17版本在最新特性扩展、自动扩缩性能、资源成本优化三大维度实现全面跃升,本文将深度解析该版本通过工程优化带来的核心能力升级。
622 0
|
存储 运维 Prometheus
全面公测|Grafana服务:一张图表胜过千行指标&日志
Grafana 帮助运维人员轻松处理各类运维过程中遇到的各类数据可视化与分析难题。目前阿里云 Grafana 服务全面免费公测,帮助企业轻松构建运维数据可视化平台,轻松实现数据驱动运维!
2772 122
全面公测|Grafana服务:一张图表胜过千行指标&日志
|
运维 Kubernetes IDE
SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)
上一篇我们介绍了从 IDE 插件内介绍了如何进行应用部署的方式,除此之外,目前 EDAS 还支持了额外的工具对其他场景进行覆盖,这一篇内容主要就是介绍 EDAS 上围绕部署的工具体系。
4399 90
|
运维 Kubernetes IDE
SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)
本文将主要介绍如何将开发篇中提到的应用在云上跑起来。
6962 108
SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)
|
存储 消息中间件 SQL
看场景、重实操,实时数仓不是“纸上谈兵”
Hologres产品负责人合一谈谈他眼中的实时数仓!
2850 4
看场景、重实操,实时数仓不是“纸上谈兵”
|
存储 Dragonfly 监控
Tair 对 Redis 引擎架构之争的看法
2022 年 6 月 8 日,Redis Inc. 的官方博客发布了一篇名为《13 年后,Redis 是否需要一个新架构?》的文章,这篇文章由 Redis 的联合创始人兼 CTO Yiftach Shoolman、首席架构师 Yossi Gottlieb 以及性能工程师 Filipe Oliveira 联合署名,被业界认为是 Redis 官方针对 Dragonfly “碰瓷式”营销的回应。本文作者以阿里云自研内存数据库 Tair 的核心开发者的视角来解读 Redis 的架构之争,并介绍 Tair 的一些内部实现原理。
1956 2
Tair 对 Redis 引擎架构之争的看法
|
存储 运维 容灾
为什么游戏行业喜欢用PolarDB
PolarDB 在游戏行业的最佳实践
22419 4
为什么游戏行业喜欢用PolarDB

相关产品

  • 可观测监控 Prometheus 版