本文概述
- Prometheus
- Kubewatch
- Jaeger
- cAdvisor
- Cabin
- Telepresence
- Weave Scope
- Grafana
- Zabbix
【适用于Kubernetes的9大开源监控工具】Kubernetes是一个可投入生产的开放源代码平台, 它利用Google在容器编排方面的丰富经验设计而成, 并结合了公众的最佳创意。它计划自动执行部署, 扩展和操作应用程序容器。
使用现代的方式来构建和运行应用程序, 你的控制和可观察性策略需要改进, 因此你还需要使用工具。传统的基础架构监视工具可能还不够, 你需要一个专门的Kubernetes监视系统, 如下所示。
一些与日志有关的帮助, 其他与指标有关的帮助。有些提供了从鸟瞰角度操作Kubernetes的界面。有些是Kubernetes原生的, 而另一些则更不可知。
Prometheus Prometheus是Kubernetes使用的最受欢迎和最佳的监视工具之一。该工具由SoundCloud早期开发, 后来捐赠给了CNCF。 Google Borg Monitor激发了这一灵感。
文章图片
好吧, Prometheus将所有数据按时间顺序存储。简而言之, 使Prometheus在其他时间序列数据库中脱颖而出的是它的内置警报机制, 多维数据模型, 拉与推模型, PromQL(Prometheus查询语言), 当然还有社区。
Prometheus的其他一些功能包括:
- 不依赖分布式存储;
- 通过服务发现或静态配置发现目标
- PromQL, 一种灵活的查询语言, 可利用此维度
- 单服务器节点是自治的
- 时间序列收集通过HTTP上的拉模型进行
- 通过中间网关支持推送时间序列
- 具有按指标名称和键/值对分析的时间序列数据的多维数据模型
- 并且, 多种形式的图形和仪表板支持
Kubewatch Kubewatch是一个Kubernetes观察者, 它在Slack频道中发布事件通知。该工具为你提供确定需要监视的资源的工具。它是在Golang中创建的, 并使用Kubernetes客户端库与Kubernetes API服务器连接。该库是观看Kubernetes事件的基础。
文章图片
kubewatch易于配置, 可以使用头盔或系统部署进行部署。更清楚地说, kubewatch将查看你希望观察的特定Kubernetes资源所需的更改-部署, 守护进程集, pod, 服务, 副本集, 服务, 复制控制器, 机密和配置映射。
Jaeger 分布式跟踪正稳步增长到对Kubernetes环境进行监视和故障排除。 Jaeger是一个追踪系统, 由Uber Technologies发布。它用于监视事务和复杂的分布式系统中的故障排除。
文章图片
Jaeger具有针对Java, Python, Node和C ++的基于OpenTracing的工具。它使用一致的前期采样以及每个服务/端点的概率, 并支持多个存储后端-Cassandra, Elasticsearch, Kafka和内存。
Jaeger的其他一些功能包括:
- 分布式交易监控
- 分布式上下文传播
- 性能/延迟优化
- 根本原因分析
- 服务依赖性分析
文章图片
与其他服务器不同, cAdvisor不在每个吊舱中部署, 而是在节点级别部署。它会自动确定系统上运行的所有容器, 并收集系统指标, 例如内存, CPU, 网络等。
cAdvisor是一个基本工具, 以下是其一些功能。
- 对Docker容器的本地支持, 并有助于其他容器类型。
- 支持将统计信息导出到各种存储插件, 例如。 InfluxDB等,
- 它通过分析计算机上的” root” 容器来提供整个计算机的使用情况。
- 支持在Docker或任何其他容器之外独立运行。
- cAdvisor在每个节点上运行。它会自动发现给定节点中的所有容器, 并收集CPU, 文件系统和网络使用情况统计信息。
- 可以在Web-UI上查看指标, 该UI导出有关系统上所有容器的实时信息。
例如, 你还可以通过简单的向左滑动来删除窗格。你还可以通过手指滚动来扩展部署。
文章图片
其他一些功能:
- 创建基本部署扩展部署和复制控制器
- 切换服务类型
- 通过服务公开部署
- 与GKE集成以实现单击集群配置
- 访问多个容器中的日志
- 删除并添加标签
- 在浏览器中打开NodePort服务
- 在容器中执行命令
文章图片
它也使开发人员可以快速完成特定服务的本地开发, 即使该服务依赖于群集中的单独服务。过渡到你的服务并保存, 你可以立即发现正在使用的新服务。
远程呈现是一个令人印象深刻的本地开发环境, 用于在Kubernetes中运行的服务。实时调试部分是独特的, 并且发展很快。以下是其更多功能。
- 允许容器中运行的代码连接到主机上运行的IDE或调试器。
- Telepresence在观察OpenShift群集时会使用特定于OpenShift的代理映像。
- Telepresence还支持与Pod中其他容器之间的转发流量。
- Telepresence使用Docker可访问目录作为临时目录。
文章图片
它提供了自顶向下的视图, 可查看你的应用程序以及完整的基础架构。它授权你实时确定分布式容器化应用程序的任何问题, 因为该应用程序已部署到云提供商。
Weave Scope的一些功能包括:
- 支持任何部署样式(本地, 托管或混合), 并具有收集和报告主机/容器指标的能力
- 汇总来自Kubernetes的指标, 事件和标签
- 实时上下文指标
- 可以通过CPU和内存管理来过滤节点, 以便你可以使用最多的资源快速识别容器。
文章图片
你可以从诸如ElasticSearch之类的数据库中查询, 也可以从诸如Cloudwatch之类的监视工具中查询, 并在其上设置警报。其他一些功能如下。
- 警报管理器处理警报部分
- 轻松安装出口商
- 该应用程序还使用Kubernetes标签来过滤Pod指标。
- Pod / Container仪表板利用pod标签, 以便轻松找到相关的一个或多个pod。
文章图片
除了保存数据外, 还可以使用可视化功能, 以及用于报警目的的极其灵活的数据统计方法。
Zabbix的一些功能包括:
- 根本原因分析
- Zabbix帮助将数据保留为JSON格式, 因此许多应用程序也可以使用它。
- 实时监控
- 强烈建议将Zabbix代理用于大规模生产系统。
- 深入报告
- 低级发现会自动检查新节点, 而不会费力。
- 高度可配置和可扩展。
总结
选择正确的监控工具至关重要。但猜猜怎么了?最重要的是可以免费试用, 为什么不购买一些云虚拟机, 看看对你的Kubernetes监控有效呢?
祝你监控顺利, 排除故障!
推荐阅读
- Docker Swarm用于容器编排
- Docker架构及其初学者组件
- Docker与虚拟机–了解它们的差异
- 如何在Linux上设置本地DNS缓存服务器()
- Docker网络操作详解
- DevOps工具的终极清单
- make(g++:在CentOS/RHEL 7上找不到命令-已修复)
- 家庭记账本安卓版开发(第四天)
- android------解决editText只输入一行和textView不显示过多的内容