前9名开源Kubernetes监控工具

选择适合成功监控Kubernetes的正确工具!

https://yaoweibin.cn/kubernetes-monitoring-tools/Kubernetes是一个可投入生产的开源平台,设计灵感来自Google在容器编排方面的经验,并结合了来自公众的最佳理念。它旨在自动化部署、扩展和运行应用程序容器。

随着构建和运行应用程序的现代方式,您的控制和可观察策略需要进步,以及您所使用的工具。传统的https://yaoweibin.cn/kubernetes-monitoring-tools/infrastructure monitoring tools可能不足够,您需要一种专门的Kubernetes监控系统,如下所示。

一些可以帮助处理日志,其他一些可以处理指标。有些提供了从鸟瞰视角操作Kubernetes的界面。有些是Kubernetes原生的,而其他一些则更加通用。

让我们来探索以下用于监控https://yaoweibin.cn/kubernetes-monitoring-tools/Kubernetes的工具。

Prometheus + Grafana

https://yaoweibin.cn/kubernetes-monitoring-tools/Prometheus是与Kubernetes一起使用的最流行和最佳监控工具之一。该工具由SoundCloud早期开发,后来捐赠给CNCF。它的灵感源自Google的Borg Monitor。

嗯,Prometheus将所有数据存储为时间序列。简而言之,使Prometheus在其他https://yaoweibin.cn/kubernetes-monitoring-tools/time-series databases中脱颖而出的是其内置的警报机制、多维数据模型、拉取模型与推送模型、PromQL(Prometheus查询语言)以及不断壮大的社区。

Prometheus的一些其他特点包括:

  • 不依赖于分布式存储;
  • 通过服务发现或静态配置发现目标;
  • PromQL是一种灵活的查询语言,可以利用这种多维度特性;
  • 单个服务器节点是自治的;
  • 时间序列的收集通过HTTP的拉取模型完成;
  • 通过中间网关支持推送时间序列;
  • 具有按度量名称和键值对分析的多维数据模型;
  • 以及多种图形和仪表盘支持。

学习Prometheus的最佳方法是https://yaoweibin.cn/kubernetes-monitoring-tools/<a href="https://yaoweibin.cn/kubernetes-monitoring-tools/install it on your dev server“>阅读官方文档并进行实际操作。他们有很棒的文档,但如果您想要基于视频的学习,可以查看这个https://yaoweibin.cn/kubernetes-monitoring-tools/<a href="https://yaoweibin.cn/kubernetes-monitoring-tools/Udemy course“>视频教程。

您可以使用https://yaoweibin.cn/kubernetes-monitoring-tools/Kube Prometheus,它提供端到端的集群监控。或者,您可以使用https://yaoweibin.cn/kubernetes-monitoring-tools/Kube State Metrics来暴露对象的状态。

为了可视化数据,您可以使用https://yaoweibin.cn/kubernetes-monitoring-tools/Grafana

https://yaoweibin.cn/kubernetes-monitoring-tools/Grafana用于可视化指标,同时也是一个警报工具。Grafana可以通过Slack、Webhook、电子邮件或其他通信渠道发出警报。另一个关键原因是您的数据来源:Grafana可以同时查询多个实体。

您可以从Grafana查询Prometheus指标并可视化它们,创建仪表盘,并按需设置警报。Grafana针对Kubernetes有一个https://yaoweibin.cn/kubernetes-monitoring-tools/<a href="https://yaoweibin.cn/kubernetes-monitoring-tools/plugin“>插件,并且有一个漂亮的https://yaoweibin.cn/kubernetes-monitoring-tools/<a href="https://yaoweibin.cn/kubernetes-monitoring-tools/dashboard“>用户界面。

通过结合Prometheus和Grafana,您可以为生产系统实现出色的Kubernetes监控水平。

Checkmk

