适用于Kubernetes的9大开源监控工具

本文概述

  • Prometheus
  • Kubewatch
  • Jaeger
  • cAdvisor
  • Cabin
  • Telepresence
  • Weave Scope
  • Grafana
  • Zabbix
选择正确的工具来成功监控Kubernetes!
【适用于Kubernetes的9大开源监控工具】Kubernetes是一个可投入生产的开放源代码平台, 它利用Google在容器编排方面的丰富经验设计而成, 并结合了公众的最佳创意。它计划自动执行部署, 扩展和操作应用程序容器。
使用现代的方式来构建和运行应用程序, 你的控制和可观察性策略需要改进, 因此你还需要使用工具。传统的基础架构监视工具可能还不够, 你需要一个专门的Kubernetes监视系统, 如下所示。
一些与日志有关的帮助, 其他与指标有关的帮助。有些提供了从鸟瞰角度操作Kubernetes的界面。有些是Kubernetes原生的, 而另一些则更不可知。
Prometheus Prometheus是Kubernetes使用的最受欢迎和最佳的监视工具之一。该工具由SoundCloud早期开发, 后来捐赠给了CNCF。 Google Borg Monitor激发了这一灵感。
适用于Kubernetes的9大开源监控工具

文章图片
好吧, Prometheus将所有数据按时间顺序存储。简而言之, 使Prometheus在其他时间序列数据库中脱颖而出的是它的内置警报机制, 多维数据模型, 拉与推模型, PromQL(Prometheus查询语言), 当然还有社区。
Prometheus的其他一些功能包括:
  • 不依赖分布式存储;
  • 通过服务发现或静态配置发现目标
  • PromQL, 一种灵活的查询语言, 可利用此维度
  • 单服务器节点是自治的
  • 时间序列收集通过HTTP上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 具有按指标名称和键/值对分析的时间序列数据的多维数据模型
  • 并且, 多种形式的图形和仪表板支持
学习Prometheus的最好方法是在实验室服务器上安装并试用它。他们有大量的文档, 但是, 如果你正在寻找基于视频的学习方法, 请查看此Udemy课程。
Kubewatch Kubewatch是一个Kubernetes观察者, 它在Slack频道中发布事件通知。该工具为你提供确定需要监视的资源的工具。它是在Golang中创建的, 并使用Kubernetes客户端库与Kubernetes API服务器连接。该库是观看Kubernetes事件的基础。
适用于Kubernetes的9大开源监控工具

文章图片
kubewatch易于配置, 可以使用头盔或系统部署进行部署。更清楚地说, kubewatch将查看你希望观察的特定Kubernetes资源所需的更改-部署, 守护进程集, pod, 服务, 副本集, 服务, 复制控制器, 机密和配置映射。
Jaeger 分布式跟踪正稳步增长到对Kubernetes环境进行监视和故障排除。 Jaeger是一个追踪系统, 由Uber Technologies发布。它用于监视事务和复杂的分布式系统中的故障排除。
适用于Kubernetes的9大开源监控工具

文章图片
Jaeger具有针对Java, Python, Node和C ++的基于OpenTracing的工具。它使用一致的前期采样以及每个服务/端点的概率, 并支持多个存储后端-Cassandra, Elasticsearch, Kafka和内存。
Jaeger的其他一些功能包括:
  • 分布式交易监控
  • 分布式上下文传播
  • 性能/延迟优化
  • 根本原因分析
  • 服务依赖性分析
cAdvisor cAdvisor设计用于组装, 处理和导出有关正在运行的容器的资源使用情况和生产信息。它还被开发成Kubernetes, 并集成到Kubelet二进制文件中。它使用简单(开箱即用地公开了Prometheus指标), 但不够健壮, 无法被认为是一种全面的监控解决方案。
适用于Kubernetes的9大开源监控工具

文章图片
与其他服务器不同, cAdvisor不在每个吊舱中部署, 而是在节点级别部署。它会自动确定系统上运行的所有容器, 并收集系统指标, 例如内存, CPU, 网络等。
cAdvisor是一个基本工具, 以下是其一些功能。
  • 对Docker容器的本地支持, 并有助于其他容器类型。
  • 支持将统计信息导出到各种存储插件, 例如。 InfluxDB等,
  • 它通过分析计算机上的” root” 容器来提供整个计算机的使用情况。
  • 支持在Docker或任何其他容器之外独立运行。
  • cAdvisor在每个节点上运行。它会自动发现给定节点中的所有容器, 并收集CPU, 文件系统和网络使用情况统计信息。
  • 可以在Web-UI上查看指标, 该UI导出有关系统上所有容器的实时信息。
