共计 2644 个字符,预计需要花费 7 分钟才能阅读完成。
监控可帮忙您确保 Kubernetes 应用程序安稳运行并排除可能呈现的任何问题。Prometheus 是一种风行的开源监督工具,许多公司都应用它来监督其 IT 根底构造。然而,还有许多其余监督工具可用。本文介绍了 6 种能够代替 Prometheus 监督 Kubernetes 的办法。
什么是 Prometheus?
Prometheus 是最后在 SoundCloud 上构建的开源监视系统。它旨在监督多维数据收集和查问。Prometheus 服务器具备本人的独立单元,该独立单元不依赖网络存储或内部服务。因而,Prometheus 不须要大量其余基础架构或软件。
Prometheus 的次要劣势包含与 Kubernetes 的严密集成,许多可用的导出器和库以及疾速的查询语言和 API。Prometheus 的次要毛病包含简化的、受约束的数据模型,基于拉取的模型的无限粒度以及不足加密。
以下列出了除 Prometheus 外监督 Kubernetes 的 6 种办法。每种工具都有其本身的长处和毛病,让咱们一起看看每个工具的次要性能。
1、Grafana
Grafana 是一个开源平台,用于可视化,监督和剖析指标。Grafana 的次要重点是工夫序列剖析。Grafana 能够通过多种图形选项(包含折线图、热图和条形图)显示剖析的数据。当监督的指标超过预约义的阈值时,您会收到警报。
次要性能包含:
- 警报 – 您能够通过不同的渠道(包含 SMS,电子邮件,Slack 或 PagerDuty)获取警报。如果您更喜爱其余交换渠道,则能够应用一些代码来创立本人的告诉程序。
- 仪表板模板 – 通过模板化,您能够创立可反复用于多个用例的仪表板。例如,您能够为生产服务器和测试服务器应用雷同的仪表板。
- 供给 – 您能够应用脚本自动化 Grafana 中的所有内容。例如,您能够应用蕴含 IP 地址,服务器和数据源预设的脚本主动启动 Grafana 和新的 Kubernetes 群集。
- 正文 – 在产生谬误时用于数据关联。您能够通过在图形中增加文原本手动创立正文,也能够从任何数据源获取数据。
2、cAdvisor
cAdvisor 能够收集、解决和导出无关正在运行的容器的性能和资源应用状况信息。cAdvisor 具备对 Kubernetes 的本地反对,因为它已集成到 Kubelet 二进制文件中。
次要性能包含:
- 主动发现 – 主动发现给定节点中的所有容器并收集统计信息,包含内存,CPU,网络和文件系统应用状况。
- 存储插件 – 将统计信息导出到不同的存储插件,例如 Elasticsearch 和 InfluxDB。
- 整体计算机使用率 – 通过剖析计算机上的“根”容器来提供整体计算机使用率。
- Web-UI – 您能够在 Web-UI 上查看指标,该指标显示无关计算机上所有容器的实时信息。
3、Fluentd
Fluentd 通过在两者之间提供对立的日志记录层,将数据源与后端系统拆散。日志记录层使您能够收集生成的多种类型的日志。
次要性能包含:
- JSON 数据结构 – 使您可能对立所有日志数据处理方面,例如跨不同源缓冲,过滤和输入日志。
- 可插拔的体系结构 – 灵便的插件零碎使您能够通过连贯多个数据源和输入来扩大 Fluentd 的性能。
- 系统资源 – 实例运行在 30MB 到 40MB 的内存上,每秒能够解决 13,000 个事件。如果须要更多内存,则能够应用 Fluent Bit 轻型转发器。
- 可靠性 – 反对基于文件的缓冲和内存缓冲,以避免节点上的数据失落。此外,您能够设置 Fluentd 以反对高可用性和弱小的故障转移。
4、Jaeger
Jaeger 是一个开源工具,用于监督 Kubernetes 等分布式服务之间的流量。Jaeger 应用分布式跟踪来跟踪通过不同微服务的服务申请的门路。而后,您能够直观地看到申请流。分布式跟踪是一种治理和察看微服务的办法,它作为服务网格的一部分运行。
次要性能包含:
- 高可扩展性 – 设计为无单点故障(SPOF),可依据业务需要进行扩大。
- 多种存储选项 – 反对两个开源 NoSQL 数据库,Elasticsearch 和 Cassandra。Jaeger 还提供了简略的内存存储用于测试。
- 云原生部署 – 反对不同的配置办法,包含环境变量,命令行选项和配置文件。Kubernetes 模板,Kubernetes 运算符和 Helm 图表反对 Kubernetes 部署。
- 监督 – Jaeger 后端组件默认状况下公开 Prometheus 指标和日志。
5、Telepresence
Telepresence 是一个开源工具,能够在本地运行单个服务,同时将该服务连贯到近程 Kubernetes 集群。网真在 Pod 中部署了双向网络代理,该代理可为 Kubernetes 环境收集数据,包含 TCP 连贯,环境变量和卷。
次要性能包含:
- 兼容性 – 带有 OS 原生软件包的 Linux 和 Mac OS 均可应用。
- 开发工作流程 – 为您提供在 Kubernetes 上开发的多容器应用程序的疾速开发工作流程。您能够在将本地 Docker 容器代理到集群时运行它。
- 在本地调试 Kubernetes 服务 – 当长期群集中有 bug 时,您想在本地运行服务。网真使您能够在本地调试服务。
连贯到近程 Kubernetes 群集 – 您能够从本地过程拜访近程群集。通过此拜访权限,您能够应用笔记本电脑上的本地工具与群集内的过程进行通信。
6、Zabbix
Zabbix 旨在监督大量网络参数和服务器的运行状况,并基于存储的数据提供许多数据可视化和报告性能。具备大量服务器的小型组织和具备多个服务器的大型企业能够应用 Zabbix 监督 IT 根底构造。
次要性能包含:
- 弹性阈值 – 您能够定义弹性问题阈值,也称为触发器。这些触发器基于后端数据库中的值。
- 实时可视化 – 您能够应用内置的绘图性能立刻查看受监督的我的项目。
- 主动发现 – 提供多种自动化大型环境(如 Kubernetes)治理的办法。您能够在组织中主动增加和删除文件系统和网络接口。
- 网络发现 – 使您可能定期扫描网络中的内部服务或 Zabbix 代理,并在发现时采取预约义的措施。
- 分布式监督 – 提供应用 Zabbix 代理监督分布式根底构造的无效办法。您能够应用代理在本地收集数据,而后将数据报告给服务器。
论断
Prometheus 是用于监督 Kubernetes 工作负载的开源工具。它被本地集成为 Kubernetes 中的默认监督工具,包含内置的警报管理器。然而,您还应该思考针对您的 Kubernetes 环境应用其余监督选项,以补充和改良 Kubernetes 性能体验。
作者丨 by Limor Wainstein 起源丨 https://containerjournal.com/…