Gartner 推荐的容器监控系统管理实践——嘉为蓝鲸监控中心

直达原文:Gartner推荐的容器监控系统管理实践——嘉为蓝鲸监控中心
01.引言:
在企业云原生转型加速推进的背景下,高效的容器监控已成为保障集群稳定性的关键刚需。嘉为蓝鲸全栈智能可观测中心・鲸眼系列的监控产品—— 嘉为蓝鲸监控中心,凭借在容器监控与运维监控领域的技术创新与实践积累,曾多次获得 Gartner 这一国际权威机构的推荐:
2024 年,嘉为蓝鲸入选《2024 年中国基础设施战略成熟度曲线》报告,成为中国 AIOps、中国 APM 和可观测性、OpenTelemetry 三大领域的代表厂商;
2022 年,Gartner 在《Toolkit: Vendor Identification for Infrastructure Monitoring Tools in China》中对其予以推荐;
2025 年,嘉为蓝鲸日志中心与应用性能观测中心(APM)更入选 Gartner《中国智能 IT 监控与日志分析工具市场指南》,成为专用工具提供商。
容器监控系统通过全链路观测能力与智能化告警体系,精准解决容器环境动态性、数据海量性等监控痛点,为企业构建云原生时代的容器监控体系提供兼具技术公信力与实践价值的解决方案。
1)容器监控痛点
近年来,Kubernetes 作为许多公司云原生改造的首选容器编排平台,越来越多的开发和运维工作都围绕 Kubernetes 展开,保证 Kubernetes 的稳定性和可用性是基本需求,而其中的核心是如何有效地监控 Kubernetes 集群,确保整个集群的高可观测性容器监控常常会有以下痛点:
动态环境与复杂架构:容器化环境通常是高度动态和分布式的,这意味着容器生命周期短且频繁变化,同时应用由多个微服务组件构成,分布在多个节点上。这种动态性和复杂性要求监控工具能够快速适应环境变化,并有效地追踪跨多个服务和节点的问题;
数据量大与性能开销:高频率的数据收集和大量的日志、指标数据会迅速增长,给存储和处理带来挑战。另外,监控系统本身引入的性能开销也需要谨慎管理,以免影响应用程序的正常运行;
多层次监控需求:容器监控需要覆盖多个层次,包括底层基础设施、容器运行时、容器编排平台,以及应用层面的性能指标和日志数据。

2)场景介绍
容器监控,泛指在容器场景下,对容器环境的指标、事件等进行上报。目前市面上的容器管理平台,基本被 Kubernetes 所统一,本文将核心围绕 Kubernetes 的场景及特性,介绍嘉为蓝鲸监控中心(下称“监控中心”)是如何实现容器监控的。
不同于常见的主机监控、组件监控等成就,容器监控具备以下几个鲜明的监控特性:
监控目标是动态的,无法通过传统的方式对指定目标 IP、目标端口进行监控;
由于容器的频繁销毁与创建,监控目标展现出极高的动态性,缺乏有效的监控手段将直接导致难以追溯;
无需关注容器具体运行在哪台机器上;
容器的数量多,上报的指标量级多。
围绕着上面的特性,容器监控的诉求主要分为以下几点:
(1)集群本身的运行状态监控,监控的目的是随时关注容量、及时发现异常,让集群的运维者能够快速修复集群问题。
对 Kubernetes 集群状态的监控,如 Master 集群的 etcd,Kube-api、Kube-scheduler、Kube-proxy、Kubelet 等核心服务的监控;
对 Node 节点状态的监控,如 CPU、内存、网卡等监控;
对资源的统计需求,如 Cluster、NameSpace、 Node、Pod 数量的统计;
对 Workload、Service、Pod、Container 运行指标和状态监控。
(2)Kubernetes 事件监控记录了组件的某个时间的动作,用于展示集群内发生的情况,当集群内的资源状态发生变化时产生新的 event,对容器事件的收集、监控,避免集群或节点可用性产生的影响。
容器事件:如容器启停状态、拉取/创建/启动容器失败等;
节点事件:如节点添加/删除、节点状态变化、节点可用性等;
Pod 事件:如创建 Pod 成功/失败、删除 pod 成功/失败等。
(3)自定义指标的监控:
对于运行在容器中的服务而言,仅仅依赖运行环境的指标正常性来评估服务状态是不足够的。因为即便运行环境(如 CPU、内存等)指标表现正常,因此需要上报服务本身的指标;
服务的指标,如接口的成功、失败、饱和度、错误率等,通常这类指标对应用开发来说,更具有实际参考价值,更能够对业务有帮助。

