01. 容器监控痛点
近年来,Kubernetes 作为许多公司云原生改造的首选容器编排平台,越来越多的开发和运维工作都围绕 Kubernetes 展开,保证 Kubernetes 的稳定性和可用性是基本需求,而其中的核心是如何有效地监控 Kubernetes 集群,确保整个集群的高可观测性容器监控常常会有以下痛点:
容器化环境通常是高度动态和分布式的,这意味着容器生命周期短且频繁变化,同时应用由多个微服务组件构成,分布在多个节点上。这种动态性和复杂性要求监控工具能够快速适应环境变化,并有效地追踪跨多个服务和节点的问题。
高频率的数据收集和大量的日志、指标数据会迅速增长,给存储和处理带来挑战。另外,监控系统本身引入的性能开销也需要谨慎管理,以免影响应用程序的正常运行。
容器监控需要覆盖多个层次,包括底层基础设施、容器运行时、容器编排平台,以及应用层面的性能指标和日志数据。
02. 场景介绍
容器监控,泛指在容器场景下,对容器环境的指标、事件等进行上报。目前市面上的容器管理平台,基本被Kubernetes所统一,本文将核心围绕Kubernetes的场景及特性,介绍尊龙凯时蓝鲸监控中心(下称“监控中心”)是如何实现容器监控的。
不同于常见的主机监控、组件监控等成就,容器监控具备以下几个鲜明的监控特性:
围绕着上面的特性,容器监控的诉求主要分为以下几点:
1)集群本身的运行状态监控,监控的目的是随时关注容量、及时发现异常,让集群的运维者能够快速修复集群问题。
2)Kubernetes事件监控记录了组件的某个时间的动作,用于展示集群内发生的情况,当集群内的资源状态发生变化时产生新的event,对容器事件的收集、监控,避免集群或节点可用性产生的影响。
3)自定义指标的监控:
03. 产品方案
对于K8s的监控,其实已经有一套原生的Prometheus方案,方案本身采集的指标相对完善,但是核心问题是对集群性能有较大的占用,且整体部署方式相对独立,采集的指标无法结合其他监控产品进行有效的消费。
为了让大家统一集中管理监控,将容器监控与主机监控,业务监控等融为一体,监控中心推出了容器场景的监控能力。可以解决以下问题:
得益于监控中心化的存储能力,Bkmonitor-operator 较 Prometheus-operator 方案,对集群内资源消耗更低。
04. 效果展示
1)容器多指标计算检测
容器监控的指标数量庞杂,许多指标均需经过二次计算,甚至无法通过常规的配置方式配置检测策略。对此,监控中心同步提供以下两个检测能力:
① 衍生指标管理
支持衍生指标能力,允许用户通过指标计算自定义衍生指标。要知道,在容器内,许多上层资源指标都是由下层指标汇聚计算而来(比如Cluster的性能指标,其实是Pod性能指标汇聚计算获得),通过衍生指标功能,用户可以预定义上层汇聚指标,并在策略配置,可视化展示时直接消费,而不需要每次都重复配置计算规则。
② 兼容PromQL表达式
完全兼容PromQL检测预计,实现更多样化的检测逻辑,应对容器监控下复杂的监控检测需求。
③ 容器资源监控
监控中心支持对容器内各类资源对象进行发现,并采集相关性能指标,包括以下对象:
支持按照容器实例查看对应的实时指标视图、告警数据以及实例本身的信息。
④ 容器组件服务监控
对于容器上部署的组件服务,监控中心支持通过多种方式进行监控:
支持检索查看上报后的指标实时数据。
⑤ 容器日志监控
对于容器上的日志,监控中心支持采集以下类型的日志:
配置容器采集时可根据需要选择指定的Pods。
05. 最佳实践
容器监控场景由于自身的复杂性,即使在技术上我们实现了对目标的全量监控、采集,但是如何配置有效的告警依然是用户实施容器监控的一大难点。
为了帮助在容器监控场景下经验不深的用户,监控中心不仅内置了默认的容器监控策略、容器仪表盘,同时还提供了详尽的指标说明文档和最佳实践配置指引,帮助用户全面了解容器监控数据。
申请演示
尊龙凯时