最新版本的https://yaoweibin.cn/kubernetes-monitoring-tools/Checkmk包括完全改进的Kubernetes监控功能,可以立即分析和监控容器基础架构的动态相互关系。这提供了对所有Kubernetes对象的深入监控,并且非常简单易用。

您无需具备动态基础架构的先前经验,可以在几分钟内设置Kubernetes监控。Checkmk会自动添加所有Kubernetes对象,并可以监控Kubernetes的资源,如集群、代码、部署、Pod、卷、命名空间、守护进程集和有状态集。

监控提供了所有相关数据的预配置仪表板。这使您能够在几分钟内检测资源消耗的瓶颈和异常情况。您还可以创建自己的自定义视图。通过简单点击各种项目,可以在多个视图之间导航。

在Kubernetes中部署Checkmk最简单的方法是使用helm存储库。tribe29提供了一个可以适应用户自己环境的https://yaoweibin.cn/kubernetes-monitoring-tools/template。您可以按照此链接链接_15>开始使用https://yaoweibin.cn/kubernetes-monitoring-tools/free trial of the Checkmk Enterprise Edition

当然,Checkmk并不止于此。借助超过2,000个现成的插件,您可以使用一个工具监控IT基础架构的任何方面。例如,您可以深入了解您的Kubernetes主机系统和编排容器之间的相互关系,并解决问题。使用Checkmk,您可以深入了解CPU、内存、网络带宽和其他指标。

数据的可视化和警报的通信可根据不同团队的要求进行适应。Checkmk还可以与Prometheus、ntop或Datadog等其他监控工具集成。您可以在一个地方获得所有信息,并确保洞察力自动共享。

Checkmk的其他功能包括:

  • 智能警报,了解Kubernetes的自修复功能,并在真正需要采取行动时突出显示关键条件
  • 强大的https://yaoweibin.cn/kubernetes-monitoring-tools/Kubernetes cluster collector,获取所需的所有数据
  • 支持TLS加密以保护您的监控

由于其高性能监控核心和支持分布式监控的能力,Checkmk具有极高的可扩展性。

Kubewatch

https://yaoweibin.cn/kubernetes-monitoring-tools/Kubewatch是一个Kubernetes观察器,它将事件通知发布到Slack频道。这个工具可以帮助您确定需要监控的资源。它是用Golang创建的,并使用Kubernetes客户端库与Kubernetes API服务器连接。该库作为Kubernetes事件观察的基本因素。

kubewatch的配置简单,可以使用helm或系统部署进行部署。更明确地说,kubewatch将查看您希望监视的特定Kubernetes资源所需的更改 – 部署、守护程序集、Pod、服务、副本集、服务、复制控制器、密钥和配置映射。

Jaeger

分布式跟踪稳步发展成为监测和故障排除Kubernetes环境的工具。Uber Technologies发布的https://yaoweibin.cn/kubernetes-monitoring-tools/Jaeger是一个跟踪系统。它用于监视复杂分布式系统中的事务和故障排除。

Jaeger提供基于OpenTracing的Java、Python、Node和C++工具包。它使用一致的前向采样,具有单独的每个服务/端点概率,并支持多个存储后端 – Cassandra、Elasticsearch、Kafka和内存。

Jaeger的其他功能包括:

  • 分布式事务监控
  • 分布式上下文传播
  • 性能/延迟优化
  • 根本原因分析
  • 服务依赖分析

cAdvisor

https://yaoweibin.cn/kubernetes-monitoring-tools/cAdvisor旨在收集、处理和导出有关正在运行的容器的资源使用和生产信息。它也已集成到Kubernetes并与Kubelet二进制文件集成。它使用简单(它提供了开箱即用的Prometheus指标),但不足以被认为是全面监控解决方案。

与其他工具不同,cAdvisor不是在每个Pod上部署,而是在节点级别上部署。它将自动确定系统上运行的所有容器,并收集内存、CPU、网络等系统指标。

