当前位置: 首页 > article >正文

Prometheus学习笔记

Prometheus官方教程
Prometheus官方下载网址

Prometheus 简介

Prometheus 是一个开源的监控和报警系统,专为大规模分布式系统设计。它能够实时地收集、存储和查询时间序列数据,广泛用于监控云原生应用、微服务架构和容器化环境(如 Kubernetes)。

Prometheus 的关键特点:
  1. 时间序列数据存储
    Prometheus 以时间序列的形式存储数据,数据点由 时间戳指标名称标签(labels) 组成。每个指标的值会随时间变化。

  2. 多维数据模型
    Prometheus 支持通过 标签(例如,实例、区域、环境等)对时间序列进行多维度分组,允许你对不同维度的数据进行灵活查询。

  3. 查询语言 (PromQL)
    Prometheus 提供了强大的查询语言 PromQL,用于查询、聚合和筛选时间序列数据。

  4. 高效的数据抓取
    Prometheus 定期从应用程序或服务暴露的 HTTP 接口抓取数据。它并不依赖于传统的 agent 或推送式模型,而是采用 拉取(pull)模型。

  5. 报警系统
    Prometheus 可以配置报警规则,当数据达到某个阈值时,发送通知。通常与 Alertmanager 配合使用,提供报警路由、抑制和聚合等功能。

  6. 易于集成
    Prometheus 易于与其他工具(如 Grafana)集成,用于数据可视化和监控面板的构建。

  7. 无依赖、高可用
    Prometheus 是一个独立的服务,不依赖于其他外部存储系统,且支持水平扩展,能够在大规模分布式系统中使用。


Prometheus 的工作流程

  1. 数据采集:Prometheus 通过 scraping 机制从暴露指标的应用程序、服务、数据库等抓取数据。这些数据通常通过暴露 HTTP 接口 /metrics 进行。

  2. 存储:抓取的数据以时间序列的形式存储在 Prometheus 的本地时序数据库中。

  3. 查询:用户可以使用 PromQL 查询语言对存储的数据进行实时查询,生成图表或获取具体的报警数据。

  4. 报警:Prometheus 通过 Alertmanager 将报警发送到指定的接收器(如邮件、Slack、Webhooks 等)。

  5. 可视化:Prometheus 常与 Grafana 配合使用,后者可以通过 Prometheus 数据源来构建可视化仪表板。


学习和掌握 Prometheus 的重点

如果你要学习 Prometheus,以下是一些重点内容:

1. Prometheus 安装与配置
  • 部署 Prometheus:学习如何安装 Prometheus,包括在不同平台上(Linux、Docker、Kubernetes 等)的部署。
  • 配置文件(prometheus.yml):了解如何配置 Prometheus 的抓取目标、报警规则、存储路径等。
2. 指标和数据模型
  • 时间序列数据:理解 Prometheus 如何处理时间序列数据,包括如何使用标签(labels)对指标进行分组。
  • 常见指标:了解一些常见的 Prometheus 指标(如 go_*http_requests_totalnode_* 等),并学习如何暴露自定义指标。
3. PromQL 查询语言
  • 基本查询:学习如何使用 PromQL 查询数据。
  • 聚合和计算:掌握 PromQL 中的数据聚合、计算(如平均值、最大值、计数等)。
  • 标签过滤:学习如何使用标签筛选和过滤时间序列数据。
  • 高级功能:掌握时间序列的窗口函数(rate、irate、avg_over_time 等)。
4. 报警和通知
  • 配置报警规则:学习如何编写报警规则,基于 Prometheus 数据触发报警。
  • Alertmanager 配置:了解如何使用 Alertmanager 配置报警通知(例如,设置发送邮件、Slack 通知等)。
5. 集成与可视化
  • Grafana 集成:学习如何与 Grafana 配合使用,构建漂亮的监控仪表板。
  • Pushgateway:学习如何使用 Pushgateway 推送指标数据,适用于短期运行的进程或批处理作业。
6. 高可用与扩展
  • Prometheus 高可用部署:学习如何设置多个 Prometheus 实例以实现高可用。
  • 存储与备份:了解 Prometheus 的存储架构,如何管理数据量大的情况下的存储和备份。

相关工具和技术栈

  • Alertmanager:用于管理和路由 Prometheus 生成的报警。
  • Grafana:与 Prometheus 集成,用于可视化和展示数据。
  • Pushgateway:用于推送临时或短期存在的指标。
  • Exporter:Prometheus 使用 exporter 从不同应用和服务中收集指标(如 node_exporterblackbox_exportermysql_exporter 等)。

学习路径总结

  1. 安装和基本配置:掌握 Prometheus 的安装与配置,了解其默认行为和配置文件结构。
  2. PromQL 查询语言:学习并掌握 Prometheus 强大的查询语言 PromQL。
  3. 报警系统:配置报警规则并了解如何通过 Alertmanager 管理报警通知。
  4. 集成与可视化:学习如何与 Grafana 和其他工具集成,进行可视化展示。
  5. 高可用和扩展性:了解如何在大规模分布式系统中使用 Prometheus,保证监控系统的高可用性。

掌握这些核心概念后,你将能够有效地使用 Prometheus 进行高效的监控和报警配置。


http://www.kler.cn/a/459582.html

相关文章:

  • 单区域OSPF配置实验
  • 用Tkinter制作一个用于合并PDF文件的小程序
  • 《我在技术交流群算命》(二):QGraphicsItem怎么写自定义信号啊(QObject多继承顺序问题)
  • 【unity错误】Unity 6 LTS 打开就报错Assertion failed on expressionxxx?
  • 【ArcGISPro/GeoScenePro】检查并处理高程数据
  • Linux 挥别 WinXP 时代协议,USB RNDIS 即将退场
  • 【鸿蒙NEXT】鸿蒙里面类似iOS的Keychain——关键资产(@ohos.security.asset)实现设备唯一标识
  • ES6模块化:JavaScript中的导入与导出详解
  • TypeScript一些新概念
  • leetcode 9.回文数(整数不转成字符串)
  • GDPU Vue前端框架开发 跨年大礼包
  • Go-知识 模板
  • LLM常见面试题(31-35题)--深度学习基础概念
  • 计算机网络-L2TP Over IPSec基础实验
  • 【运维】部署Gitea
  • 目标检测入门指南:从原理到实践
  • Redis 安装部署[主从、哨兵、集群](windows版)
  • 爆改RagFlow
  • 【UE5】UnrealEngine源码构建3:启动UE5工程
  • 二、AI知识(神经网络)
  • 210.xxl-job定时任务:架构,可视化,GLUE模式,负载均衡,分片
  • Springboot(五十六)SpringBoot3集成SkyWalking
  • K8S-LLM:用自然语言轻松操作 Kubernetes
  • GPU 进阶笔记(四):NVIDIA GH200 芯片、服务器及集群组网
  • SpringSecurity 3.0.2.2版本
  • PostgreSQL的一主两从集群搭建部署 (两同步)