使用Docker Compose部署Sitespeed.io监控系统
2025-07-08 04:51:59作者:史锋燃Gardner
Sitespeed.io是一款强大的网站性能监控工具,它可以帮助开发者持续监控网站性能指标。本文将详细介绍如何使用Docker Compose快速部署Sitespeed.io的监控系统,包含Grafana可视化面板和Graphite时序数据库。
系统架构概述
这套监控系统由两个核心组件构成:
- Grafana:数据可视化平台,用于展示性能指标
- 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卷持久化存储时序数据
- 生产建议:注释部分提供了生产环境配置建议,包括数据库和配置文件的外部挂载
部署步骤
- 确保已安装Docker和Docker Compose
- 创建项目目录并保存上述配置为
docker-compose.yml
- 创建必要的子目录结构:
mkdir -p grafana/provisioning/{datasources,dashboards}
- 启动服务:
docker-compose up -d
访问系统
- Grafana:访问
http://localhost:3000
,使用配置的用户名(sitespeedio)和密码登录 - Graphite:访问
http://localhost:8080
查看原始数据
生产环境建议
- 数据持久化:将Graphite数据库文件(graphite.db)和配置文件挂载到宿主机
- 安全加固:修改默认密码,考虑禁用匿名访问
- 资源限制:为容器配置适当的CPU和内存限制
- 备份策略:定期备份whisper和grafana数据卷
总结
通过这套Docker Compose配置,我们可以快速搭建一个完整的网站性能监控系统。Sitespeed.io收集的数据将通过Graphite存储,并在Grafana中可视化展示,为网站性能优化提供数据支持。对于生产环境,建议根据实际需求调整配置,特别是数据持久化和安全方面的设置。