prometheus-概念与架构解析

争取最小篇幅说明prometheus的全部内容,方便读者了解prometheus的整体概念

概念

定义

开源的监控、告警解决方案

何时使用

时序化的指标监控,如系统性能指标、请求耗时、时间区间的请求数等等

主要特性

  • 时序数据存储
  • PromQL强大的查询功能
  • 强大的可视化工具
    1. 开箱自带浏览器可视化工具
    2. 可与grafana集成,利用grafana强大的可视化能力
  • 高效的存储
    1. 自带的时序数据库
    2. 通过adapter与第三方存储集成,如influxdb
  • 操作简单、精准告警、多客户端、多种导入数据工具便于导入数据到prometheus中

架构


Prometheus architecture

工作流程

  1. 指标采集:prometheus server 通过pull 形式采集监控指标,可以直接拉取监控指标,也可以通过pushgateway做中间环节,监控目标先push形式上报数据到pushgateway
  2. 指标处理:prometheus server 将采集的数据存储在自身db或者第三方db
  3. 指标展示:prometheus server 通过提供http接口,提供自带或者第三方展示系统
  4. 指标告警:prometheus server 通过push告警信息到alert-manager,alert-manager通过 静默-抑制-整合-下发 4个阶段处理通知到观察者

组件

  • pushgateway  

可选,数据采集的中间系统,监控目标先将指标上报到pushgateway,prometheus再通过pull方式采集监控数据

  • prometheus server

prometheus服务器实例

  • grafana

可选,当然也是建议采用,第三方展示工具,可以编写PromQL查询语句,通过http协议与prometheus集成

  • alert manager

prometheus的alerting 模块 ,负责接收告警,例如prometheus server发送的告警信息,并且提供 分组、静默、抑制、下发等功能

重点组件介绍

pushgateway

  • 拓扑

监控目标通过脚本或者其他程序push指标到pushgateway中,prometheus通过pull方式拉取pushgateway上的指标

  • 为啥需要?

prometheus以pull形式采集监控指标,这样存在2个问题:

  1. 每次新增监控目标,就需要修改prometheus的配置文件
  2. 如果监控目标所在网络和prometheus所在网络不通,就无法通过prometheus的pull形式采集指标
  • 有啥缺点?
  1. pushgateway存在单点问题,如果pushgateway出现故障,所有监控目标都将监控失败。当然可以借助lsb解决单点问题https://github.com/prometheus/pushgateway/issues/241
  2. 丢失了prometheus对实例健康状态检查功能 
  3. 取消监控一个服务,需要手动删除pushgateway上对应的持久化数据
  • API

所有监控指标的push都通过http接口

/metrics/job/<JOB_NAME>{/<LABEL_NAME>/<LABEL_VALUE>}
  • 管理API
HTTP_METHOD PATH DESCRIPTION
GET /-/healthy Returns 200 whenever the Pushgateway is healthy.
GET /-/ready Returns 200 whenever the Pushgateway is ready to serve traffic.
PUT /-/quit Triggers a graceful shutdown of Pushgateway.

Alert Manager

  • 分组

将告警消息分组,便于大量告警 涌入时带来 通知过多问题

  •  静默

按照一定规则,在一定时间内不进行通知下发,在时间阈值达到后,进行下发

  • 抑制

一个告警消息被另一种告警消息抑制,另一种告警发送后,该告警不下发

  • 管理API
HTTP_METHOD PATH DESCRIPTION
GET /-/healthy Returns 200 whenever the Alert manager is healthy.
GET /-/ready Returns 200 whenever the Alert manager is ready to serve traffic.
PUT /-/reload  triggers a reload of the Alertmanager configuration file.

具体使用这里不做过多介绍,详情参考官网

服务发现

https://blog.csdn.net/weixin_37512224/article/details/104311486

参考

https://aq.qq.com/v2/uv_aq/html/reset_pwd/pc_reset_pwd_set_new_pwd.html

https://github.com/prometheus/pushgateway

https://github.com/prometheus/client_java

https://github.com/prometheus/pushgateway

发布了22 篇原创文章 · 获赞 1 · 访问量 526

猜你喜欢

转载自blog.csdn.net/weixin_37512224/article/details/104292444