您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

容器监控平台概览

监控是管理基础设施的核心工具。没有监控,我们将无法了解系统环境、进行诊断故障、制定容量计划,最糟的就是,故障发生了也不会被发现。

从技术角度来看,监控是衡量和管理技术系统的工具和流程。监控将系统和应用程序的指标转换为对应的业务价值。监控系统需要在基于容器的微服务中且地识别生命周期,并持续地提供实时的监控检测。

在上一节中,我们已经使用Scope搭建了容器监控管理系统,并带有一些基本的监控。但它对于数据、告警、细化监控指标和展示的时候,生态、性和扩展性都有欠缺,系统及需求复杂时难以满足我们的定制化的监控需求。这时,我们就需要围绕Premetheus,配合其生态及相关工具,配置我们的监控平台。

Prometheus 的灵感来自 Google 的 Borgmon, 是由前 Google 工程师从 2012 年开始在 Soundcloud以开源软件的形式进行研发的系统监控和告警工具包,自此以后,许多公司和组织都采用了 Prometheus 作为监控告警工具。Prometheus 的开发者和社区非常活跃,它现在是独立的开源项目,可以独立于任何公司进行维护。

Prometheus 已被全球众多企业广泛使用,以满足上面提到的复杂的监控需求,当然,它也可以用来监控属于传统架构的资源。

Prometheus 的整体架构以及生态系统组件如下图所示:

Prometheus 专注于现在正在发生的事情,而不是追踪数周或数月前的数据。Prometheus 通常不用于长期数据保留,认保存 15 天的时间序列数据。它有这样前提,即大多数监控和警报都是从最近的数据中的。

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。

被监控组件信息的HTTP接口被叫做exporter 。常用的组件大部分都有exporter可以直接使用,比如、、Linux系统信息等等。

大致工作流程如下:

Prometheus定时去目标上抓取指标监控数据,抓取目标需要暴露http服务的接口给它定时抓取。对于不能直接抓取的目标,Prometheus这些应用服务主动推送监控指标到PushGateway,而后Prometheus定时去这些网关上抓取数据。

Prometheus在本地存储保存抓取的数据,并按规则进行过滤和整理数据。

Prometheus很多方式的图表可视化,例如Grafana、的Promdash以及自身提供的模版引擎等等。Prometheus还提供HTTP API的方式,所需要的。

Prometheus 的主要优势有:

Prometheus 了多种来监控 Docker,推荐的是使用 Google 的 cAdvisor 工具。cAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行cAdvisor可以轻松的到当前主机上容器的运行信息,并以图表的形式向展示。

cAdvisor是简单易用的工具,不用再到服务器中即可以可视化图表的形式查看主机上所有容器的运行状态。cAdvisor 作为 Docker 容器运行,它可以对宿主机上的资源及容器进行实时监控和数据采集,使用情况、内存使用情况、网络吞吐量及系统使用情况。

cAdvisor认只保存几分钟分钟的监控数据,Prometheus 通过它导出指标,并将数据传输到存储系统中。

Prometheus本身的界面比较简洁,为了给 Prometheus 更全面的可视化界面,我们可以与开源仪表板工具 Grafana 集成。

Tips:

数据可视化既是一门非常强大的分析和解释技术。我们在查看可视化图像时,往往会从无关联的数据中找到有价值的联系,而数据的颗粒度或分辨率、表示数据的方式以及数据的规模可能会进一步加剧这种飞跃。

理想的可视化应该能够清晰地数据,避免不重要的数据堆砌,突出重点。

Prometheus 服务器没有内置警报工具,而是将警报从 Prometheus 服务器推送到 Alertmanager警报管理器的单独服务器。Alertmanager 可以管理、整合和分发各种警报到不同目的地,并能够防止重复发送。

我们将在 Prometheus 服务器上编写警报规则 ,这些规则将使用我们收集的指标并在指定的阈值或标准上触发警报。当指标达到阈值时,会警报,并将其推送到 Alertmanager。

目前,Prometheus 已成为企业构建容器云架构的首选开源监控工具。下一节我们将进入实战环节,运用这些工具,搭建完整的监控平台。


联系我
置顶