统一观测|Prometheus 监控多云容器集群

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 容器集群可观测现状随着 Kubernetes(K8s)容器编排工具已经成为事实上行业通用技术底座,容器集群监控经历多种方案实践后,Prometheus 最终成为容器集群监控的事实标准。Promethues 监控服务可有效监控系统层指标、应用层指标、业务层指标等,采集监控指标后进行存储,搭配 Graf...

容器集群可观测现状

随着 Kubernetes(K8s)容器编排工具已经成为事实上行业通用技术底座,容器集群监控经历多种方案实践后,Prometheus 最终成为容器集群监控的事实标准。

Promethues 监控服务可有效监控系统层指标、应用层指标、业务层指标等,采集监控指标后进行存储,搭配 Grafana 可实现监控指标的展示和告警等。

Prometheus + Grafana 方案可有效进行容器集群监控指标采集、存储、展示、告警等,有效帮助业务发现和定位问题,为云原生下的应用保驾护航,已经成为业内容器集群监控标准组合方案。

目前企业运维容器集群,有两种方案可以选择,第一种选择自建监控体系;第二种选择云厂商提供的监控产品。

第一种自建监控体系:Prometheus + Grafana 入门使用并不难,但基于此方案进行自建整套监控体系且达到生产可用水平绝非易事,不仅需要投入一定量研发和运维人员,而且需要关注监控体系中各部分的协作,例如指标采集配置、指标存储、指标展示、有效大盘配置、告警配置、无效告警过滤等等诸多事项,这让很多开发和运维人员头痛和头秃,甚至最终走上从入门到放弃之路,赔了夫人又折兵。

第二种使用云厂商提供的监控产品:其中阿里云提供的 Prometheus 监控产品,有包年包月和按量付费两种模式,可减少自行搭建告警体系的前期投入的成本,也提供后续的技术运维支持,可以极大地减少运维成本。

多云容器集群可观测挑战

随着企业云上业务的多样化和复杂化,不可避免地出现跨区跨云厂商容器集群混用的形态,进而从以往单一容器集群运维变成多云容器集群运维。

面对多云混合的容器集群监控,可采用自建 Prometheus + Grafana 监控体系,将面临如下挑战:

  • 自建完备的监控体系,需要打通采集、存储、展示、告警等各个部分,且需要后续持续运维 SRE 人员投入,导致运维成本上升。

  • 开源 Prometheus 对应的 TSDB 采用 SSD 存储模式,数据单点分散存储,存在数据丢失风险。

  • 开源 Prometheus 采集能力存在一定的瓶颈,且为单点运行无法做到弹性伸缩,业务高峰时可能出现监控数据采集性能瓶颈。

亦或采用云厂商提供的 Prometheus 监控产品,将面临如下挑战:

  • 跨云厂商,不同云厂商提供的 Prometheus 监控产品能力和使用方式不尽相同,需要一定的学习成本 

  • 分散管理,不同云厂商监控产品混用情况下,无法进行统一管理,容易造成管理低效和混乱、运维上的重复、无法及时发现业务问题。

无论使用上述哪种方案,都会面临一个共同的问题,即监控指标分散,无法做到统一查询、联合分析展示、统一告警等。为实现监控数据统一查询和告警,可采用开源 Prometheus 联邦模式,存在如下诸多问题:

  • 容器集群内需部署 Prometheus 进行指标采集,不同容器集群内需进行重复配置。

  • 通过 Federate 方式将分散的监控数据进行中心化聚合,强依赖网络联通行,占用较多网络带宽资源。 

  • Federate 模式依赖网络的连通性和稳定性,当网络延迟出现时极易造成查询不到数据,告警不生效等。

  • 中心 Prometheus 存储单点存在宕机风险,若采用多活模式时,还需要解决数据一致性等问题。

image

亦或采用 Thanos 方案实现数据统一查询,亦将面临如下困难:

  • 运维负担重,需要将 Thanos Sidercar 做为单独进程与 Prometheus Server 一起部署和配置,并需提前规划容量,后续运维较繁琐。

  • 资源浪费,Sidercar 将本地数据同步到云端的对象存储时,依赖网络性能,占用一定的网络带宽资源。

  • 告警有效性难以保证,大跨度查询历史数据时,需要从云端对象存储中获取,若前期同步数据出现异常,会导致后期查询不到有效数据。 

  • 统一查询数据时,需要进行实时聚合数据,并进行去重、计算等操作。

