别再裸奔搞监控了!一篇带你上手 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 的魅力在于:

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

一句话总结:

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

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

目录
相关文章
|
1天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
941 150
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1662 8
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
618 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
590 16
|
9天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
673 151