搬瓦工部署 Redash 数据仪表板教程
Redash 是一款以 SQL 查询为核心的开源数据可视化工具,专为需要编写查询并共享分析结果的团队设计。它支持连接超过 35 种数据源,包括传统关系数据库、NoSQL、云数据仓库以及各种 API。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Redash 并完成基础配置。部署前请确保已安装 Docker 和 Docker Compose。
一、Redash 核心特性
- SQL 编辑器:内置语法高亮、自动补全和查询历史功能。
- 参数化查询:支持在查询中添加参数,生成交互式报表。
- 多种可视化类型:折线图、柱状图、散点图、地图、透视表、词云等。
- 告警功能:当查询结果满足指定条件时,通过邮件或 Webhook 发送通知。
- 查询片段:可复用的 SQL 片段,避免重复编写常用子查询。
- API 接口:所有功能均可通过 REST API 调用,便于与其他系统集成。
二、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 2GB,推荐 4GB 以上。
- 磁盘:至少 10GB 可用空间。
- Docker:已安装 Docker 和 Docker Compose。
选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net。
三、创建项目目录并生成密钥
mkdir -p /opt/redash && cd /opt/redash
# 生成 Cookie 加密密钥
openssl rand -base64 32 > /opt/redash/.secret_key
四、创建环境变量文件
cat > /opt/redash/.env <<'EOF'
REDASH_DATABASE_URL=postgresql://redash:your_db_password@redash-db:5432/redash
REDASH_REDIS_URL=redis://redash-cache:6379/0
REDASH_SECRET_KEY=your_secret_key_here
REDASH_COOKIE_SECRET=your_cookie_secret_here
PYTHONUNBUFFERED=0
REDASH_LOG_LEVEL=INFO
REDASH_MAIL_SERVER=smtp.example.com
REDASH_MAIL_PORT=587
REDASH_MAIL_USE_TLS=true
REDASH_MAIL_USERNAME=your_email@example.com
REDASH_MAIL_PASSWORD=your_email_password
REDASH_MAIL_DEFAULT_SENDER=your_email@example.com
EOF
五、编写 Docker Compose 配置
cat > /opt/redash/docker-compose.yml <<'EOF'
version: '3.8'
x-redash-common: &redash-common
image: redash/redash:latest
env_file: .env
restart: always
services:
redash-db:
image: postgres:15
restart: always
environment:
POSTGRES_DB: redash
POSTGRES_USER: redash
POSTGRES_PASSWORD: your_db_password
volumes:
- redash_db_data:/var/lib/postgresql/data
redash-cache:
image: redis:7-alpine
restart: always
redash-server:
<<: *redash-common
command: server
ports:
- "5000:5000"
depends_on:
- redash-db
- redash-cache
redash-scheduler:
<<: *redash-common
command: scheduler
depends_on:
- redash-db
- redash-cache
redash-worker:
<<: *redash-common
command: worker
depends_on:
- redash-db
- redash-cache
volumes:
redash_db_data:
EOF
六、初始化并启动
cd /opt/redash
# 创建数据库表
docker compose run --rm redash-server create_db
# 启动所有服务
docker compose up -d
查看启动状态:
docker compose ps
七、配置反向代理
cat > /etc/nginx/sites-available/redash <<'EOF'
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -s /etc/nginx/sites-available/redash /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com
八、添加数据源
访问 Redash 并完成注册后,进入 Settings → Data Sources 添加数据源。Redash 支持的常见数据源包括:
- PostgreSQL、MySQL、SQLite、Microsoft SQL Server
- MongoDB、Elasticsearch、InfluxDB
- Google BigQuery、Amazon Redshift、Snowflake
- Google Sheets、CSV/Excel 文件
- 各种 REST API 和 JSON 接口
九、创建查询和可视化
在查询编辑器中编写 SQL,执行后在结果下方点击 + New Visualization 选择图表类型。Redash 的参数化查询功能非常实用,你可以在 SQL 中使用双花括号语法定义参数,Redash 会自动生成对应的输入控件。
十、设置告警
对已保存的查询创建告警:进入查询页面,点击铃铛图标,设置触发条件(如某个值大于阈值),选择通知方式。告警支持邮件、Slack Webhook 和自定义 Webhook。
十一、数据备份
# 备份 Redash 数据库
docker compose exec redash-db pg_dump -U redash redash > /opt/redash/backup_$(date +%Y%m%d).sql
# 恢复
cat backup_file.sql | docker compose exec -T redash-db psql -U redash redash
十二、常见问题
Worker 进程频繁崩溃
通常是内存不足导致,可以减少 Worker 并发数或升级 VPS 内存。查看 Worker 日志定位具体问题:
docker compose logs redash-worker
查询执行超时
Redash 默认查询超时为 300 秒。如需调整,在环境变量中添加:
REDASH_ADHOC_QUERY_TIME_LIMIT=600
总结
Redash 是一款以 SQL 为核心的数据分析工具,适合技术团队快速搭建数据查询和可视化平台。它的告警功能和 API 接口使其在自动化监控场景中也非常实用。如果你需要更偏向无代码操作的 BI 工具,可以参考 Metabase;如需更丰富的可视化能力,可以参考 Apache Superset。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。