image

阿里云 Prometheus 监控优势

为了解决上述问题,阿里云注册集群提供纳管能力,即将非阿里云容器集群进行统一管理,可有效解决多云容器集群管理分散的问题。阿里云 Promethues 监控产品,提供包括指标采集、Grafana 展示、告警等整套的容器监控体系,支持按量计费和包年包月两种付费模式,可有效提升容器集群监控效率,极大地减少自建监控体系所面临的运维成本。阿里云注册集群+Promethues 监控产品组合,将多云容器集群监控变得简单且高效,诸多问题迎刃而解。

  • 能力较强,可有效解决多云容器集群监控面临的管理分散、监控体系搭建困难、运维效率低下、指标无法联合查询、告警无法统一等诸多问题,将多云分散的容器集群监控进行统一管理、统一配置、统一查询、统一告警等,极大地提升多云容器集群监控的效率,节省 SRE 人员投入的成本,让 SRE 人员减少重复性劳动,更加聚焦于业务。

  • 费用低廉,阿里云 Promethues 监控产品提供免费的基础指标采集,可覆盖容器集群的基础监控需求。小规模容器集群可采用按量计费模式,保证业务得到有效监控的同时,最大程度降低监控费用支出。大规模集群,可采用包年包月模式,相比于按量计费,包年包月模式可有效减少约 60%成本,将大规模集群监控成本极大地降低。

  • 资源占用较少,阿里云 Prometheus 监控产品,仅在用户集群中轻量化部署 Agent,且具备自动弹性扩容能力,2C4G 资源申请量可采集 600 万指标。开源 Prometheus 的服务发现模块存在对集群内 APIServer 造成较大压力问题,而阿里云 Prometheus 进行了专项优化,有效减轻 APIServer 的压力。最终实现最小资源占用,最大化采集容器集群监控指标,为业务保驾护航。

优势一:性能提升

image

优势二:多集群 Prometheus 聚合查询

提供多个阿里云 Prometheus 实例或自建 Prometheus 集群的虚拟聚合实例,针对这个虚拟聚合实例可以实现 Prometheus 指标的统一查询,统一 Grafana 数据源和统一告警。

  • 解决开源的 Prometheus 数据分散保存,Grafana 中需要配置多个数据源地址,不同的数据源无法高效地整合在一起,很难以整体的视角分析应用在全球各个地域的运行状况。

  • 用户无需在每个区域自行部署 Prometheus Server,只需要以 remote write 方式将数据上报至阿里云 Prometheus,也无需部署 Thanos 中的大量组件,无其他组件部署的依赖即可使用 GlobalView 的功能。

  • 全局查询基于分布式的查询,并进行了性能优化,针对大查询可以随时实现水平、纵向扩缩,查询性能、稳定性较好。

  • 开箱即用式方式,基于阿里云 Prometheus 监控产品,无需任何其他组件额外部署,运维成本极低。 

如下为跨可用区,聚合两个 Pormetheus 实例:

image

优势三:轻量化安装

对比开源安装方式,阿里云 Prometheus 监控产品,仅需在用户容器集群内安装轻量化探针,后端存储采用托管模式,可节省业务容器集群资源占用。

image

优势四:集成 Grafana 服务

阿里云 Grafana 服务是云原生的运维数据可视化平台,提供免运维和快速启动 Grafana 运行环境的能力,具备如下优势:

  • 默认集成 Prometheus、SLS 等各类阿里云服务数据源,并支持第三方或自建数据源,快速建立一体化运维可视化看板。

  • 独享实例与高 SLA 保障,确保监控体系高可用与弹性,让运维监控更可靠,维护成本更低。

  • 打通阿里云账号 SSO 与自建账号体系,保障数据安全同时,实现数据源与大盘的精细化管理。

  • 能够解决数据汇总难:各类云服务监控数据难以汇总统一,增加运维难度运维监控困难:各类云服务核心指标监控图表需要重复配置告警管理难:各类云服务的告警规则相互分散,难以统一管理 。

  • 能够提供默认集成:默认集成弹性计算、数据库等阿里云核心云服务统一大盘:建立跨数据源统一看板体系,让可视化运维更精细统一告警:轻松搭建一体化报警体系,提升报警管理效率 。

