NEWS 新闻动态 > 新闻详情

技术分享 | 云资源监控之Prometheus

futong 发表于:2019-10-09
摘要:Prometheus被很多人称为下一代监控系统,富通云腾多云管理平台CloudoorManagement通过Prometheus等相关组件,实现了对云资源的实时监控以及告警。今天将与您分享Prometheus在云资源监控中的应用。

Prometheus由Go语言编写而成,采用Pull方式获取监控信息,并提供了多维度的数据模型和灵活的查询接口。Prometheus不仅可以通过静态文件配置监控对象,还支持自动发现机制,能通过Kubernetes、Consl、DNS等多种方式动态获取监控对象。

在数据采集方面,借助Go语音的高并发特性,单机Prometheus可以采取数百个节点的监控数据。在数据存储方面,随着本地时序数据库的不断优化,单机Prometheus每秒可以采集一千万个指标,如果需要存储大量的历史监控数据,则还支持远程存储。

Prometheus通过PromQL和其他API可视化地展示收集的数据。Prometheus支持多种方式的图标可视化,还提供HTTP API查询方法,自定义所需要的输出。但是某些情况下用push的方式更为灵活,所以Prometheus提供了Pushgateway来实现客户端主动发现数据。Prometheus不再需要自己去拉取数据,而是让用户通过自定义的Shell脚本把需要的数据发送给Pushgateway,然后再由Pushgateway推送数据给Prometheus。

路径.jpg

Prometheus Server

Prometheus Server是Prometheus核心组件,用于抓取和存储时间序列数据。负责定时在目标上抓取metrics(指标)数据,每个抓取目标都需要暴露一个HTTP服务接口用于Prometheus定时抓取。

Exporter

Exporter是prometheus监控中重要的组成部分,负责数据指标的采集。可以把它理解成监控适配器,将不同指标类型和格式的数据统一转化为Prometheus能够识别的指标类型。Exporter本身也是一个http_server,可以对http请求作出响应,返回数据。Prometheus用pull这种主动拉取的方式(Http get)去访问每个节点上Exporter并采集回需要的数据。

插件node exporter工作过程中主要通过读取Linux的/proc以及/sys目录下的系统文件获取操作系统运行状态;插件reids exporter通过Reids命令行获取指标;插件mysql exporter通过读取数据库监控表获取MySQL的性能数据。它们将这些异构的数据转化为标准的Prometheus格式,并提供HTTP查询接口。

Pushgateway

Pushgateway是 Prometheus监控中一个重要工具,用push的方式将指标数据推送到网关。各个target可以将数据实时发送给Pushgateway。在监控业务数据的时候,可将不同数据汇总,统一发送给Prometheus。

Pushgateway并不是将Prometheus的pull改成了push,它只是允许用户向它推送指标信息,并记录。而Prometheus每次从 Pushgateway拉取的数据并不是这期间用户推送上来的所有数据,而是最后一次push上来的数据。所以设置推送时间与Prometheus拉取的时间相同一般是较好的方案。

大图.jpg

Alertmanager

Alertmanager是Prometheus 的报警组件,与Prometheus组件是相互分离的。Prometheus server预先设置高级规则,Prometheus便会推送告警信息到Alertmanager。Alertmanager提供了十分灵活的告警方式,可以通过邮件、微信或者钉钉等途径推送告警信息。同时Alertmanager支持高可用部署,为了解决多个Alertmanager重复告警的问题,引用了Gossip,在多个Alertmanager直接通过Gossip同步告警信息。Alertmanager 还支持分组(Grouping)、抑制(Inhibition)、沉默(Silences)的机制。

综上所述,Prometheus特点包括具有由metric名称和键值对标示的时间序列数据的多维数据模型;有一个灵活的查询语言promQL;不依赖分布式存储,只和本地磁盘有关;通过HTTP的服务拉取时间序列数据;支持推送的方式来添加时间序列数据;支持通过服务发现和静态配置发现目标;支持多种图形和界面展示。

基于Prometheus等相关组件,富通云腾多云管理平台可以通过监控数据与图表趋势清晰地了解资源的运行以及使用情况,并根据监控数据做出对应调整,让用户对资源的使用状况了如指掌。同时可根据监控项数据设置告警,如果告警策略触发,平台将自动发送通知信息给告警联系人从而确保异常状态能及时解决。

自成立以来,富通云腾以“全栈式云管理服务”为核心,深度挖掘企业上云痛点,基于专业云管理服务(MSP)以及自主研发的多云管理平台CloudoorManagement,为企业提供咨询规划、迁移部署、运维优化等上云全生命周期服务,助力企业数字化转型。