容器监控是收集在容器平台上运行的基于微服务的应用程序的指标的过程。容器被设计为快速启动和关闭代码,这使得了解何时出现问题至关重要,因为停机成本高昂,而且会损害客户的信任。
容器是任何云原生架构的重要组成部分,这使得拥有能够有效监控和监督容器运行状况并优化资源以确保高基础设施可用性的软件至关重要。
让我们来看看容器监控的组件,如何选择正确的软件和当前的产品。
容器的优点和限制
容器为IT团队提供了一个更加敏捷、可扩展、可移植和有弹性的基础设施。容器监控工具是必要的,因为它们可以让工程师更主动地解决问题,获得详细的可视化效果,访问性能指标并跟踪更改。由于工程师几乎实时地获得所有这些数据,因此有可能减少平均修复时间(MTTR)。
工程师必须意识到容器的局限性:复杂性和不断变化的性能基线。虽然容器可以快速启动,但它们会增加基础设施的扩张,这意味着环境更加复杂。随着容器化基础设施的不断变化,也很难定义基线性能。
容器监控必须特别适合该技术。为虚拟化环境设计的遗留监控平台是不够的,也不能很好地扩展容器环境。云原生架构不依赖于虚拟化基础设施等专用硬件,这会改变监控需求和流程。
容器监控的工作原理
容器监控平台使用日志、跟踪、通知和分析来收集数据。
容器监控数据对用户有什么帮助?它允许用户:
——知道什么时候出了问题
——迅速对问题进行分类
——了解事件以防止将来发生
软件使用这些方法来获取内存利用率、CPU使用率、CPU限制和内存限制等数据。
分布式跟踪是容器监控的重要组成部分。跟踪有助于工程师了解容器化应用程序的性能和行为。它还提供了一种方法来识别瓶颈和延迟问题,更改如何影响整个系统,以及哪些修复在特定情况下最有效。当应用程序调用另一个系统时,它可以非常有效地通过微服务集合深入了解应用程序所走的路径。
更全面的容器监控产品涵盖了所有堆栈层。它们还可以生成基于文本的错误数据,如“容器重新启动”或“无法连接到数据库”,以更快地解决事件。详细的容器监控意味着用户可以了解哪些类型的事件会影响容器性能,以及共享计算资源如何相互连接。
如何监控容器运行状况?
容器监控需要整个技术堆栈中的多个层来收集有关容器和任何支持基础设施的指标,就像应用程序监控一样。工程师应该确保他们可以使用容器监控软件来跟踪集群管理器、集群节点、守护进程、容器和原始微服务,以全面了解容器的健康状况。
为了进行有效的监控,工程师必须在容器中运行的微服务之间建立连接。工程师可以实现一个服务网格来管理微服务之间的通信,而不是为多个独立服务使用服务到服务的通信。这样做可以让用户标准化微服务之间的通信,控制流量,简化分布式架构,并获得端到端通信的可见性。
如何选择容器监控工具
在容器监控软件的选择过程中,重要的是要确定哪些功能是必不可少的、好的或不必要的。工具通常包括以下功能:
——警报:在事件发生时向用户提供有关事件信息的通知。
——异常检测:一种让用户使系统持续监督活动并与编程的基线模式进行比较的功能。
——架构可视化:支持容器生态系统的服务、集成和基础设施的图形化描述。
——自动化:一种在没有人工干预的情况下执行更改以缓解容器问题的服务。
——API监控:一种跟踪容器化环境连接以识别异常、流量和用户访问的功能。
——配置监控:一种允许用户监督规则集、强制执行策略并记录环境中更改的功能。
——仪表板和可视化:能够直观地显示容器数据,以便用户能够快速查看系统的运行情况。
除了特定的特性和功能外,还需要询问有关该软件的用户体验问题:
——用户向代码中添加指令插入的速度和容易程度如何?
——警报、警戒和自动化的过程是什么?
——用户能否看到每个组件和层来隔离故障源?
——用户是否可以查看业务和技术组织的整个应用程序性能?
——是否可以主动和被动地关联事件和日志以发现异常?
——软件是否可以对任何一组获取的指标进行分析、显示和报警?
当系统达到特定的资源使用阈值时,合适的容器监控软件应该可以让工程师轻松创建警报并自动化操作。
在容器管理和监控方面,有大量开源和开源管理产品,如Prometheus、Kubernetes、Jaeger、Linkerd、Fluentd和cAdvisor。
Chronosphere监控容器的方式
Chronosphere的产品是为云原生架构和Kubernetes构建的,以帮助大规模收集容器数据的工程团队。Chronosphere的平台可以监控Kubernetes集群的所有标准数据摄入,如pod和节点,以及Prometheus的标准摄入协议。
容器监控软件会生成大量数据。当与云原生环境指标相结合时,这会造成数据过载,超过基础设施的增长速度。这要求有工具来帮助完善哪些数据是有用的,以便将其提供给最需要的人,并最终显示在正确的仪表板上。
控制平面可以帮助用户微调系统摄取的容器指标和跟踪。此外,使用Metrics Usage Analyzer,用户可以重新控制使用哪个容器的可观察性数据。更重要的是,可以指出何时不使用数据。用户在使用控制平面摄取后决定哪些数据是重要的,这样组织就可以避免整个容器和服务基础设施的过度成本。
原文链接:
https://thenewstack.io/what-is-container-monitoring/