监控可以帮助您保持Kubernetes应用程序平稳运行并解决可能出现的任何问题。Prometheus是一种流行的开源监控工具,许多公司使用它来监控其IT基础设施。但是,还有许多其他可用的监视工具。本文介绍了用于监控Kubernetes的Prometheus的6种替代方案。什么是普罗米修斯?Prometheus是一个最初建立在SoundCloud上的开源监控系统。它旨在监控多维数据收集和查询。Prometheus服务器有自己的独立单元,不依赖于网络存储或外部服务。因此,Prometheus不需要很多额外的基础设施或软件。Prometheus的主要优势包括与Kubernetes的紧密集成、许多可用的导出器和库以及快速查询语言和API。Prometheus的主要缺点包括简化、受限的数据模型、基于拉取模型的粒度有限以及缺乏加密。下面列出了除Prometheus之外的6种监控Kubernetes的方法。每个工具都有自己的优点和缺点,让我们来看看每个工具的主要特点。1.GrafanaGrafana是一个用于可视化、监控和分析指标的开源平台。Grafana的主要焦点是时间序列分析。Grafana可以通过各种图形选项显示分析数据,包括折线图、热图和条形图。当监控的指标超过预定义的阈值时,您可以收到警报。主要功能包括:警报-您可以通过不同的渠道获得警报,包括短信、电子邮件、Slack或PagerDuty。如果您更喜欢其他通信渠道,则可以使用一些代码来创建自己的通知程序。仪表板模板-模板允许您创建可重复用于多个用例的仪表板。例如,您可以对生产和测试服务器使用相同的仪表板。配置-您可以使用脚本自动化Grafana中的所有内容。例如,您可以使用包含IP地址、服务器和数据源预设的脚本自动启动Grafana和新的Kubernetes集群。注释-用于错误情况下的数据关联。您可以通过向图形添加文本来手动创建注释,也可以从任何数据源获取数据。2.cAdvisorcAdvisor可以收集、处理和导出运行容器的性能和资源使用信息。cAdvisor原生支持Kubernetes,因为它已集成到Kubelet二进制文件中。主要功能包括:自动发现-自动发现给定节点中的所有容器并收集统计信息,包括内存、CPU、网络和文件系统使用情况。存储插件-将统计数据导出到不同的存储插件,例如Elasticsearch和InfluxDB。总体计算机利用率-通过分析计算机上的“根”容器提供总体计算机使用情况。Web-UI-您可以在Web-UI上查看指标,它显示有关您机器上所有容器的实时信息。3.FluentdFluentd通过在两者之间提供统一的日志记录层,将数据源与后端系统分开。日志记录层允许您收集生成的多种类型的日志。主要功能包括:JSON数据结构-使您能够统一日志数据处理的所有方面,例如跨不同来源的缓冲、过滤和输出日志。可插入架构-灵活的插件系统允许您通过连接多个数据源和输出来扩展Fluentd的功能。系统资源——实例在30MB到40MB的内存上运行,每秒可以处理13,000个事件。如果需要更多内存,可以使用FluentBit光转发器。可靠性-支持基于文件的缓冲和内存缓冲,以防止节点上的数据丢失。此外,您可以设置Fluentd以支持高可用性和强大的故障转移。4.JaegerJaeger是一个开源工具,用于监控Kubernetes等分布式服务之间的流量。Jaeger使用分布式跟踪通过不同的微服务来跟踪服务请求的路径。然后您可以可视化请求流。分布式跟踪是一种管理和观察作为服务网格一部分运行的微服务的方法。主要功能包括:高可扩展性-设计无单点故障(SPOF),可根据业务需求进行扩展。多个存储选项-支持两个开源NoSQL数据库,Elasticsearch和Cassandra。Jaeger还为测试提供了简单的内存存储。CloudNativeDeployment-支持不同的配置方法,包括环境变量、命令行选项和配置文件。Kubernetes模板、Kubernetes运算符和Helm图表支持Kubernetes部署。监控-Jaeger后端组件默认公开Prometheus指标和日志。5.TelepresenceTelepresence是一个开源工具,可以在本地运行单个服务,同时将服务连接到远程Kubernetes集群。TelePresence在pod中部署了一个双向网络代理,为Kubernetes环境收集数据,包括TCP连接、环境变量和卷。主要功能包括:兼容性-Linux和MacOS都可以使用OS本机软件包。开发工作流-为在Kubernetes上开发的多容器应用程序提供快速开发工作流。您可以在将本地Docker容器代理到集群时运行它。在本地调试Kubernetes服务-当您在暂存集群中遇到错误时,您希望在本地运行该服务。Telepresence使您能够在本地调试服务。连接到远程Kubernetes集群-您可以从本地进程访问远程集群。通过此访问,您可以使用笔记本电脑上的本地工具与集群内的进程进行通信。6.ZabbixZabbix旨在监控大量网络参数和服务器的健康状况,并提供许多基于存储数据的数据可视化和报告功能。服务器很少的小型组织和服务器很多的大型企业都可以使用Zabbix来监控IT基础设施。主要功能包括:弹性阈值-您可以定义弹性问题阈值,也称为触发器。这些触发器基于后端数据库中的值。实时可视化-您可以使用内置的绘图功能立即查看监控项。Autodiscovery-提供多种方法来自动管理Kubernetes等大型环境。您可以自动添加和删除组织中的文件系统和网络接口。网络发现-使您能够定期扫描网络以查找外部服务或Zabbix代理,并在发现时采取预定义的操作。分布式监控-提供了一种使用Zabbix代理监控分布式基础设施的有效方法。您可以使用代理在本地收集数据,然后将数据报告给服务器。结论Prometheus是一个用于监控Kubernetes工作负载的开源工具。它作为默认监控工具原生集成在Kubernetes中,包括一个内置的警报管理器。但是,您还应该考虑为您的Kubernetes环境使用其他监控选项,以补充和改进Kubernetes功能体验。作者丨LimorWainstein来源丨https://containerjournal.com/...
