如何在 Ubuntu 22.04 上安装 Metabase 数据可视化分析工具

简介

Metabase 提供了一个简单易用的界面,让你能够轻松地对数据进行探索和分析。通过本文的指导,你将能够在 Ubuntu 22.04 系统上安装并配置 Metabase,并通过 Nginx 进行反向代理以提高安全性。本教程假设你已经拥有了一个非 root 用户,并具有 sudo 权限。

功能特点:

  1. 易于使用的界面:Metabase 提供了一个简洁直观的用户界面,使得即使是没有技术背景的用户也能轻松地创建和理解复杂的数据查询和可视化。
  2. 开源和社区支持:作为一个开源工具,Metabase 拥有一个活跃的社区,用户可以从中获得帮助。
  3. 多数据库支持:Metabase 支持连接多种数据库,包括但不限于 PostgreSQL、MySQL、SQL Server 等。
  4. 交互式仪表板和报告:用户可以创建包含多个图表和数据视图的交互式仪表板,并且能够通过电子邮件定期发送报告,使得数据分享和沟通更加便捷。
  5. 数据权限和安全性:Metabase 提供了细致的数据权限管理功能,允许管理员控制不同用户对数据的访问权限,确保数据的安全性和合规性。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。
  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。
  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。
  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1. 系统更新

首先,确保你的系统是最新的:

bash 复制代码
sudo apt update
sudo apt upgrade

2. 安装 Java

Metabase 需要 Java 来运行。安装 OpenJDK 包:

bash 复制代码
sudo apt install openjdk-17-jdk -y

验证安装:

bash 复制代码
java -version

你应该看到类似以下的输出:

openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-1, mixed mode, sharing)

3. 下载并安装 Metabase

访问 Metabase 的下载页面,复制最新版本的链接。使用 wget 下载 Metabase jar 文件:

bash 复制代码
wget https://downloads.metabase.com/v0.50.8/metabase.jar

将 jar 文件移动到 /opt/metabase 并创建目录(如果不存在):

bash 复制代码
sudo mkdir /opt/metabase
sudo mv metabase.jar /opt/metabase/

4. 创建 Metabase 服务文件

为了使用 systemd 管理 Metabase,创建一个服务文件:

bash 复制代码
sudo nano /etc/systemd/system/metabase.service

添加以下内容:

[Unit]
Description=Metabase server
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/opt/metabase
ExecStart=/usr/bin/java -jar /opt/metabase/metabase.jar
User=metabase
Type=simple
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase

[Install]
WantedBy=multi-user.target

保存并关闭文件。

创建 Metabase 用户:

bash 复制代码
sudo useradd -r -s /bin/false metabase
sudo chown -R metabase: /opt/metabase

5. 启动并启用 Metabase 服务

重新加载 systemd 以识别新服务:

bash 复制代码
sudo systemctl daemon-reload

启动 Metabase 服务:

bash 复制代码
sudo systemctl start metabase

启用 Metabase 服务以在启动时自动运行:

bash 复制代码
sudo systemctl enable metabase

检查服务状态以确保正确运行:

bash 复制代码
sudo systemctl status metabase

6. 配置 PostgreSQL

安装 PostgreSQL:

bash 复制代码
sudo apt install postgresql postgresql-contrib

确保 PostgreSQL 服务正在运行:

bash 复制代码
sudo systemctl status postgresql

在 PostgreSQL 中创建数据库和用户:

切换到 PostgreSQL 用户:

bash 复制代码
sudo -i -u postgres

访问 PostgreSQL 提示符:

bash 复制代码
psql

为 Metabase 创建一个新数据库:

sql 复制代码
CREATE DATABASE metabase;

为 Metabase 创建一个新用户,并设置一个安全的密码:

sql 复制代码
CREATE USER metabaseuser WITH ENCRYPTED PASSWORD 'secure_password';

授予用户对 Metabase 数据库的访问权限:

sql 复制代码
GRANT ALL PRIVILEGES ON DATABASE metabase TO metabaseuser;

退出 PostgreSQL 提示符:

sql 复制代码
\\q

退出 PostgreSQL 用户 shell:

bash 复制代码
exit

7. 配置防火墙

如果你启用了防火墙,需要添加 HTTP 和 HTTPS:

bash 复制代码
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

8. 保护你的 Metabase 安装

对于生产环境,建议使用反向代理和 SSL 来保护 Metabase。你可以使用 Nginx 来实现这一点。

安装 Nginx:

bash 复制代码
sudo apt install nginx

配置 Nginx:

bash 复制代码
sudo nano /etc/nginx/sites-available/your_domain

注意:your_domain 替换为你的域名。

添加以下内容:

server {
    listen 80;
    server_name your_domain;
    location / {
        proxy_pass <http://localhost: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;
    }
}

注意:your_domain 替换为你的域名。

启用配置:

bash 复制代码
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

测试并重启 Nginx 服务:

bash 复制代码
sudo nginx -t
sudo systemctl restart nginx

使用 Let's Encrypt 获取 SSL 证书:

bash 复制代码
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain

注意:your_domain 替换为你的域名。

9. 访问 Metabase

Metabase 默认运行在 3000 端口。打开浏览器并导航到 https://your_domain。你将被引导至 Metabase 的设置向导。按照提示设置初始用户并连接到你的数据库。

故障排除

如果你遇到 Nginx 502 Bad Gateway 错误,使用以下命令检查 Metabase 服务状态:

bash 复制代码
sudo systemctl status metabase

如果服务不活跃,使用以下命令重启服务:

bash 复制代码
sudo systemctl restart metabase

等待一段时间,服务将启动。如果需要检查日志,执行以下命令:

bash 复制代码
sudo journalctl -u metabase

现在你可以开始创建仪表板和可视化,以交互式地探索你的数据。对于更高级的配置和功能,请参考 Metabase 官方文档

相关链接

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site

我的博客:https://blog.ivwv.site

相关推荐
BAGAE30 分钟前
tomcat,appche,nginix,jboss区别
java·linux·数据库·ubuntu·tomcat
zqzgng1 小时前
裸金属服务器和专属主机的区别是什么?
linux·运维·服务器
Mr.kanglong1 小时前
【Linux】TCP网络编程
linux·运维·服务器
yylの博客1 小时前
windows下生成的脚本,linux无法正常运行问题
linux·windows·go
孤邑1 小时前
【Linux】select,poll和epoll
linux·网络·笔记·学习
OkeyProxy1 小时前
Linux系統中修改IP地址詳細教程
linux·代理模式·proxy模式·ip地址·代理ip
粥啊、1 小时前
八、Linux下的火墙管理及优化
linux·运维·服务器
雾间云1 小时前
【Linux】基础-文件系统
linux·运维·服务器
歌笑爱学习1 小时前
【软件国产化】| Windows和Linux下文件名后缀是否区分大小写
linux·c语言·c++·windows
抛物线.1 小时前
Linux ACL 权限详解与多场景实践
linux·运维·windows