容器云平台监控系统选型及构建概述.docx

? ? ? ? ? ? ? 容器云平台监控系统选型及构建概述 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1? 前言 容器云平台在运维体系中,监控是不可或缺的组成部分。通过监控可以实时掌握系统运行状态,历史状态的回访等,为系统性能优化提供真实的用户行为与体验。传统的监控系统针对物理机或虚拟机设计,对于容器云平台来说,使用传统的监控工具会增加监控的复杂程度。在容器云平台中,容器运行实例,例如符合CRI-O的容器实现是一个工具,它使你能够以容器化的方式运行应用程序,Kubernetes是一个用于编排、管理容器的平台,而在实际情况中想使用容器实例工具命令行去手动地管理数千个容器,这是不切实际的。然而,仅仅通过Kubernetes管理并运行数千个容器是不够的,你还需要监控这些容器,以确保服务处于最佳运行状态。这一过程类似于实现网站可靠性工程(Site Reliability Engineering),它是由谷歌提出并推广的一个术语。可观测性和分析性是SRE的重要组成部分。它可细分为以下三个部分: 监控,从应用程序和宿主机中提取数值指标,这些指标可以被可视化和分析,以显示资源的当前状态。一旦提取到了数值指标,就可以使用它们来设置告警规则、促进分析和调试,并更好的做出决策。 日志,帮助开发人员在容器发生故障时,排除出错原因。容器日志随着容器生命周期的结束也就消失了。Kubernetes和Docker确实提供了一种浏览容器日志的方式,但是它的功能非常有限。因此,在任何以容器构成的环境中,集中式的管理日志是必须的。 跟踪,帮助你调试在网络上运行的服务,并跟踪请求链路,直到找到问题的根源。在微服务体系结构中,当多个服务/容器相互发送请求以完成一个业务任务时,需要一个适当的跟踪解决方案。 在本章节中,我们通过对较为流行的几种容器云监控产品进行分析,找出功能匹配、可扩展、功能强大的监控产品,并以实例的方式进行一定的阐述,来达到选型的目的。 2? 常见的容器云平台监控开源工具 本小节将讲解六个最热门的容器云平台监控开源工具,专门用于容器化服务的监控和分析。 2.1 Prometheus Prometheus在开发社区中非常流行,是CNCF项目的毕业生。Prometheus最初由Soundcloud创建并开放源代码。Prometheus简化了提取数值指标的过程,直接从一个基于时间序列的监控端点中提取。适用于监视高度动态变化的容器环境。Prometheus由三个部分组成:Prometheus Server、Alertmanager和Exporters。Exporters以独立进程或容器的方式运行在目标机器上,生成各种指标数据,通过API的方式发送给Prometheus Server。Prometheus Server负责服务发现,也可以从Exporters直接拉取指标数据,然后将数据存储在Prometheus的数据库中,用于可视化或告警服务。Alertmanager用于设置告警规则,分析Prometheus数据库中的数据,当触发某个规则时,向接收者发送警报。在这里可以找到大量的Exporters,它们都得到了Prometheus的官方支持和社区的维护。 Prometheus已经成为监控云原生应用的行业标准。尽管它以服务发现的简单性、易用性、告警服务和与Kubernetes的集成而闻名。但指标数据只能被Prometheus Server拉取的方式并不理想。这意味着Exporters必须能够被Prometheus Server访问,因此,在Prometheus中实现了一个Pushgateway,它支持将数据直接推送给Prometheus Server,而不是由Prometheus Server主动拉取。Prometheus的另一个缺点是它不能很好地水平扩展。这个问题可以在ThanosAdaptation Of Prometheus找到解决方案。 Prometheus相关工具和技术:Grafana、Cortex、Thanos、Prometheus Exporters、Alert Manager、Istio、Prometheus Operator。 Prometheus监控范例图: 2.2 Grafana Grafana是一款开源的指标分析和可视化套件。它允许你使用来自多个数据源(如Prometheus、Elas-ticsearch、Mysql、Postgres和Redis)的数据创建自定义仪表板。此外,Grafana最新的版本有自己的告警系统和基于角色的访问控制(RBAC)系统。Grafana作为一种数据可视化工具,在Prometheus的用户中非常出名,它可以有效地可视化存储在Prometheus中的指标数据。Graf

文档评论(0)

1亿VIP精品文档

相关文档