搬瓦工部署 Metabase 商业智能分析平台教程

Metabase 是一款广受欢迎的开源商业智能(BI)工具,它让不懂 SQL 的业务人员也能轻松查询数据库并生成可视化报表。与传统 BI 工具相比,Metabase 以简洁的界面和零代码的查询方式著称,非常适合中小团队使用。本文将详细介绍如何在搬瓦工 VPS 上通过 Docker 部署 Metabase。部署前请确保已安装 Docker 和 Docker Compose

一、Metabase 功能概述

  • 可视化查询构建器:通过点击和下拉菜单即可构建复杂查询,无需编写 SQL。
  • SQL 原生查询:支持编写自定义 SQL 并将结果参数化,供非技术人员使用。
  • 交互式仪表板:拖拽式布局,支持筛选联动和自动刷新。
  • 定时报告:可设置定时将报告通过邮件或 Slack 发送给团队成员。
  • 嵌入分析:支持将图表和仪表板嵌入到你自己的应用中。
  • 多数据库支持:原生支持 PostgreSQL、MySQL、MongoDB、BigQuery、Redshift 等。

二、系统要求

  • 操作系统:Ubuntu 20.04+ 或 Debian 11+。
  • 内存:至少 1GB,推荐 2GB 以上(Metabase 基于 Java,内存消耗较高)。
  • 磁盘:至少 5GB 可用空间。
  • Docker:已安装 Docker 和 Docker Compose。

搬瓦工 VPS 方案选择建议参考 全部方案,购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net

三、创建项目目录

mkdir -p /opt/metabase && cd /opt/metabase

四、编写 Docker Compose 配置

创建 docker-compose.yml 文件:

cat > /opt/metabase/docker-compose.yml <<'EOF'
version: '3.8'

services:
  metabase-db:
    image: postgres:15
    restart: always
    environment:
      POSTGRES_DB: metabase
      POSTGRES_USER: metabase
      POSTGRES_PASSWORD: your_db_password_here
    volumes:
      - metabase_db_data:/var/lib/postgresql/data

  metabase:
    image: metabase/metabase:latest
    restart: always
    ports:
      - "3000:3000"
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: metabase
      MB_DB_PASS: your_db_password_here
      MB_DB_HOST: metabase-db
      JAVA_OPTS: "-Xmx1g"
    depends_on:
      - metabase-db

volumes:
  metabase_db_data:
EOF

默认情况下 Metabase 使用内嵌的 H2 数据库,但在生产环境中强烈建议使用 PostgreSQL 存储元数据,以获得更好的稳定性和备份能力。

五、启动服务

cd /opt/metabase
docker compose up -d

查看启动日志:

docker compose logs -f metabase

Metabase 首次启动需要初始化数据库,可能需要等待 1-2 分钟。当看到类似 "Metabase Initialization COMPLETE" 的日志时,表示启动成功。

六、初始设置

在浏览器中访问 http://your_server_ip:3000,Metabase 会引导你完成初始设置:

  • 语言选择:选择简体中文。
  • 创建管理员账户:设置用户名、邮箱和密码。
  • 连接数据源:填入你要分析的数据库连接信息。
  • 使用偏好:选择是否允许匿名使用数据收集。

七、配置反向代理

使用 Nginx 反向代理并开启 HTTPS:

cat > /etc/nginx/sites-available/metabase <<'EOF'
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        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/metabase /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com

八、常用功能使用

创建问题(查询)

点击右上角 新建 → 问题,选择数据库和表,通过可视化查询构建器设定筛选条件、聚合方式和分组维度,即可生成图表。你也可以切换到"原生查询"模式直接编写 SQL。

搭建仪表板

点击 新建 → 仪表板,将已保存的问题添加到仪表板中。可以自由调整图表大小和位置,添加文本说明和筛选控件。

设置定时报告

在仪表板右上角点击分享图标,选择"定时发送",可以按小时、每天或每周定时将报告通过邮件发送给指定成员。

九、JVM 内存调优

Metabase 运行在 JVM 上,默认内存可能不足。在 docker-compose.yml 中通过 JAVA_OPTS 参数调整:

# 1GB 内存的 VPS 建议设置
JAVA_OPTS: "-Xmx512m"

# 2GB 内存的 VPS 建议设置
JAVA_OPTS: "-Xmx1g"

# 4GB 及以上内存
JAVA_OPTS: "-Xmx2g"

修改后需要重新创建容器:

docker compose down && docker compose up -d

十、数据备份与恢复

# 备份 Metabase 元数据库
docker compose exec metabase-db pg_dump -U metabase metabase > /opt/metabase/backup_$(date +%Y%m%d).sql

# 恢复备份
cat backup_file.sql | docker compose exec -T metabase-db psql -U metabase metabase

十一、常见问题

启动时报内存不足

降低 JAVA_OPTS 中的 -Xmx 值,或升级 VPS 配置。同时确保没有其他高内存进程占用资源。

连接数据库超时

检查目标数据库的防火墙规则,确保允许从 VPS IP 进行连接。如果数据库在同一台 VPS 上,使用 Docker 网络名称而非 localhost。

总结

Metabase 是入门门槛最低的开源 BI 工具之一,特别适合需要让非技术人员也能自助查询数据的团队。通过在搬瓦工 VPS 上自托管,你可以享有完整的功能同时完全掌控数据隐私。如需功能更强大的数据可视化方案,可参考 Apache Superset 教程。选购搬瓦工 VPS 请参考 全部方案,优惠码 NODESEEK2026 可享 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。