3)产品方案
对于 K8s 的监控,其实已经有一套原生的 Prometheus 方案,方案本身采集的指标相对完善,但是核心问题是对集群性能有较大的占用,且整体部署方式相对独立,采集的指标无法结合其他监控产品进行有效的消费。
为了让大家统一集中管理监控,将容器监控与主机监控,业务监控等融为一体,监控中心推出了容器场景的监控能力。可以解决以下问题:
避免 Prometheus 服务在高负载情况下 OOM,查询无响应,可用性不高问题;
无需每个 Kubernetes 集群独立部署 Prometheus;
解决容器监控和业务监控割裂使用的问题,集中式查看监控、告警,让监控数据在统一的地方消费使用,无需同时维护多套监控系统。

得益于监控中心化的存储能力,Bkmonitor-operator 较 Prometheus-operator 方案,对集群内资源消耗更低。
4)效果展示
(1)容器多指标计算检测
容器监控的指标数量庞杂,许多指标均需经过二次计算,甚至无法通过常规的配置方式配置检测策略。对此,监控中心同步提供以下两个检测能力:
(2)衍生指标管理
支持衍生指标能力,允许用户通过指标计算自定义衍生指标。要知道,在容器内,许多上层资源指标都是由下层指标汇聚计算而来(比如 Cluster 的性能指标,其实是 Pod 性能指标汇聚计算获得),通过衍生指标功能,用户可以预定义上层汇聚指标,并在策略配置,可视化展示时直接消费,而不需要每次都重复配置计算规则。

(3)兼容 PromQL 表达式
完全兼容 PromQL 检测预计,实现更多样化的检测逻辑,应对容器监控下复杂的监控检测需求。

(4)容器资源监控
监控中心支持对容器内各类资源对象进行发现,并采集相关性能指标,包括以下对象:
Cluster
Workload (DaemonSet、Deployment、StatefulSet、Job、CrontJob、GameStatefulSet、GameDeployment)
Pod
Container
Node

支持按照容器实例查看对应的实时指标视图、告警数据以及实例本身的信息。

(5)容器组件服务监控
对于容器上部署的组件服务,监控中心支持通过多种方式进行监控:
支持 serviceMonitor(主推)和 PodMonitor;
sidecar 方式( 以 sidecar 模式部署 exporter 抓取器暴露出 metrics,结合 serviceMonitor 进行采集);
中心远程统一采集 (组件本身暴露了 metrics,结合 serviceMonitor 进行采集)。

支持检索查看上报后的指标实时数据。

(6)容器日志监控
对于容器上的日志,监控中心支持采集以下类型的日志:
支持采集在容器上运行的文件日志,即应用/服务产生的文本日志,例如:Nginx 日志、业务日志等;
支持采集 K8s Node 日志;
支持 Kubernetes 的标准输出,即 Pod 容器的标准输出,包含标准输出信息(stdout)和标准出错信息(stderr),输出路径为容器的/dev/termination-log 文件。

配置容器采集时可根据需要选择指定的 Pods。

5)最佳实践
容器监控场景由于自身的复杂性,即使在技术上我们实现了对目标的全量监控、采集,但是如何配置有效的告警依然是用户实施容器监控的一大难点。
为了帮助在容器监控场景下经验不深的用户,监控中心不仅内置了默认的容器监控策略、容器仪表盘,同时还提供了详尽的指标说明文档和最佳实践配置指引,帮助用户全面了解容器监控数据。


评论