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

监控与告警系统Prometheus

1. 普罗米修斯(Prometheus)是什么?

  • 定位:一款开源的 监控与告警系统,专为云原生和动态微服务架构设计,现为 CNCF(云原生计算基金会) 毕业项目。

  • 诞生背景:由 SoundCloud 于 2012 年开发并开源,2016 年成为继 Kubernetes 后第二个 CNCF 毕业项目。

  • 核心特点

    • 多维度数据模型(时间序列 + Key-Value 标签)

    • 强大的查询语言 PromQL

    • 高效存储与可视化

    • 灵活的告警规则配置


2. 核心组件与架构

Prometheus架构图

  1. 数据采集层

    • Exporters:暴露监控指标(如 Node Exporter 采集服务器资源)。

    • Pushgateway:支持短生命周期任务(如定时Job)推送指标。

    • Service Discovery:自动发现 Kubernetes、Consul 等动态目标。

  2. 存储计算层

    • 时间序列数据库(TSDB):高效存储时序数据,支持压缩和分块。

    • PromQL:实时查询分析数据(如 rate(http_requests_total[5m]))。

  3. 告警与可视化

    • Alertmanager:处理告警通知(去重、分组、路由至邮件/Slack等)。

    • Grafana 集成:通过 Dashboard 可视化监控数据。


3. 核心功能与使用场景

✅ 核心功能
  • 指标采集:通过 HTTP Pull 或 Pushgateway 获取数据。

  • 服务监控:监控容器(Docker/K8s)、应用(HTTP请求、错误率)、中间件(MySQL/Kafka)。

  • 自动告警:基于阈值、趋势或异常检测触发告警(如 CPU 使用率 >90% 持续 5 分钟)。

  • 横向扩展:支持联邦集群(Federation)和远程存储(如 Thanos)。

🌐 典型应用场景
  1. 微服务监控

    • 跟踪服务间调用延迟、错误率(如 Istio + Prometheus 监控服务网格)。

  2. Kubernetes 集群监控

    • 监控 Pod/Node 资源使用、Deployment 状态。

  3. 业务指标监控

    • 统计用户活跃数、订单成功率等自定义指标。


4. 技术优势与局限性

优势局限性
- 高度灵活的数据模型(多维标签)- 不适合日志存储(需结合 Loki)
- 原生支持云原生环境(K8s集成)- 长期存储需依赖外部方案(如 Thanos)
- 社区生态强大(官方/第三方Exporter)- 配置复杂度较高(需熟悉 PromQL)

5. 实战示例

场景:监控 Web 服务的 HTTP 请求
  1. 指标暴露:应用中集成 Prometheus Client(如 Java 的 micrometer)。

  2. 配置采集:在 Prometheus 的 prometheus.yml 中添加 Job:

    scrape_configs:
      - job_name: 'web_service'
        metrics_path: '/actuator/prometheus'
        static_configs:
          - targets: ['web-service:8080']
  3. 告警规则:定义请求错误率超阈值告警:

    groups:
    - name: http_errors
      rules:
      - alert: HighErrorRate
        expr: rate(http_requests_total{status="500"}[5m]) > 0.1
        for: 10m
        labels:
          severity: critical
        annotations:
          summary: "High error rate on {{ $labels.instance }}"

6. 学习资源推荐

  • 官方文档:prometheus.io/docs

  • 实战课程:《Prometheus 云原生监控:运维与开发实战》

  • 社区工具

    • Grafana:可视化仪表盘

    • Alertmanager:告警管理

    • Thanos:长期存储与全局查询


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

相关文章:

  • 一.Vue中的条件渲染
  • ELK之elasticsearch基本使用教程
  • 鸿蒙NEXT开发-文件服务上传下载
  • GitHub免密操作与跨服务器通行:SSH密钥一站式配置指南
  • 从零开始玩转TensorFlow:小明的机器学习故事 5
  • 再论Spring MVC中Filter和HandlerInterceptor的优先级
  • 工具方法 - 合规性矩阵
  • 登录-10.Filter-登录校验过滤器
  • 【Python爬虫(64)】从“听”开始:Python音频爬虫与语音数据处理全解析
  • 微信小程序——访问服务器媒体文件的实现步骤
  • 考研/保研复试英语问答题库(华工建院)
  • 网络安全-Mysql注入知识点
  • java基础面试-Java 内存模型(JMM)相关介绍
  • 《深度剖析Linux 系统 Shell 核心用法与原理_666》
  • [AI相关]问问DeepSeek如何基于Python,moviePy实现视频字幕功能
  • Java 新手宝典(带案例)
  • 点击修改按钮图片显示有问题
  • stm32-电源控制
  • 深入理解与实战SQL IFNULL()函数
  • 深入理解 QVectorQString:Qt 中动态数组的强大力量