Grafana&Prometheus——后端带宽流量监测的基本配置
本文最后更新于 33 天前,其中的信息可能已经有所发展或是发生改变。

本文基于个人服务器环境和 2025-2026 年版本的 Docker、Caddy、Prometheus、Grafana 实践整理而成,配置可能因版本更新而略有变化。所有操作请在测试环境验证后再上生产。作者不对因照搬本文导致的任何数据丢失、服务中断、安全问题或其他损失承担责任。使用前请备份数据,并根据自身实际情况调整配置。监控系统涉及暴露端口时,务必加强访问控制(如认证、IP 白名单)。欢迎讨论交流,但请勿用于非法用途。

前言

完成了博客的搭建,发布在外网之后肯定多多少少想要查看一下流量的走向,如果单纯靠WordPress插件不够细粒,也不方便做历史趋势分析,毕竟200G的服务器总得塞点什么进去。所以这篇用于记录搭建的过程用作后面参考。

在利用docker compose部署WordPress后,也同样可以利用容器部署后端流量监控。先看一份结果展示

卡提可爱捏
卡提不见了:<

相关文件:
https://github.com/1MarsRain4/WordPress-files

现有环境:

  • Docker Compose 部署
  • 前端代理:Caddy(自动 HTTPS + HTTP/3)
  • WordPress:wordpress:php8.2-fpm-alpine(FPM 模式,轻量高性能)
  • 数据库:MariaDB 10.6
  • 缓存:Redis Alpine
  • 自定义网络:blog_net

操作流程

1、Caddyfile中添加metrics

#省去一些说明的部分的代码
{
    metrics
    admin 0.0.0.0:2019   # 让 Prometheus 从网络可达
}

---------------------------------------分割线--------------------------------------
#添加之后重启caddy容器
docker compose restart caddy

#可以先用docker compose ps查看caddy容器的镜像名称,不然可能会显示不存在当前镜像

2、验证metrics是否暴露

在宿主机操控容器curl这个配置

docker compose exec caddy curl http://localhost:2019/metrics

验证:
有返回结果后,反复登录自己的博客网站,再grep出caddy_http_*指标,返回结果出现下面类似结果,证明生效

3、compose.yml添加Prometheus&Grafana

  prometheus:
    image: prom/prometheus:v2.55.0   # 或 latest
    container_name: blog_prometheus
    restart: always
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prometheus_data:/prometheus
    networks:
      - blog_net
    ports:
      - "9090:9090"   # 调试用,可选暴露到宿主机

  grafana:
    image: grafana/grafana:11.6.0   # 或 latest,2026 年建议用 11.x
    container_name: blog_grafana
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=你的强密码改这里
      - GF_USERS_ALLOW_SIGN_UP=false
    networks:
      - blog_net
    depends_on:
      - prometheus

# 可选:容器资源监控(CPU/内存/网络IO)
  cadvisor:
    image: gcr.io/cadvisor/cadvisor:v0.49.1
    container_name: blog_cadvisor
    restart: always
    privileged: true
    devices:
      - /dev/kmsg:/dev/kmsg
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    networks:
      - blog_net

新增 volumes(在文件末尾 volumes: 下面加):

  prometheus_data:
  grafana_data:

红框内的位置就是Grafana的管理员账户和密码

3、创建prometheus.yml文件

放在compose.yml同目录下

global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'caddy'
    static_configs:
      - targets: ['blog_caddy:2019']
        labels:
          instance: 'caddy-blog'

  # 可选:监控 prometheus 自身
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # 可选:容器/宿主机资源
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['blog_cadvisor:8080']

启动所有新增服务

docker compose up -d prometheus grafana cadvisor

4、访问&配置Grafana

输入*服务器外网IP*:3000进入容器创建的Grafana网站,创建新的数据源

选择第一个Prometheus

框内输入http://prometheus:9090,可以选择Authentication账户密码认证,其他默认设置就好

在底层点击Save&test

弹出显示成功的绿框后,点击building a dashboard

来到这个界面选择import导入,弹窗显示的意思是 是否保存这个仪表盘,点击discard就好

在导入import界面,输入一些纯 Prometheus 模板的ID就可以直接使用,例如22870 或 20802

名字随机,UID随机。记得在最下面一栏Prometheus选择刚刚创建的数据源就好。
点击导入就可以正常看见仪表盘了

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