如何在 Ubuntu 22.04 LTS 上安裝元數據庫

在本教程中,我們將向您展示如何在Ubuntu22.04 長期支持。 對於那些不知道的人,Metabase 是一個開源商業智能和分析平台,允許用戶輕鬆創建和共享交互式儀表板和報告,可以連接到各種數據源和拖放界面。它使非技術用戶可以輕鬆創建圖表、圖形和報告,它還提供廣泛的自定義選項,具有內置數據倉庫,並可以藉助外部數據倉庫解決方案處理大數據。 例如 Amazon Redshift 和 Google BigQuery。

本文假設您至少對 Linux 有基本的了解,您知道如何使用 shell,最重要的是,您在自己的 VPS 上託管您的網站。 安裝非常簡單,它假定您在 root 帳戶下運行,如果不是,您可能需要添加 ' sudo ' 獲取 root 權限的命令。 我將向您展示使用 Docker 逐步安裝 Metabase。 您可以按照 Ubuntu 22.04 和任何其他基於德比安比如 Linux Mint、Elementary OS、Pop!_OS 等等。

以前的要求

  • 運行以下操作系統之一的服務器:Ubuntu 22.04、20.04 和任何其他基於 Debian 的發行版,如 Linux Mint。
  • 建議您使用全新的操作系統安裝以避免潛在問題。
  • 通過 SSH 訪問服務器(如果您在桌面上,則只需打開終端)。
  • 有效的 Internet 連接。 您將需要 Internet 連接來下載 Metabase 所需的包和依賴項。
  • non-root sudo user 或訪問 root user . 我們建議充當 non-root sudo user 但是,如果您在以 root 身份運行時不小心,可能會損壞您的系統。

在 Ubuntu 22.04 LTS Jammy Jellyfish 上安裝元數據庫

第 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 需要 root 權限。 如果你想避免使用 sudo 每次你運行 docker 命令,將您的用戶名添加到 docker 簇:

                      sudo usermod -aG docker $(whoami)
su - ${USER}
                    

確認您的用戶已添加到 docker 組:

                      groups
                    

有關安裝和管理 Docker 的其他資源,請閱讀以下帖子:

  • 如何在 Ubuntu Linux 上安裝 Docker √

步驟 3. 為 Metabase 創建 Docker Compose 文件。

首先,為元數據庫配置創建一個目錄:

                      mkdir metabase
cd metabase
                    

接下來,使用您喜歡的文本編輯器創建並打開 docker compose 文件:

                      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 https://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
                    

向其中添加以下代碼。 將您生成的密鑰粘貼到 MB_ENCRYPTION_SECRET_KEY 多變的。 完成您的 Metabase 域,包括 HTTPS 協議。 使用您使用的提供商填寫您的 SMTP 詳細信息。 我們正在使用亞馬遜 SES。 他 MB_PASSWORD_COMPLEXITY 該變量設置為 strong,這意味著您的 Metabase 密碼:

                      MB_SITE_URL=https://your-domain.com
MB_SITE_NAME="Howtoforge"

[email protected]
[email protected]
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 基礎存儲庫中可用。 現在運行下面的命令在你的 Ubuntu 系統上安裝最新版本的 Nginx:

                      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              https://127.0.0.1:3000;
  }
}
                    

保存並關閉文件,然後使用以下命令重新啟動 Nginx 服務:

                      nginx -t
sudo systemctl restart nginx
                    

有關安裝 Nginx 的其他資源,請閱讀以下帖子:

  • 如何在 Ubuntu Linux 上安裝 Nginx √

第 6 步。使用 Let's Encrypt SSL 保護元數據庫。

首先,使用以下命令安裝 Certbot 客戶端:

                      sudo apt install certbot python3-certbot-nginx
                    

接下來,按照以下步驟使用 Let's Encrypt 獲取您的 SSL 證書:

                      certbot --apache -d your-domain.com
                    

Let's Encrypt 證書有效期為 90 天,強烈建議在證書過期前續訂證書。 您可以通過運行以下命令來測試證書的自動續訂:

                      sudo certbot renew --dry-run
                    

步驟 7. 配置防火牆。

Ubuntu 22.04 有 ufw 默認運行的防火牆。 通過端口啟用連接 80 HTTP 和 443 HTTPS:

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

步驟 8. 訪問元數據庫的 Web 界面。

成功安裝後,打開 Web 瀏覽器並使用 URL 訪問 Metabase Web UI https://your-domain.com . 您將被重定向到以下頁面:

恭喜! 您已成功安裝配置數據庫。 感謝您使用本教程在 Ubuntu 系統上使用 Docker Compose 安裝 Metabase。 如需更多幫助或有用信息,我們建議您諮詢元數據庫官方網站.

相關文章