Metabase 是一个开源的商业智能和分析平台,允许用户轻松创建和共享交互式仪表板和报告,它可以连接到各种数据源,拖放界面使非技术用户可以轻松创建图表、图形和报告,它还提供了广泛的自定义选项, 它具有内置的数据仓库功能,可以在Amazon Redshift和Google BigQuery等外部数据仓库解决方案的帮助下处理大数据。
在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 Metabase
第 1 步。首先,通过在终端中运行以下命令,确保所有系统软件包都是最新的。apt
sudo apt update sudo apt upgrade
第 2 步。安装 Docker。
默认情况下,Docker 在 Ubuntu 22.04 基础存储库上不可用。现在运行以下命令将 Docker 存储库添加到系统中:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
接下来,将 GPG 密钥导入您的系统:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
启用存储库后,现在使用以下命令安装最新版本的 Docker 包:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
您可以验证 Docker 是否已安装以及当前版本:
docker -v
成功安装后,启用 Docker(在系统启动时自动启动)、启动并使用以下命令验证状态:
sudo systemctl enable docker sudo systemctl start docker sudo systemctl status docker
默认情况下,Docker 需要根权限。如果要避免在每次运行命令时使用,请将用户名添加到组中:sudo
docker
docker
sudo usermod -aG docker $(whoami) su - ${USER}
确认您的用户已添加到 Docker 组:
groups
有关安装和管理 Docker 的其他资源,请阅读下面的帖子:
- 如何在 Ubuntu Linux √ 上安装 Docker。
第 3 步。为元数据库创建 Docker 撰写文件。
首先,为元数据库配置创建一个目录:
mkdir metabase cd metabase
接下来,使用您喜欢的文本编辑器创建并打开 Docker 撰写文件:
nano docker-compose.yml
添加以下文件:
version: '3.9' services: metabase: image: metabase/metabase:latest container_name: metabase hostname: metabase volumes: - /dev/urandom:/dev/random:ro ports: - 3000:3000 environment: MB_DB_TYPE: postgres MB_DB_DBNAME: metabase MB_DB_PORT: 5432 MB_DB_USER_FILE: /run/secrets/db_user MB_DB_PASS_FILE: /run/secrets/db_password MB_DB_HOST: postgres env_file: - metabase.env healthcheck: test: curl --fail -I http://localhost:3000/api/health || exit 1 interval: 15s retries: 5 start_period: 10s timeout: 5s networks: - metanet1 depends_on: - postgres secrets: - db_password - db_user postgres: image: postgres:latest container_name: postgres hostname: postgres environment: POSTGRES_USER_FILE: /run/secrets/db_user POSTGRES_DB: metabase POSTGRES_PASSWORD_FILE: /run/secrets/db_password healthcheck: test: ['CMD', 'pg_isready', '-U', 'postgres'] volumes: - ./postgresql:/var/lib/postgresql/data networks: - metanet1 secrets: - db_password - db_user networks: metanet1: driver: bridge secrets: db_password: file: db_password.txt db_user: file: db_user.txt
保存并关闭文件。PostgreSQL 数据库用户名和密码分别存储在文件和文件中。db_user.txt
db_password.txt
然后我们创建并打开文件进行编辑:db_user.txt
nano db_user.txt
接下来,创建并打开文件进行编辑:db_password.txt
nano db_password.txt
第 4 步。配置环境文件元数据库。
首先,我们使用以下命令生成一个加密密钥:
openssl rand -base64 32
接下来,创建并打开文件进行编辑:metabase.env
nano metabase.env
向其添加以下代码。粘贴针对变量生成的密钥。填写元数据库域,包括 HTTPS 协议。使用您使用的任何提供商填写您的 SMTP 详细信息。我们正在使用 Amazon SES。变量设置为强,这意味着您的元数据库密码:MB_ENCRYPTION_SECRET_KEY
MB_PASSWORD_COMPLEXITY
MB_SITE_URL=https://your-domain.com MB_SITE_NAME="Howtoforge" MB_ADMIN_EMAIL=meilana@your-domain.com MB_EMAIL_FROM_ADDRESS=admin@your-domain.com MB_EMAIL_FROM_NAME=idroot MB_EMAIL_SMTP_HOST=email-smtp.us-west-2.amazonaws.com MB_EMAIL_SMTP_USERNAME=AWS_USERID MB_EMAIL_SMTP_PASSWORD=AWS_KEY MB_EMAIL_SMTP_PORT=587 MB_EMAIL_SMTP_SECURITY=starttls MB_ENCRYPTION_SECRET_KEY=QWPbmwNvWYVqR5Ne46dk0OvTH1xWGDt= MB_ANON_TRACKING_ENABLED=false MB_APPLICATION_NAME=Howtoforge Metabase MB_PASSWORD_COMPLEXITY=strong
完成所有配置文件后,就可以启动和启动容器了:
docker compose up -d
您可以使用以下命令观察容器的状态:
watch docker ps
第5步。安装 Nginx
默认情况下,Nginx 在 Ubuntu 22.04 基本存储库上可用。现在运行以下命令,将最新版本的 Nginx 安装到您的 Ubuntu 系统中:
sudo apt install nginx
成功安装后,启用 Nginx(在系统启动时自动启动)、启动并使用以下命令验证状态:
sudo systemctl enable nginx sudo systemctl start nginx sudo systemctl status nginx
确认安装并检查已安装的 Nginx 构建版本:
nginx -v
现在创建虚拟主机并打开文件:/etc/nginx/conf.d/metabase.conf
nano /etc/nginx/conf.d/metabase.conf
添加以下文件:
server { # Redirect any http requests to https listen 80; listen [::]:80; server_name your-domain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name your-domain.com.com; access_log /var/log/nginx/metabase.access.log; error_log /var/log/nginx/metabase.error.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:3000; } }
保存并关闭文件,然后使用以下命令重新启动 Nginx 服务:
nginx -t sudo systemctl restart nginx
有关安装 Nginx 的其他资源,请阅读下面的帖子:
- 如何在 Ubuntu Linux √ 上安装 Nginx
第 6 步。使用“让我们加密 SSL”保护元数据库。
首先,使用以下命令安装 Certbot 客户端:
sudo apt install certbot python3-certbot-nginx
接下来,按照以下步骤使用Let’s Encrypt获取SSL证书:
certbot --apache -d your-domain.com
让我们加密证书的有效期为 90 天,强烈建议在证书过期之前续订证书。您可以通过运行以下命令来测试证书的自动续订:
sudo certbot renew --dry-run
步骤 7.配置防火墙。
Ubuntu 22.04 默认运行防火墙。启用通过端口 HTTP 和 HTTPS 的连接:ufw
80
443
sudo ufw allow 'Nginx FULL' sudo ufw enable sudo ufw status
第8步。访问元数据库 Web 界面。
成功安装后,打开您的 Web 浏览器并使用 URL 访问元数据库 Web UI。您将被重定向到以下页面:https://your-domain.com
感谢您使用本教程在 Ubuntu 系统上使用 Docker Compose 安装元数据库。有关其他帮助或有用信息,我们建议您查看元数据库官方网站。