这里系列文章Prometheus+Grafana监控安装使用 (1)Prometheus介绍(2)Prometheus+Grafana安装配置
(1)Prometheus介绍(2)Prometheus+Grafana安装配置
前言
Prometheus是一套开源的监控&报警&时间序列数据库的组合,采集的样本以时间序列的方式保存在内存(TSDB时序数据库),并定期保存到硬盘中。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Prometheus介绍
1.1 Prometheus是什么?
Prometheus是一套开源的监控&报警&时间序列数据库的组合,采集的样本以时间序列的方式保存在内存(TSDB时序数据库),并定期保存到硬盘中。
它专门用于监控那些运行在容器中的微服务。每经过一个时间间隔,数据都会从运行的服务中流出,存储到一个时间序列数据库中,这个数据库之后可以通过PromQL语言查询。另外,因为数据是以时间序列存储的,当出现问题时,可以根据这些时间间隔进行诊断,另外还可以预测基础设施的长期监控趋势----这是Prometheus的两大功能。
1.2 Prometheus特点
- 数据模型:多维数据模型(时序列数据由metric和key/value标签组成)
- 查询:在多维度上强大灵活的查询语言(PromQL)
- 获取数据方式:基于HTTP的pull方式周期性采集时序数据
- 采用push gateway进行时序列数据推送(pushing)
- 高效存储采样数据
二、Prometheus组成与原理
2.1 Prometheus组成
- Prometheus Server:服务器,负责数据采集存储,和PromQL查询,本身是一个时序数据库,将采集到的监控数据按时间序列方式存储本地磁盘
Alertmanager:告警管理器,从Server接到告警通知,通过去重、分组、路由、向用户发送告警信息。 - Push Gateway: Push网关,因为Prometheus数据采集基于HTTP的Pull模型进行采集,必须使Server能与Exporter通信,如果不能,利用PushGateway中转,Server也可用Pull方式从PushGateway获取到监控数据。
- Pull:直接使用采集数据客户端xxx_exporters将数据传输给Prometheus。
- Exporters:周期性抓取数据采集一些web服务、mysql服务。
- Client Library: 客户端数据库,目的在于为那些期望原生提供InstrumenLalion功能的应用程序提供便捷的开发途径,用于检测应用程序代码。
- Alertmanager:从Prometheus Server接收到“告警通知”后,通过去重、分组、路由等预处理功能后,高效地向用户完成告警信息的发送:DataVisualization:Prometheus Web UI、Grafana。
Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。 Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Server需要对采集到的监控数据进行存储,Prometheus Server本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。最后Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。
由于Prometheus数据采集基于Pull模型进行设计,因此在网络环境的配置上必须要让Prometheus Server能够直接与Exporter进行通信。 当这种网络需求无法直接满足时,就可以利用PushGateway来进行中转。可以通过PushGateway将内部网络的监控数据主动Push到Gateway当中。而Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据。
Push 模式:这种模式,可以灵活的在被监控端使用各种语言编写数据采集脚本,通过Pu

本文详细介绍Prometheus监控系统的原理及安装配置,包括Prometheus的工作机制、数据模型、查询语言及与同类产品的比较。Prometheus是一种开源监控解决方案,适用于容器化的微服务环境。
最低0.47元/天 解锁文章
968

被折叠的 条评论
为什么被折叠?



