别再裸奔搞监控了!一篇带你上手 Prometheus+Grafana 的实战指南

简介: 别再裸奔搞监控了!一篇带你上手 Prometheus+Grafana 的实战指南

别再裸奔搞监控了!一篇带你上手 Prometheus+Grafana 的实战指南

大家好,我是 Echo_Wish。今天我们来聊聊 Prometheus + Grafana ——一个在运维、数据可观测、SRE、边缘监控领域都快成为标配的组合拳。

我写这篇文章的目的很简单,不是跟你背理论,而是——

看完就能上手,搭好监控、出图、报警,全链打通。

而不是只会喊:“Prometheus 是普罗米修斯,来自希腊神话中的火种”。这跟我们监控没半毛钱关系,咱实战才是王道。


🥇 一句话概述:为啥都爱 Prometheus + Grafana?

  • Prometheus 负责采集和存储
  • Grafana 负责展示和告警
  • 二者搭起来最轻、最快、最灵活
  • 云原生时代已经成为事实标准

更关键的一点:

Prometheus 是拉模式,一切指标都可量化、可定义,讲究自助式监控。

不再需要黑盒猜系统状态,而是把系统变成“透明仪表盘”。

我第一次用 Prometheus 时,内心只有一句:

“卧槽,监控就应该这么爽!”


🚀 二、快速上手 Prometheus:能跑起来比啥都强

我们别绕圈,直接用最常见的方式启动:

📌 1. 下载 Prometheus

wget https://github.com/prometheus/prometheus/releases/latest/download/prometheus-2.46.0.linux-amd64.tar.gz
tar -zxvf prometheus-2.46.0.linux-amd64.tar.gz
cd prometheus-2.46.0.linux-amd64

启动:

./prometheus --config.file=prometheus.yml

浏览器访问:

http://localhost:9090

看到 UI,就算启动成功。


🛠 三、Prometheus 配置解析——监控第一个目标

Prometheus 要监控什么?靠 prometheus.yml 定义。

最经典的例子 —— 监控 Prometheus 自己:

scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 15s
    static_configs:
      - targets: ['localhost:9090']

解释一下:

  • scrape_interval 抓数据频率
  • job_name 名字随便起
  • targets 就是指标端点

能抓到什么?比如:

  • 采集耗时
  • TSDB 内存使用量
  • 抓指标失败次数

基本看到这,你已经监控了一个系统了。


🧩 四、让真正的应用暴露指标!Hello Metrics 👋

我们用一个 Go 程序演示暴露业务指标:

package main

import (
    "github.com/prometheus/client_golang/prometheus/promhttp"
    "net/http"
)

func main() {
   
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":8080", nil)
}

运行以后,打开:

http://localhost:8080/metrics

你会看到一堆以 _total结尾的玩意,看似乱码,其实就是业务指标基础原语。

如果嫌 Go 不亲民,用 Python 也一样:

from prometheus_client import start_http_server, Counter

c = Counter('requests_total', 'Total requests')

start_http_server(8000)

while True:
    c.inc()

打开:

http://localhost:8000

Prometheus 就能拉。


🔍 五、PromQL —— 运维的 SQL

PromQL 就是 Prometheus 的灵魂。比如 CPU 使用率:

rate(process_cpu_seconds_total[5m])

某个服务 QPS:

rate(http_requests_total[1m])

按状态分组:

sum(rate(http_requests_total[1m])) by (status)

这玩意一旦上瘾,你会觉得 SQL 都不香了


🎨 六、Grafana 出场:监控不仅要准,还要漂亮

Prometheus 有图能力,但一般没人用,因为 Grafana 的仪表盘帅太多

启动 Grafana:

docker run -d -p 3000:3000 grafana/grafana

访问:

http://localhost:3000

默认登录:

  • 用户名:admin
  • 密码:admin

然后添加 Prometheus 数据源:

  • URL:http://localhost:9090

Done!


📊 七、Grafana 可视化实战:按业务逻辑出图

比如:

QPS 曲线

sum(rate(http_requests_total[1m])) by (job)

内存

process_resident_memory_bytes

错误率

sum(rate(http_requests_total{status=~"5.."}[5m]))

搞成折线、柱状、饼图随便你。

你甚至能搞这样的大盘:

📌 3 行指标体现系统健康:

  • RT(99 分位)
  • QPS(1m)
  • Error(5m涨幅)

这已经是标准 SRE 大屏套路。


🪖 八、Play with Alert —— 没报警就不是监控

Prometheus 自带 Alertmanager,可以这样定义报警:

groups:
- name: instance_down
  rules:
  - alert: InstanceDown
    expr: up == 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "实例挂了"

