news 2026/11/4 6:17:30

prometheus架构和部署(一)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
prometheus架构和部署(一)

前言

本文主要介绍Prometheus的架构和官网常用链接。

什么是Prometheus

所谓的Prometheus是一款开源的监控系统,可以监控主流的中间件,操作系系统,硬件设备,网络设备等。相比于zabbix而言,Prometheus强项是对容器的监控,微服务的监控更加方便。Prometheus作为CNCF第二个毕业项目,也是采用了GO语言编写。

🤔为什么不用zabbix呢?

zabbix采用cs架构
服务端
客户端agent
如果监控pods,可以通过sidecar边车模式共享数据,在边车上部署agent。但是agent上的配置可能会依赖pods的ip地址,pods删除,ip会变,不灵活。

Prometheus架构

推荐阅读:

https://prometheus.io/docs/introduction/overview/

Prometheus Server

  • Retrieval (检索/抓取):

    • 作用:负责按照配置的时间间隔,从 Targets 或 Pushgateway 拉取监控数据。

  • TSDB (Time Series Database - 时序数据库):

    • 作用:Prometheus 内置的高效存储引擎,专门用于存储带有时间戳的序列数据。

    • 存储位置:数据最终会落盘存储在本地磁盘(图中底部的Node / HDD/SSD)上。

  • HTTP Server:

    • 作用:提供 HTTP API 接口,提供WEBUI界面对外暴露数据查询能力。

  • PromQL:

    • 作用:这是 Prometheus 内置的查询语言。用户、Grafana 或 API 客户端通过 HTTP Server 发送 PromQL 语句来查询 TSDB 中的数据。

服务发现 (Service Discovery)

  • Service discovery (服务发现):

    • 作用:在动态环境(如 Kubernetes 集群)中,目标的 IP 地址经常变化。手动配置监控目标是不现实的。

    • 组件:图中列出了kubernetes和file_sd。

    • 机制:Prometheus 通过服务发现机制自动找到当前存活的目标列表(Discover targets),并动态更新抓取配置,无需重启服务。

数据采集端 (Data Collection)

这是监控数据的来源,主要分为两类:

  • Prometheus targets (Jobs/exporters):

    • 作用:这是最常规的监控目标。通常是一些长期运行的服务(如 Web 服务器、数据库)或者专门用来导出指标的Exporters(例如 Node Exporter 监控主机硬件,MySQL Exporter 监控数据库)。

    • 机制:Prometheus Server 会定期通过 HTTP 请求从这些目标的/metrics接口拉取 (Pull)数据。

  • Short-lived jobs (短生命周期任务):

    • 作用:针对那些运行时间很短、可能来不及被 Prometheus 拉取就结束的任务(如批处理脚本、Cron Job)。

    • Pushgateway:由于 Prometheus 无法及时拉取这类任务,这些任务在退出前会主动将指标Push(推送)到Pushgateway。然后,Prometheus Server 再从 Pushgateway 拉取这些数据。

报警管理 (Alerting)

  • Prometheus alerting (报警规则):

    • 作用:Prometheus Server 会根据配置的报警规则(Alerting Rules)定期评估数据。如果满足条件(例如 CPU 使用率 > 80% 持续 5 分钟),就会生成报警。

  • Alertmanager:

    • 作用:Prometheus Server 将报警推送到 Alertmanager。Alertmanager 负责对报警进行去重、分组、抑制(例如服务器宕机时不再发送该服务器上的应用报警),并负责路由。

    • 通知渠道:图中显示它可以对接pagerduty、Email等,将报警发送给相关人员。

数据可视化与导出 (Data Visualization and Export)

  • Prometheus web UI:

    • 作用:Prometheus 自带的简单 Web 界面,用于执行 PromQL 查询和查看简单的图表。

  • Grafana:

    • 作用:最流行的可视化工具。它通过 PromQL 从 Prometheus 读取数据,展示精美的仪表盘(Dashboard)。

  • API clients:

    • 作用:其他程序可以通过 Prometheus 的 HTTP API 获取数据,进行自定义的处理或集成。

官网

一、Prometheus

官网地址:https://prometheus.io/

官方架构图:https://prometheus.io/docs/introduction/overview/github地址:https://github.com/prometheus/prometheus

PQL查询语句参考资料

https://prometheus.io/docs/prometheus/latest/querying/functions/

二、grafana

官网下载链接:

Download Grafana

dashboard模版链接:

Grafana dashboards | Grafana Labs

本文作者JasonChen陈杰,转载请标注原文链接。后续会持续更新专题内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 6:14:59

thc-hydra 部署完全指南:Linux、Windows、macOS 与 Docker 四种路线

thc-hydra 部署完全指南:Linux、Windows、macOS 与 Docker 四种路线 【免费下载链接】thc-hydra hydra 项目地址: https://gitcode.com/gh_mirrors/th/thc-hydra thc-hydra 部署是搭建安全测试环境的起点。thc-hydra(Hydra)是一款对 F…

作者头像 李华
网站建设 2026/11/4 6:13:34

Boss Show Time:岗位发布时间一目了然

Boss Show Time:岗位发布时间一目了然 【免费下载链接】boss-show-time 展示boss直聘岗位的发布时间 项目地址: https://gitcode.com/GitHub_Trending/bo/boss-show-time 刷新 Boss 直聘的搜索页,列表头位被一条挂着"急聘"标签的岗位占…

作者头像 李华
网站建设 2026/11/4 6:09:54

Blockly 三套渲染器选型指南:geras、zelos、thrasos 到底该怎么选

Blockly 三套渲染器选型指南:geras、zelos、thrasos 到底该怎么选 【免费下载链接】blockly The web-based visual programming editor. 项目地址: https://gitcode.com/gh_mirrors/bloc/blockly 很多刚接触 Blockly 的同学,第一次 inject 出来一…

作者头像 李华
网站建设 2026/11/4 6:09:36

Arize Phoenix 实操:4 步定位你的模型到底在哪漂移了

Arize Phoenix 实操:4 步定位你的模型到底在哪漂移了 【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix 模型上线后总有这种时刻:整体准确率掉了几个点,但你说…

作者头像 李华
网站建设 2026/11/4 6:08:50

Babel 配置实战:大型项目构建提速的 5 个决策点

Babel 配置实战:大型项目构建提速的 5 个决策点 【免费下载链接】babel-handbook :blue_book: A guided handbook on how to use Babel and how to create plugins for Babel. 项目地址: https://gitcode.com/gh_mirrors/ba/babel-handbook 当一次 clone 后的…

作者头像 李华