Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 虚拟化

    • 系统虚拟化

    • 容器虚拟化

      • docker命令
      • docker安装portainer图形化界面
      • var-run-docker.sock是什么
      • docker-compose.yml配置文件最全选项详解
      • Volume的类型和生命周期
      • docker更换镜像源
      • docker安装prometheus监控
      • docker安装node_exporter
      • docker安装cadvisor
      • micrometer是Exporter吗,有哪些常用的Exporter
      • docker安装gitea
      • docker安装nacos
      • docker安装anki-sync-server
    • 网络虚拟化

    • 存储虚拟化

    • 应用虚拟化

  • Git

  • 可视化

  • Linux

  • 远程串流等

  • SWF

  • 网络

  • 网站收藏
  • 技术
  • 虚拟化
  • 容器虚拟化
plantre
2025-04-30

docker安装prometheus监控

Prometheus 是一款开源的监控与告警系统,专注于时间序列数据的采集、存储和分析,尤其擅长云原生和动态分布式环境的监控需求。以下是其核心特性与架构解析:


一、核心特性

  1. 多维数据模型
    Prometheus 使用「指标名称 + 标签键值对」的模型标识时间序列数据,例如 http_requests_total{method="GET", status="200"}。这种设计支持灵活的数据聚合和筛选,便于从不同维度(如请求方法、响应状态)分析系统行为。

  2. 强大的查询语言(PromQL)
    提供专为时间序列设计的 PromQL 语言,支持复杂查询、数学运算和实时分析。例如,计算 CPU 使用率可表达为:

    100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
    
    1

    这种能力使其在故障诊断和性能优化中表现突出。

  3. 主动拉取(Pull)与推送(Push)结合
    默认通过 HTTP 协议主动拉取目标端点(如 /metrics)的数据,适用于动态服务发现场景。短期任务则通过 Pushgateway 推送数据,弥补拉取模型的不足。

  4. 高效存储与扩展
    内置时间序列数据库(TSDB),支持本地存储压缩和远程存储扩展(如 Thanos、Cortex),可处理海量监控数据。数据保留策略灵活,支持基于时间或大小的清理机制。


二、核心架构

  1. Prometheus Server
    • 数据抓取:定期从配置的目标(Targets)拉取指标,支持静态配置和服务发现(如 Kubernetes、Consul)。

    • 存储引擎:TSDB 优化时间序列存储,内存索引加速查询,支持高并发读写。

    • 规则计算:预定义告警规则(Alert Rules)和记录规则(Recording Rules),实时生成新指标或触发告警。

  2. Exporters(数据采集器)
    将第三方系统(如 MySQL、Node)的指标转换为 Prometheus 兼容格式。常用 Exporters 包括: • Node Exporter:采集主机资源(CPU、内存、磁盘)。

    • Blackbox Exporter:探测网络服务可用性。

    • 自定义 Exporter:适配特定应用监控需求。

  3. Alertmanager
    处理告警通知的去重、分组和路由,支持邮件、Slack、Webhook 等多种通知渠道。例如,可配置静默规则避免重复告警干扰。

  4. Pushgateway
    临时存储短期任务(如批处理作业)的指标数据,确保其生命周期内数据可被拉取。


三、适用场景与限制

  1. 推荐场景
    • 云原生与微服务:Kubernetes 容器集群监控。

    • 动态基础设施:自动发现弹性伸缩的服务实例。

    • 实时性能分析:通过 PromQL 快速定位瓶颈,如 API 延迟、数据库查询耗时。

  2. 不适用场景
    • 100% 精确计费:数据采集可能存在遗漏,不适合计费系统。

    • 长期历史数据分析:默认本地存储保留 15 天,需依赖远程存储扩展。


四、生态系统与工具集成

  1. 可视化工具
    原生 Web UI 提供基础查询界面,但通常与 Grafana 集成,构建丰富的监控仪表盘。

  2. 服务发现
    支持 Kubernetes、Consul 等动态发现机制,适应弹性伸缩环境。

  3. 社区生态
    提供数百种官方和社区维护的 Exporters,覆盖数据库、消息队列、硬件设备等。


总结
Prometheus 凭借其灵活的模型、高效的存储和强大的查询能力,已成为云原生监控的事实标准。其设计兼顾可靠性与扩展性,尤其适合动态和分布式环境,但在高精度计费等场景需谨慎使用。结合 Alertmanager 和 Grafana,可构建从数据采集到告警可视化的完整监控链路。

编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
docker更换镜像源
docker安装node_exporter

← docker更换镜像源 docker安装node_exporter→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式