报警逻辑挺有意思:

  • expr 是 PromQL
  • for 是持续时间
  • seveirty 告警等级
  • summary 展示内容

Slack、钉钉、企业微信、PagerDuty 全能对接。

报警不是提示你“挂了”,而是告诉你:

“滚去修系统!”


🧲 九、Grafana 也能报警

Grafana 8+ 有自身报警系统,比如:

  • 阈值报警
  • 速率报警
  • 无数据报警
  • PromQL 报警

配个邮件渠道,你就能收到一封“惨叫”的邮件:

Latency P99 > 500ms over 10m

这就是“运维的紧箍咒”。


☁️ 十、容器与云原生监控才是 Prometheus 的春天

说句大实话:

99% 使用 Prometheus 的公司,都在 Kubernetes 上。

K8s 暴露了 Metrics,把整个集群变成可观测系统。

你只要这样加:

- job_name: 'kubernetes-nodes'
  kubernetes_sd_configs:
  - role: node

节奏变成:

  • Node 指标
  • Pod 指标
  • Kubelet 指标
  • APIServer 指标
  • etcd 指标

全部自动抓。

Grafana 上直接导入:

ID: 315
ID: 6417

你就会看到:

  • CPU 饼图
  • Pod 崩溃趋势
  • 节点资源利用
  • 网络延时

你会突然意识到:

过去裸奔太久了。


💡 十一、我的一些感悟:监控永远不是“装工具”,是“打造运营能力”**

很多公司搞监控,流于形式:

  • 大屏很好看
  • 报警没人响应
  • 图写了一堆
  • SLA 依旧扑街

原因很简单:

数据要驱动决策,而不是驱动 PPT。

一个健康的监控体系必须:

  • 能发现问题
  • 能定位问题
  • 能趋势预判
  • 能指导容量规划
  • 能支撑 SLA 评估

否则都是花架子。


🏁 十二、写在最后

Prometheus + Grafana 的魅力在于:

  • 开源、免费、标准化
  • 插件丰富、生态爆表
  • 学习成本极低
  • 足够灵活

一句话总结:

监控不是为了看图,是为了把系统变成可度量的科学工程。

从今天开始,别再裸奔运维了。
让数据测量系统,让指标告诉你真相。

目录
相关文章
|
Prometheus 监控 Kubernetes
Prometheus + Grafana安装
Prometheus + Grafana安装
|
监控 数据库
如何安装使用grafana
如何安装使用grafana
614 2
|
5月前
|
存储 Prometheus 监控
从入门到实战:一文掌握微服务监控系统 Prometheus + Grafana
随着微服务架构的发展,系统监控变得愈发重要。本文介绍如何利用 Prometheus 和 Grafana 构建高效的监控系统,涵盖数据采集、存储、可视化与告警机制,帮助开发者提升系统可观测性,及时发现故障并优化性能。内容涵盖 Prometheus 的核心组件、数据模型及部署方案,并结合 Grafana 实现可视化监控,适合初学者和进阶开发者参考实践。
775 6
|
15天前
|
人工智能 运维 安全
技术深析快手直播安全事件:为什么大量违规直播“关不掉”?
快手直播安全事件暴露了高并发下账号权限、风控与审核系统的系统性失效。对测试开发而言,需从功能验证转向系统性防控,强化极端场景测试、高负载审核链路验证及熔断机制演练,提升对复杂风险的预判与拦截能力。
|
2月前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
2065 43
|
3月前
|
存储 Prometheus 监控
136_生产监控:Prometheus集成 - 设置警报与指标选择与LLM部署监控最佳实践
在大语言模型(LLM)部署的生产环境中,有效的监控系统是确保服务稳定性、可靠性和性能的关键。随着LLM模型规模的不断扩大和应用场景的日益复杂,传统的监控手段已难以满足需求。Prometheus作为当前最流行的开源监控系统之一,凭借其强大的时序数据收集、查询和告警能力,已成为LLM部署监控的首选工具。
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
595 5
|
JSON Prometheus 监控
Prometheus+Grafana 部署
Prometheus 和 Grafana 组成监控解决方案。Prometheus 是开源系统监控工具,Grafana 则用于数据可视化。要连接 Prometheus 数据源,登录 Grafana,点击设置,选择“连接”,添加新数据源,选择 Prometheus 类型,并填入 Prometheus 服务器的 HTTP 地址,如 `http://192.168.1.1:9090`,验证连接。之后,从 Grafana 官方仪表板库导入监控面板,如主机监控模板,以可视化系统状态。完成这些步骤后,便建立了有效的监控系统。
650 1