首页 资讯 社群 我的社区 搜索

Kubernetes中Prometheus监控的6个替代品

yimo~
2020-05-12 10:53:15

Prometheus是一种流行的开源监视工具,许多公司都使用它来监视组织中IT基础结构。但是,还有许多其他可用的监视工具。

本文介绍了Kubernetes中Prometheus监视的六个替代方法。

什么是Prometheus?

Prometheus是最初在SoundCloud上构建的开源监视系统。它旨在监视–多维数据收集和查询。Prometheus服务器具有自己的独立单元,该独立单元不依赖网络存储或外部服务。因此,Prometheus不需要大量其他基础架构或软件。

Prometheus的主要优势:包括与Kubernetes的紧密集成,许多可用的导出器( exporters )和方法类库以及快速的查询语言和API。

Prometheus的主要缺点:包括简化,受约束的数据模型,基于拉取的模型的有限粒度以及缺少加密。

Prometheus的6种绝佳替代品

1. Grafana

Grafana是一个开源平台,用于可视化,监视和分析指标。

Grafana的主要重点是时间序列分析。Grafana可以通过各种图形(包括折线图,热图和条形图)展示分析的数据。当监视的指标超过预定义的阈值时,你会收到警报。

主要功能包括:

  • 警报 -你可以通过不同的渠道获得警报,包括SMS,电子邮件,Slack或PagerDuty。如果你更喜欢其他沟通渠道,则可以使用一些代码来创建自己的通知程序。
  • 仪表板模板—通过模板,你可以创建可重复用于多个用例的仪表板。例如,你可以为生产服务器和测试服务器使用相同的仪表板。
  • 配置脚本-你可以使用脚本自动化Grafana中的所有内容。例如,你可以使用包含IP地址,服务器和数据源预设的脚本,自动启动Grafana和新的Kubernetes群集。
  • 注释-在发生错误时用于数据关联。你可以通过在图形中添加文本来手动创建注释,也可以从任何数据源获取数据。

2.cAdvisor

cAdvisor收集,处理和导出–正在运行的容器的性能和资源使用情况信息。cAdvisor具有对Kubernetes的本地支持,因为它已集成到Kubelet二进制文件中。

主要功能包括:

  • 自动发现 -自动发现给定节点中的所有容器,并收集统计信息,包括内存,CPU,网络和文件系统使用情况。
  • 存储插件-将统计信息导出到不同的存储插件,例如Elasticsearch和InfluxDB。
  • 整体计算机使用率 -通过分析计算机上的“ root ”容器来提供整体计算机使用率。
  • 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 Operators 和Helm charts 支持Kubernetes部署。
  • 监视 -Jaeger后端组件默认情况下,公开Prometheus指标和日志。

5.Telepresence

Telepresence是一个开源工具,可以在本地运行单个服务,同时将该服务连接到远程Kubernetes群集。

Telepresence在Pod中部署了双向网络代理,该代理可在Kubernetes环境中收集数据,包括TCP连接,环境变量和存储卷。

主要功能包括:

  • 兼容性-带有OS原生软件包的Linux和Mac OS均可使用。
  • 开发工作流程-为你提供–在Kubernetes上开发的多容器应用程序–的快速开发工作流程。当需要代理到集群时,你可以在本地Docker容器中运行它。
  • 在本地调试Kubernetes服务 -当集群中有bug时,你想在本地运行服务。Telepresence使你可以在本地调试服务。
  • 连接到远程Kubernetes集群 -你可以从本地进程访问远程集群。通过此访问,你可以使用本地电脑上的工具与集群内的进程进行通信。

6. Zabbix

Zabbix旨在监视大量网络参数和服务器的运行状况,并基于存储的数据提供许多数据可视化和报告功能。

主要功能包括:

  • 弹性阈值 -你可以定义弹性阈值,也称为触发器。这些触发器基于后端数据库中的值。
  • 实时可视化 -你可以使用内置的绘图功能,立即查看被监视的项目。
  • 自动发现 -提供多种大型环境(如Kubernetes)管理的自动化方法。你可以在组织中自动添加和删除文件系统和网络接口。
  • 网络发现 -使你能够定期扫描网络中的外部服务或Zabbix代理,并在发现时采取预定义的操作。
  • 分布式监视 -通过Zabbix代理,监视分布式基础结构。你可以使用代理在本地收集数据,然后将数据发给服务器。

结论

Prometheus是用于监视Kubernetes工作负载的开源工具。它作为Kubernetes中的默认监视工具集成,包括内置的警报管理器。但是,你还应该考虑针对你的Kubernetes环境使用其他监视选项,以补充和改进原生Kubernetes功能。

 

用户评论