Prometheus的功能、架构、组件、配置
1 介绍
1.1 简介
Promethues是一套开源系统监控及报警框架,启发于Google的borgmon, 由SoundCoud员工于2012年创建,并于2015年正式发布,2016年正式加入Cloud Native Computing Fundation
1.2 监控目的
趋势分析:对监控指标进行持续收集和统计,进行趋势分析。
利用磁盘空间增长率判断何时进行磁盘扩容。
对照分析:对不同版本系统运行资源使用情况或性能数据进行跟踪和对比。
告警:即使发现故障,快速响应问题,避免对业务产生较大影响。
故障分析与定位:分析和排查问题,找到问题根源。
数据可视化:通过仪表盘等对系统运行状态,资源使用,服务状态等进行直观显示。
1.3 特点
多维数据模型:使用metric名和键值对来区分的时间序列数据。
灵活强大的查询语言支持:PromQL。可对metrics进行数学运算、逻辑运算等操作。
单节点部署,不依赖于分布式存储。
数据采集其于HTTP协议,使用Pull模式获取数据。
扫描目标与告警管理支持静态配置与动态服务发现。
可使用使用PushGateway推送时间序列数据至Prometheus Server。
内置Dashboard用于基本功能查看和管理。
1.4 组件
Prometheus Server:数据采集和存储时序数据
对数据进行告警分析
client libaries:提供应用程序数据收集功能
push gateway:支持短期jobs,由jobs推送数据到push gateway,再由gateway暴露给Prometheus Server
Exporters:暴露第三方服务采集数据
Alertmanger:对Prometheus server产生告警进行去重、分组、发送等功能
1.5 架构
流程:Prometheus通过Service discovery发现采集目标
使用HTTP请求获取采集目标指标数据,并进行持久化存储
定时运行本地规则进行数据聚合产生新的时序数据或告警
将告警发送于alarmmanager,由alarmmanager进行分组、去重等功能后发送告警通知或恢复通知
可调用Prometheus Server提供的HTTP API获取采集数据用于可视化
1.6 使用场景:
Prometheus可以记录任何纯数据的时序数据
常用于以机器为中心的监控、面向高度动态的服务体系架构监控
不适合100%准确性的要求,如请求计费
2 部署安装
搭建组件Prometheus Server、Alertmanger、node_exporter、mysqld_exporter
Prometheus的环境搭建与使用
3 基本概念
4 配置
5 PromQL
6 HTTPAPI
7 联合模式
8 告警管理
Prometheus的环境搭建与使用