由KyleHunter翻译|Bugatti在Kubernetes环境中,应用程序运行在一个集群内的多个节点上,应用程序服务可能分布在多个集群和多个云中,因此很难跟踪应用程序及其所依赖的基础设施的健康状况。Kubernetes监控是从运行的Kubernetes集群中收集指标,以识别关键事件并确保所有硬件、软件和应用程序都按预期运行。将指标聚合在一个地方将帮助您了解和保护整个Kubernetes集群以及在其上运行的应用程序和服务的健康状况。鉴于容器化和Kubernetes创建的抽象层,再加上在K8s环境中运行的应用程序的动态特性,监控一切都可能是一个挑战。幸运的是,有许多开源的Kubernetes监控工具以及流行的商业工具可以使监控变得更加容易。本文探讨了市场上的一些Kubernetes监控和Kubernetes日志记录工具,包括用于监控的Prometheus和用于可视化和仪表板的Grafana。用于日志记录和监控的Kubernetes生态系统工具有许多流行的工具可以改进Kubernetes容器监控工作。以下是一些最常用的工具:?Prometheus(https://prometheus.io/docs/introduction/overview/):一种开源事件监控和警报工具,可收集指标并将其存储为时间序列数据。Prometheus于2016年加入云原生计算基金会,成为继Kubernetes之后的第二个托管项目。?Grafana(http://grafana.com/):一个完全托管的应用程序和基础架构可视化平台,可与Prometheus等监控软件配合使用。Grafana提供数据采集、存储、展示、告警等功能。?Thanos(https://thanos.io/):一个度量系统,它提供了一种简单且经济高效的方式来集中和扩展基于普罗米修斯的监控系统。?Elasticsearch(https://www.elastic.co/elasticsearch/):一个分布式的、基于JSON的搜索和分析引擎。?Logstash(https://www.elastic.co/logstash/):一种开源服务器端数据处理管道,可同时从多个来源获取数据、对其进行转换并将其发送到您的首选存储。?Kiban(https://www.elastic.co/kibana/)a:一种数据可视化和探索工具,适用于日志和时间序列分析、应用程序监控和运营智能等用例。您应该选择哪些Kubernetes监控工具?许多团队单独或组合使用这些监控和日志记录工具来创建自己的解决方案并解决特定的容器监控和Kubernetes应用程序监控需求。最常用的组合工具之一是Prometheus和Grafana。Prometheus让您可以从硬件和软件收集时间序列数据,而Grafana让您可以可视化Prometheus收集的数据。另一个流行的组合是Elasticsearch、Logstash和Kibana,通常称为ELKstack或ElasticStack,均可通过Elastic(https://www.elastic.co/)获得。虽然Elastic本身是一家营利性公司,但这些组件是免费和开源的。单独或组合实施上述任何工具都不可避免地会带来一些复杂性,尤其是当Kubernetes环境增长到包含许多集群时——可能在不同的云中运行不同的K8s发行版。由于应用程序导入问题、手动配置要求和配置漂移,大规模管理Prometheus配置可能成为一项挑战。虽然Prometheus和Grafana对于单个集群可以很好地协同工作,但在多集群环境中,可能需要将Thanos添加到工具集中,以便聚合数据并提供长期存储和全局视图。但是,您可能会面临数据保留和高可用性方面的限制,因此有些人更喜欢ELK堆栈。由于这种复杂性,许多组织更喜欢将监控作为一种服务,使用Datadog、Cloudwatch和NewRelic等商业解决方案。原标题:BestPractices,Tools,andApproachesforKubernetesMonitoring,作者:KyleHunter链接:https://dzone.com/articles/best-practices-tools-and-approaches-for-kubernetes
