如何在 Ubuntu 22.04 LTS 上安装元数据库

Metabase 是一个开源的商业智能和分析平台,允许用户轻松创建和共享交互式仪表板和报告,它可以连接到各种数据源,拖放界面使非技术用户可以轻松创建图表、图形和报告,它还提供了广泛的自定义选项, 它具有内置的数据仓库功能,可以在Amazon Redshift和Google BigQuery等外部数据仓库解决方案的帮助下处理大数据。Metabase-logo

在 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 需要根权限。如果要避免在每次运行命令时使用,请将用户名添加到组中:sudodockerdocker

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.txtdb_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_KEYMB_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 的连接:ufw80443

sudo ufw allow 'Nginx FULL'
sudo ufw enable
sudo ufw status

第8步。访问元数据库 Web 界面。

成功安装后,打开您的 Web 浏览器并使用 URL 访问元数据库 Web UI。您将被重定向到以下页面:https://your-domain.com

metabase-web-interface

感谢您使用本教程在 Ubuntu 系统上使用 Docker Compose 安装元数据库。有关其他帮助或有用信息,我们建议您查看元数据库官方网站

未经允许不得转载:统信UOS之家 » 如何在 Ubuntu 22.04 LTS 上安装元数据库

相关文章