优势五:集成告警系统

阿里云 Prometheus 服务默认对接了阿里云上的统一告警系统,统一告警具有以下特点

  • 全球化

    • 告警规则模板全球化,一站式为全球事件配置告警。

    • 联系人、通知策略全球化,一次配置全球生效。

  • 集成事件后管理更高效

    • 告警管理默认支持一键化集成阿里云常见的监控工具,并支持更多的监控工具手动接入,方便统一维护。

    • 事件接入模块稳定,能提供 7×24 小时的无间断事件处理服务。

    • 处理海量事件数据时可以保证低延时。

  • 及时准确地将告警通知给联系人

    • 配置通知规则,对事件合并后再发送告警通知,减少运维人员出现通知疲劳的情况。

    • 根据告警的紧急程度选择邮件、短信、电话、钉钉等不同的通知方式,来提醒联系人处理告警。

    • 通过升级通知对长时间没有处理的告警进行多次提醒,保证告警及时解决。

  • 帮助您快速便捷地管理告警

    • 联系人能通过钉钉随时处理告警。

    • 使用通用告警格式,联系人能更好地分析告警。

    • 多个联系人通过钉钉协同处理。

  • 告警事件再加工

    • 通过事件处理流编排简单的处理流程,对任意告警源上报的告警事件进行再加工,以满足差异化的事件数据处理需求。

    • 事件管理支持对任意告警源上报的告警事件去重、压缩、降噪、静默,从而收敛告警,减少告警风暴的产生。 

  • 告警配置管理

    • 提供容器集群常见核心指标监控模板,同时提供告警模板功能可自行生成和下发告警模版,实现快速批量化配置告警。

    • 提供页面化告警配置引导和预览,可实时查看告警条件匹配事件,并进行精细化配置。

  • 统计告警数据,实时分析处理情况,改进告警处理效率,分析业务运行情况

多云容器集群接入阿里云 Prometheus 示例

纳管多云容器集群

前提条件

  • 登录 RAM 管理控制台和弹性伸缩控制台开通相应的服务。

  • 支持通过公网和内网接入 

创建阿里云注册集群

  1. 登录容器服务管理控制台。

  2. 在控制台左侧导航栏中,单击集群

  3. 集群列表页面中,单击页面右上角的创建集群

  4. 注册集群页签,完成创建集群配置项。  1669969641724-b6e6e5fe-d74b-4a31-a68f-eecf800f4305

  5. 完成上述选择后,在页面右侧单击创建集群,待集群创建成功后,可以在集群列表,看到创建的集群类型为注册集群且处于等待接入状态。 1669969648215-9e9e9762-fe80-47cf-8dfa-e1971d05ef21

将多云集群纳管到阿里云注册集群

如下以腾讯云的 Kubernetes 为例,介绍如何将腾讯云的 Kubernetes 集群通过阿里云的注册集群进行统一纳管,进而使用阿里云Arms Prometheus监控进行指标抓取和展示。

1)在上步创建的注册集群registCluster为例子,右侧单击操作列下的详情

image

2)在集群信息页面单击连接信息页签,查看公网集群导入方式点击右侧复制。

image

3)在腾讯云集群页面选择目标集群,点击右上角YAML创建资源,将上步复制的连接信息填入点击完成进行代理安装。

image image

4)腾讯云集群页面查看 Deployment,ack-cluster-agent 处于正常运行状态代表代理安装成功。

image

5)阿里云容器集群管理页面查看上述创建的注册集群处于运行中,代表纳管成功。

image

安装 Prometheus 组件

1)登录容器服务管理控制台,单击运维管理>组件管理>ack-arms-prometheus 组件,单击安装 ARMS Prometheus 组件

image

2)腾讯云容器集群页面,单击工作负载>Deployment>选择 arms-prom 命名空间,查看 arms-prometheus-ack-arms-prometheus 处于运行状态代表组件安装成功

image

3)登录应用实时监控服务 ARMS 页面,选择Prometheus 监控 >Prometheus 实例列表>选择上述创建的 registCluster 注册集群。左侧服务发现,查看默认配置的 Targets 处于采集状态,代表 ARMS Prometheus 组件正在采集 Metrics 指标数据,点击可查看具体源数据。

