Prometheus 概述
Prometheus : 新一代的云原生监控系统,且第三方集成非常多
- 开源的完整监控解决方案,形成了基于中央化的规则计算、统一分析和告警的新模型
优点:
- 易于管理 : 单独部署, 采用 Pull 拉取数据 , 能通过服务发现动态管理监控服务
- 监控服务的内部运行状态 : 能监控服务和应用内部的运行状态
- 数据模型 : 以指标 ( metric ) 存储
- PromQL : 对监控数据的查询、聚合
- 高效 : 能监控百万的监控指标 , 每秒处理数十万的数据点
- 可扩展 : 能搭建联邦集群 , 水平扩展
- 易于集成 : 与众多监控服务集成 , 并能采集众多服务
- 可视化 : 图形化界面 , 集成了 Grafana
监控内部服务 :
架构
组件 :
- Prometheus Server ( 主服务器 ) :负责收集和存储时间序列数据
- client libraies ( 应用程序代码插桩 ) :将监控指标嵌入到被监控应用程序中
- Pushgateway ( 推送网关 ) :为支持 short-lived 作业提供一个推送网关
- exporter:专门对应用开发的数据摄取组件,如:HAProxy、StatsD、Graphit
- Alertmanager:专门用于处理 alert 的组件
采集层分两类 :
- 短作业 ( 生命周期较短 ) :直接通过API,在退出时间指标推送给 Pushgateway
- 长作业 ( 生命周期较长 ) :Retrieval 组件直接从 Job 或 Exporter 拉取数据
存储计算层 :
- Prometheus Server,包含了存储引擎和计算引擎
- Retrieval 组件 : 取数组件,会主动从 Pushgateway 或 Exporter 拉取指标数据
- Service discovery : 动态发现要监控的目标
- TSDB : 数据核心存储与查询
- HTTP server : 对外提供HTTP服务
应用层分两种 :
- AlertManager : 可实现短信报警、5 分钟无人 ack 打电话通知、仍然无人 ack,通知值班人员 Manager
- 数据可视化 : Prometheus WebUI , Grafana