Cabin Cabin是Kubernetes最好的原生移动仪表板应用程序。Cabin UI是使用React Native开发的, 因此可以同时运行iOS和Android设备。它是移动助手, 它提供细粒度的操作来操纵Kubernetes资源。Cabin应用程序是触控式的。
例如, 你还可以通过简单的向左滑动来删除窗格。你还可以通过手指滚动来扩展部署。
适用于Kubernetes的9大开源监控工具

文章图片
其他一些功能:
  • 创建基本部署扩展部署和复制控制器
  • 切换服务类型
  • 通过服务公开部署
  • 与GKE集成以实现单击集群配置
  • 访问多个容器中的日志
  • 删除并添加标签
  • 在浏览器中打开NodePort服务
  • 在容器中执行命令
Telepresence Telepresence使你可以在将特定服务连接到远程Kubernetes群集时在本地运行特定服务。这使从事多服务操作的开发人员可以采用本地安装的任何工具来检查/调试/编辑服务。例如, 你可以运行调试器或IDE。
适用于Kubernetes的9大开源监控工具

文章图片
它也使开发人员可以快速完成特定服务的本地开发, 即使该服务依赖于群集中的单独服务。过渡到你的服务并保存, 你可以立即发现正在使用的新服务。
远程呈现是一个令人印象深刻的本地开发环境, 用于在Kubernetes中运行的服务。实时调试部分是独特的, 并且发展很快。以下是其更多功能。
  • 允许容器中运行的代码连接到主机上运行的IDE或调试器。
  • Telepresence在观察OpenShift群集时会使用特定于OpenShift的代理映像。
  • Telepresence还支持与Pod中其他容器之间的转发流量。
  • Telepresence使用Docker可访问目录作为临时目录。
Weave Scope Weave Scope是Kubernetes的故障排除和监视工具。它为你的应用程序和基础结构提供了逻辑拓扑, 这有助于你考虑, 监视和控制基于容器的, 基于微服务的应用程序。
适用于Kubernetes的9大开源监控工具

文章图片
它提供了自顶向下的视图, 可查看你的应用程序以及完整的基础架构。它授权你实时确定分布式容器化应用程序的任何问题, 因为该应用程序已部署到云提供商。
Weave Scope的一些功能包括:
  • 支持任何部署样式(本地, 托管或混合), 并具有收集和报告主机/容器指标的能力
  • 汇总来自Kubernetes的指标, 事件和标签
  • 实时上下文指标
  • 可以通过CPU和内存管理来过滤节点, 以便你可以使用最多的资源快速识别容器。
Grafana Grafana用于可视化指标, 但也可以用作警报工具。 Grafana可以在Slack, Webhook, 邮件或其他通信渠道上发出警报。另一个关键原因是数据的来源:Grafana可以同时查询多个实体。
适用于Kubernetes的9大开源监控工具

文章图片
你可以从诸如ElasticSearch之类的数据库中查询, 也可以从诸如Cloudwatch之类的监视工具中查询, 并在其上设置警报。其他一些功能如下。
  • 警报管理器处理警报部分
  • 轻松安装出口商
  • 该应用程序还使用Kubernetes标签来过滤Pod指标。
  • Pod / Container仪表板利用pod标签, 以便轻松找到相关的一个或多个pod。
Zabbix 使用Zabbix, 从系统构建几乎无限类型的数据是可行的。可以同时控制成千上万台服务器, 虚拟机和网络设备的高性能实时监控系统。
适用于Kubernetes的9大开源监控工具

文章图片
除了保存数据外, 还可以使用可视化功能, 以及用于报警目的的极其灵活的数据统计方法。
Zabbix的一些功能包括:
  • 根本原因分析
  • Zabbix帮助将数据保留为JSON格式, 因此许多应用程序也可以使用它。
  • 实时监控
  • 强烈建议将Zabbix代理用于大规模生产系统。
  • 深入报告
  • 低级发现会自动检查新节点, 而不会费力。
  • 高度可配置和可扩展。
Zabbix具有重要意义, 不仅是Kubernetes, 而且也适合监视基础架构和应用程序指标。如果你有兴趣学习Zabbix, 请查看此精彩课程。
总结
选择正确的监控工具至关重要。但猜猜怎么了?最重要的是可以免费试用, 为什么不购买一些云虚拟机, 看看对你的Kubernetes监控有效呢?
祝你监控顺利, 排除故障!

    推荐阅读