一、打造基于Prometheus的全方位监控平台

1.1 前言

官网地址:https://prometheus.io/docs/prometheus/latest/getting_started/

  • 灵活的时间序列数据库;
  • 定制各式各样的监控规则;
  • Prometheus的开发人员和用户社区非常活跃;
  • 独立的开源项目,不依赖于任何公司;
  • 继Kurberntes之后第二个入驻的项目;

1.2 prometheus架构

Aspose.Words.ced93eea-d8e3-4d6b-822f-634f2869467e.002

Prometheus 的工作原理主要分为五个步骤:

  1. 数据采集(Exporters):Prometheus 定期通过HTTP请求从目标资源中拉取数据。目标资源可以是应用程序、系统、服务或其他资源。

  2. 数据存储(Storage):Prometheus 将采集到的数据存储在本地存储引擎中。存储 引擎以时间序列方式存储数据,其中每个时间序列都由指标名称和一组键值对组成。

  3. 数据聚合(PromQL):Prometheus 通过查询表达式聚合数据。PromQL 是 Prometheus 的查询语言,它允许用户通过查询表达式从存储引擎中检索指标的特 定信息。
  4. 告警处理(Alertmanager):Prometheus 可以根据用户指定的规则对数据进行警 报。当指标的值超出特定阈值时,Prometheus 向 Alertmanager 发送警报。 Alertmanager 可以帮助用户对警报进行分组、消除和路由,并将警报发送到相应的 接收器,例如邮件、企微、钉钉等。
  5. 数据大盘(Grafana):帮助用户通过可视化方式展示 Prometheus 的数据,包括 仪表盘、图表、日志和警报等。

1.3 prometheus时间序列数据

1.3.1 什么是序列数据?

时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。

1.3.2 时间序列数据特点

  • 性能好:关系型数据库对于大规模数据的处理性能糟糕。NOSQL 可以比较好的处理 大规模数据,依然比不上时间序列数据库。
  • 存储成本低:高效的压缩算法,节省存储空间,有效降低 IO。

官方数据:Prometheus 有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用 3.5byte 左右空间,上百万条时间序列,30 秒间隔,保留 60 天,大概200多G。

1.3.3 Promethues适合场景

Prometheus 非常适合记录任何纯数字时间序列。它既适合以机器为中心的监控,也适合监控高度动态的面向服务的体系架构。