Prometheus专题[1.Prometheus简介]

1.概念

Prometheus是一个开源的系统监控和报警的工具包,最初由SoundCloud发布。从 2012 年开始编写代码,再到 2015 年 github 上开源以来,已经吸引了 9k+ 关注,以及很多大公司的使用;2016 年 Prometheus 成为继 k8s 后,第二名CNCF成员。作为新一代开源解决方案,很多理念与 Google SRE 运维之道不谋而合。

2.主要功能

  • 多维 数据模型(时间序列数据由 metric 名字和 k/v 的 labels 构成)。
  • 灵活的查询语句(PromQL)。
  • 无依赖存储,支持 local 和 remote 不同模型。
  • 通过pull方式采集时间序列,通过http协议传输。
  • 支持通过中介网关的push时间序列的方式
  • 监控目标,可以采用服务发现或静态配置的方式。
  • 支持多种可视化图表及仪表盘。

3.核心组件

  • Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。
  • client libraries,用于对接 Prometheus Server, 可以查询和上报数据。
  • push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。
  • 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。
  • 用于告警通知管理的 alertmanager 。

    4.架构图

Prometheus监控架构图

从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

它大致使用逻辑是这样:

1.Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
2.当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
3.Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
4.Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
5.可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

5.注意

  • Prometheus 的数据是基于时序的 float64 的值,如果你的数据值有更多类型,无法满足。
  • Prometheus 不适合做审计计费,因为它的数据是按一定时间采集的,关注的更多是系统的运行瞬时状态以及趋势,即使有少量数据没有采集也能容忍,但是审计计费需要记录每个请求,并且数据长期存储,这个Prometheus 无法满足,可能需要采用专门的审计系统。
# 推荐文章
  1.深刻理解Docker镜像大小
  2.k8s专题[1.k8s基础概念]
  3.k8s专题[10.使用Spinnaker持续发布应用]
  4.k8s专题[2.k8s设计原则]
  5.k8s专题[3.k8s基础组件]

评论


:D 一言句子获取中...