Prometheus介绍(开源系统监控与告警工具)(时间序列数据库TSDB、标签化label-based多维分析、Pull模型、PromQL查询语言)

张开发
2026/7/1 6:41:45 15 分钟阅读
Prometheus介绍(开源系统监控与告警工具)(时间序列数据库TSDB、标签化label-based多维分析、Pull模型、PromQL查询语言)
文章目录Prometheus 监控系统详解一、Prometheus 是什么二、核心架构1. Prometheus Server2. Exporter3. Alertmanager三、数据模型核心理解四、数据采集方式Pull 模型五、PromQL 查询语言常见示例1. 查询当前值2. 计算速率QPS3. 按标签聚合4. 告警条件六、告警机制七、与 Kubernetes 的集成常见方式八、优点与局限优点局限九、典型使用场景十、总结Prometheus 监控系统详解在现代云原生架构中监控已经成为保障系统稳定性和可观测性的核心能力。而在众多监控方案中Prometheus 凭借其简单、强大和与 Kubernetes 的天然集成成为事实上的标准。本文将从原理、架构、核心概念以及实践应用等方面全面介绍 Prometheus。一、Prometheus 是什么Prometheus 是一个开源的系统监控与告警工具最初由 SoundCloud 开发现已成为 Cloud Native Computing FoundationCNCF毕业项目。它主要特点包括多维度数据模型时间序列强大的查询语言PromQL拉模型Pull-based采集内置告警机制与云原生生态高度兼容二、核心架构Prometheus 的整体架构如下------------------- | Alertmanager | ------------------- ^ | ------------------- | Prometheus | ------------------- ^ ^ ^ | | | Exporter Service Exporter1. Prometheus Server负责核心功能抓取scrape指标数据存储时间序列数据执行查询PromQL触发告警规则2. Exporter用于将不同系统的数据转换为 Prometheus 可识别的格式例如Node Exporter主机监控MySQL Exporter数据库监控Blackbox Exporter网络探测3. AlertmanagerPrometheus 的告警组件用于告警去重分组路由通知邮件、Slack、Webhook 等三、数据模型核心理解Prometheus 的核心是时间序列数据库TSDB。每条数据由metric_name{label1value1, label2value2} value timestamp示例http_requests_total{methodGET, status200} 1027说明metric_name指标名称label标签维度value值timestamp时间戳 Prometheus 最大优势标签化label-based多维分析四、数据采集方式Pull 模型Prometheus 使用 HTTP 定期抓取数据GET http://target:port/metrics优点简单易于控制采集频率目标服务无需主动推送对比 Push 模型模型特点PullPrometheus控制权在监控端Push传统监控控制权在客户端五、PromQL 查询语言PromQL 是 Prometheus 的核心能力之一。常见示例1. 查询当前值http_requests_total2. 计算速率QPSrate(http_requests_total[5m])3. 按标签聚合sum by (status) (rate(http_requests_total[5m]))4. 告警条件rate(errors_total[5m]) 0.05 PromQL 的本质对时间序列进行函数计算和聚合六、告警机制Prometheus 支持基于规则的告警groups:-name:examplerules:-alert:HighErrorRateexpr:rate(errors_total[5m])0.05for:2m告警流程Prometheus 检测规则触发告警发送到 AlertmanagerAlertmanager 通知用户七、与 Kubernetes 的集成Prometheus 与 Kubernetes 集成非常紧密常见方式ServiceMonitor通过 OperatorPod 自动发现kube-state-metricscAdvisor容器指标 在 K8s 中Prometheus 通常通过Prometheus OperatorHelm Chart来部署八、优点与局限优点简单易用强大的查询能力云原生生态标准可扩展Thanos、Cortex局限不适合长期存储需扩展单机性能有限高基数High Cardinality问题九、典型使用场景应用性能监控APM系统资源监控CPU / 内存Kubernetes 集群监控微服务调用链指标SLA / SLO 指标统计十、总结Prometheus 是云原生时代最重要的监控系统之一它通过时间序列数据模型灵活的 PromQLPull 模式采集强大的生态系统构建了完整的可观测性基础。如果你在使用 Kubernetes 或构建微服务架构Prometheus 几乎是必备组件。

更多文章