Prometheus 架构全面解析

本文详细介绍了Prometheus的架构,包括服务器、时序数据库、目标、导出器、服务发现、Pushgateway和警报管理器等组件,以及它们在监控和警报系统中的作用和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本指南中,我们将详细介绍 Prometheus 架构。

Prometheus 是一个用 Golang 编写的开源监控和告警系统,能够收集和处理来自各种目标的指标。您还可以查询、查看、分析指标,并根据阈值收到警报。

此外,在当今世界,可观测性对每个组织来说都变得至关重要,而 Prometheus 是开源领域的关键可观测性工具之一。

在这篇博客中,我们将了解 Prometheus 的所有关键组件,以及它们如何协同工作以使整个监控系统正常工作。

Prometheus 架构

以下是 Prometheus 架构的高级概述。

Prometheus 架构 - 组件工作流

Prometheus 主要由以下部分组成。

  1. Prometheus 服务器
  2. 服务发现
  3. 时序数据库(TSDB)
  4. 目标
  5. 导出器
  6. 推送网关
  7. 警报管理器
  8. 客户端库
  9. PromQL系列

让我们详细看一下每个组件。

Prometheus 服务器

Prometheus 服务器是基于指标的监控系统的大脑。服务器的主要工作是使用拉取模型从各种目标收集指标。

Target 只不过是服务器、pod、端点等,我们将在下一主题中详细介绍。

使用 Prometheus 从目标收集指标的一般术语称为抓取(pull)。

Prometheus Server 组件

Prometheus 会根据 Prometheus 配置文件中提到的抓取间隔定期抓取指标。

下面是一个示例配置。

global:
  scrape_interval: 15s 
  evaluation_interval: 15s 
  scrape_timeout: 10s 

rule_files:
  - "rules/*.rules"

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090'] 
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100'] 

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['alertmanager:9093']

时序数据库(TSDB)

prometheus 接收的指标数据会随时间变化(CPU、内存、网络 IO 等)。它称为时间序列数据。因此,Prometheus 使用时间序列数据库 (TSDB) 来存储其所有数据。

默认情况下,Prometheus 将其所有数据以有效的格式(块)存储在本地磁盘中。随着时间的流逝,它会压缩所有旧数据以节省空间。它还具有保留策略来删除旧数据。

Prometheus 还提供远程存储选项。这主要是存储可扩展性、长期存储、备份和灾难恢复等所必需的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值