image

查看监控数据

默认集成常用 Grafana 大盘,包括 Deployment 大盘、Daemonst 大盘等。

image

点击具体大盘可查看具体 Metrics 指标数据,例如点击查看 Deployment 大盘。

image

查看 ARMS 告警

默认开启众多容器集群核心指标监控,免去自行开启产生遗漏问题。

image

默认集成众多核心指标告警模板,可根据自行需求进行开启,免去自行编写 PromQL 步骤。

image

关于阿里云 Prometheus 监控

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

image

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

阿里云注册集群开通方式:

https://help.aliyun.com/document_detail/121053.html

阿里云 Prometheus 监控产品开通方式:

https://help.aliyun.com/product/122122.html

阿里云 Prometheus 全新推出包年包月模式,相比按量付费至少节省 67%成本,更有首月免费的优惠,点击阅读原文查看。

相关链接

[1] RAM管理控制台

https://ram.console.aliyun.com/

[2] 弹性伸缩控制台

https://essnew.console.aliyun.com/

[3] 接入注册集群的目标集群对于网络连通性有什么要求?

https://help.aliyun.com/document_detail/128419.htm#section-uys-2f5-s9k

[4] 容器服务管理控制台

https://cs.console.aliyun.com/

[5] 应用实时监控服务ARMS页面

https://arms.console.aliyun.com/#/home

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
20天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
108 3
|
10天前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 监控关注的核心指标包括 Master 和 RegionServer 的进程存在性、RPC 请求数、JVM 内存使用率、磁盘和网络错误、延迟和吞吐量、资源利用率及 JVM 使用信息。通过 Grafana 可视化和告警规则,帮助管理员实时监控集群性能和健康状况。
|
19天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
92 0
|
2月前
|
Prometheus 监控 Cloud Native
介绍如何使用Prometheus进行监控
介绍如何使用Prometheus进行监控
207 3
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
74 0
|
2月前
|
Prometheus Kubernetes 监控
prometheus学习笔记之集群内服务发现环境准备
本文介绍了在Kubernetes集群中部署Prometheus监控系统的详细步骤。首先创建用于监控的命名空间,并配置Docker以顺利下载镜像。接着,通过DaemonSet方式在集群中部署Node Exporter,确保每个节点上的指标都能被收集。然后,安装并配置NFS存储类别,以便为Prometheus提供持久化存储。最后,详细展示了如何在Kubernetes中部署Prometheus服务器,包括创建相关的配置文件、部署服务、设置角色权限以及暴露服务等
|
2月前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--k8s集群使用容器镜像仓库Harbor
本文介绍了在CentOS 7.9环境下部署Harbor容器镜像仓库,并将其集成到Kubernetes集群的过程。环境中包含一台Master节点和两台Node节点,均已部署好K8s集群。首先详细讲述了在Harbor节点上安装Docker和docker-compose,接着通过下载Harbor离线安装包并配置相关参数完成Harbor的部署。随后介绍了如何通过secret和serviceaccount两种方式让Kubernetes集群使用Harbor作为镜像仓库,包括创建secret、配置节点、上传镜像以及创建Pod等步骤。最后验证了Pod能否成功从Harbor拉取镜像运行。
115 0
|
2月前
|
Prometheus 监控 Cloud Native
prometheus监控ceph集群环境
文章介绍了如何使用Prometheus监控Ceph集群环境,包括启用Prometheus模块、验证模块启用成功、访问Ceph的exporter、修改Prometheus配置文件、热加载配置,以及Grafana采集数据的方法。同时,还涵盖了监控Ceph集群宿主机的步骤,如在所有节点安装node-exporter、修改Prometheus配置文件、热加载配置,以及Grafana采集数据。
155 6
|
2月前
|
Prometheus 监控 Cloud Native
Ceph Reef(18.2.X)的内置Prometheus监控集群
这篇文章是关于Ceph Reef(18.2.X)版本中内置Prometheus监控集群的使用方法,包括如何查看集群架构、访问Prometheus、Grafana、Node-Exporter和Alertmanager的Web界面,以及推荐阅读的自实现Prometheus监控资源链接。
68 2