cAdvisor是一个基本工具,以下是它的一些功能。

  • 原生支持Docker容器,并支持其他容器类型。
  • 支持将统计数据导出到各种存储插件,例如InfluxDB等。
  • 通过分析主机上的“root”容器,提供整体机器使用情况。
  • 支持在Docker或任何其他容器之外独立运行。
  • cAdvisor在每个节点上运行。它会自动发现给定节点上的所有容器,并收集CPU、文件系统和网络使用统计信息。您可以在Web-UI上查看指标,该界面导出有关系统上所有容器的实时信息。

Telepresence

https://yaoweibin.cn/kubernetes-monitoring-tools/Telepresence允许您在本地运行特定的服务,同时将该服务连接到远程的Kubernetes集群。这使得在多服务操作上工作的开发人员可以采用本地安装的任何工具来检查/调试/编辑您的服务。例如,您可以运行调试器或IDE。

它还允许开发人员在本地快速开发特定的服务,即使该服务依赖于集群中的其他服务。进行过渡到您的服务,保存后,您可以立即看到新服务的运行情况。

Telepresence是一个在Kubernetes中运行的令人印象深刻的本地开发环境。实时调试部分是独特的,并且正在迅速发展。以下是一些更多的功能:

  • 允许在容器中运行的代码连接到主机上运行的IDE或调试器。
  • 当观察到OpenShift集群时,Telepresence会使用特定于OpenShift的代理映像。
  • Telepresence还支持将流量转发到Pod中的其他容器。
  • Telepresence使用可通过Docker访问的目录作为临时目录。

Weave Scope

https://yaoweibin.cn/kubernetes-monitoring-tools/Weave Scope是一个用于Kubernetes的故障排除和监控工具。它创建应用程序和基础架构的逻辑拓扑,使您能够考虑、监控和控制容器化的、基于微服务的应用程序。

它以自上而下的方式显示您的应用程序以及完整的基础架构。它使您能够实时地确定部署到云提供商的分布式容器化应用程序中的任何问题。

Weave Scope的一些功能包括:

  • 支持任何部署类型(本地、托管或混合)并能够收集和报告主机/容器指标
  • 聚合Kubernetes的指标、事件和标签
  • 实时上下文指标
  • 可以按CPU和内存管理来过滤节点,以便您可以快速识别使用最多资源的容器。

Zabbix

通过https://yaoweibin.cn/kubernetes-monitoring-tools/Zabbix,您可以从系统中构建几乎无限种类的数据。它是一个高性能的实时监控系统,可以同时控制数万台服务器、虚拟机和网络设备。

除了保存数据外,Zabbix还提供了可视化功能,以极其灵活的方式来解析数据进行告警。

Zabbix的一些功能包括:

  • 根本原因分析
  • Zabbix帮助将数据保存为JSON格式,因此许多应用程序也可以使用它。
  • 实时监控
  • 对于大规模生产系统,强烈建议使用Zabbix代理。
  • 钻取报告
  • 低级别自动发现可以自动检查新节点,无需任何麻烦。
  • 高度可配置和可扩展。

Zabbix不仅对Kubernetes而且对于监控基础架构和应用程序指标都非常重要。如果您有兴趣学习Zabbix,请查看此https://yaoweibin.cn/kubernetes-monitoring-tools/brilliant course

Kubernetes Dashboard

虽然不是一个监控工具,但是https://yaoweibin.cn/kubernetes-monitoring-tools/Kubernetes Dashboard是一个通用的Kubernetes用户界面,您可以在其中管理和排查Kubernetes集群。

如果您没有任何监控工具,那么仪表板将是一个很好的开始。请查看 https://yaoweibin.cn/kubernetes-monitoring-tools/installation guide

结论

选择正确的 https://yaoweibin.cn/kubernetes-monitoring-tools/Kubernetes tools 是至关重要的。但是猜猜看?所有这些都可以免费试用,为什么不试试看哪种适用于您的Kubernetes监控呢?

愉快的监控和故障排除!

类似文章