首页
/ 使用Docker Compose部署Sitespeed.io监控系统

使用Docker Compose部署Sitespeed.io监控系统

2025-07-08 04:51:59作者:史锋燃Gardner

Sitespeed.io是一款强大的网站性能监控工具,它可以帮助开发者持续监控网站性能指标。本文将详细介绍如何使用Docker Compose快速部署Sitespeed.io的监控系统,包含Grafana可视化面板和Graphite时序数据库。

系统架构概述

这套监控系统由两个核心组件构成:

  1. Grafana:数据可视化平台,用于展示性能指标
  2. Graphite:时序数据库,用于存储性能数据

通过Docker Compose编排,我们可以轻松部署和管理这两个服务。

部署配置详解

1. Grafana服务配置

Grafana配置部分定义了数据可视化平台的基本参数:

grafana:
  image: grafana/grafana:11.0.0
  hostname: grafana
  depends_on:
    - graphite
  ports:
    - "3000:3000"
  environment:
    - GF_SECURITY_ADMIN_PASSWORD=hdeAga76VG6ga7plZ1
    - GF_SECURITY_ADMIN_USER=sitespeedio
    - GF_AUTH_ANONYMOUS_ENABLED=true
    - GF_USERS_ALLOW_SIGN_UP=false
    - GF_USERS_ALLOW_ORG_CREATE=false
    - GF_INSTALL_PLUGINS=grafana-piechart-panel,marcusolsson-json-datasource,marcusolsson-dynamictext-panel
    - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/var/lib/grafana/dashboards/Welcome.json
  volumes:
    - grafana:/var/lib/grafana
    - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
    - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
    - ./grafana/provisioning/dashboards:/var/lib/grafana/dashboards
  restart: always

关键配置说明

  • 安全设置:配置了管理员账号(sitespeedio)和密码,同时启用了匿名访问
  • 插件安装:预装了饼图面板和JSON数据源等实用插件
  • 仪表板配置:设置了默认首页仪表板路径
  • 数据持久化:通过卷挂载确保配置和数据不会因容器重启而丢失

2. Graphite服务配置

Graphite作为时序数据库,负责存储性能指标数据:

graphite:
  image: sitespeedio/graphite:1.1.10-3
  hostname: graphite
  ports:
    - "2003:2003"
    - "8080:80"
  restart: always
  volumes:
    - whisper:/opt/graphite/storage/whisper

关键配置说明

  • 端口映射:2003端口用于接收指标数据,80端口提供Web界面
  • 数据存储:使用whisper卷持久化存储时序数据
  • 生产建议:注释部分提供了生产环境配置建议,包括数据库和配置文件的外部挂载

部署步骤

  1. 确保已安装Docker和Docker Compose
  2. 创建项目目录并保存上述配置为docker-compose.yml
  3. 创建必要的子目录结构:
    mkdir -p grafana/provisioning/{datasources,dashboards}
    
  4. 启动服务:
    docker-compose up -d
    

访问系统

  • Grafana:访问http://localhost:3000,使用配置的用户名(sitespeedio)和密码登录
  • Graphite:访问http://localhost:8080查看原始数据

生产环境建议

  1. 数据持久化:将Graphite数据库文件(graphite.db)和配置文件挂载到宿主机
  2. 安全加固:修改默认密码,考虑禁用匿名访问
  3. 资源限制:为容器配置适当的CPU和内存限制
  4. 备份策略:定期备份whisper和grafana数据卷

总结

通过这套Docker Compose配置,我们可以快速搭建一个完整的网站性能监控系统。Sitespeed.io收集的数据将通过Graphite存储,并在Grafana中可视化展示,为网站性能优化提供数据支持。对于生产环境,建议根据实际需求调整配置,特别是数据持久化和安全方面的设置。