监控可帮忙您确保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/...