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

server/2024/11/25 18:28:30/

简介

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

功能特点:

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

image.png

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

准备工作

服务器准备

必要前提:

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

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

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

创建雨云服务器

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

  • 点击 云产品服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

https://img-blog.csdnimg.cn/img_convert/4c16271f125adea69da6ed9e7b2a4226.png

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

https://img-blog.csdnimg.cn/img_convert/414570cd3da48d4cc4bf51489992000b.png

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器Win+R 打开运行窗口,输入 powershell 后点击确定。

https://img-blog.csdnimg.cn/img_convert/c8afbeb764459a37a8451dd2ed8eeff1.png

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器

https://img-blog.csdnimg.cn/img_convert/ea5814f1d1068ca9fa2bb94631cfbdf1.png

  • 到此为止,我们的云服务器就远程连接上了。

开始部署

1. 系统更新

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

sudo apt update
sudo apt upgrade

2. 安装 Java

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

sudo apt install openjdk-17-jdk -y

验证安装:

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)

Metabase_87">3. 下载并安装 Metabase

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

wget https://downloads.metabase.com/v0.50.8/metabase.jar

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

sudo mkdir /opt/metabase
sudo mv metabase.jar /opt/metabase/

Metabase__102">4. 创建 Metabase 服务文件

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

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 用户:

sudo useradd -r -s /bin/false metabase
sudo chown -R metabase: /opt/metabase

Metabase__141">5. 启动并启用 Metabase 服务

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

sudo systemctl daemon-reload

启动 Metabase 服务:

sudo systemctl start metabase

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

sudo systemctl enable metabase

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

sudo systemctl status metabase

6. 配置 PostgreSQL

安装 PostgreSQL:

sudo apt install postgresql postgresql-contrib

确保 PostgreSQL 服务正在运行:

sudo systemctl status postgresql

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

切换到 PostgreSQL 用户:

sudo -i -u postgres

访问 PostgreSQL 提示符:

psql

Metabase 创建一个新数据库:

CREATE DATABASE metabase;

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

CREATE USER metabaseuser WITH ENCRYPTED PASSWORD 'secure_password';

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

GRANT ALL PRIVILEGES ON DATABASE metabase TO metabaseuser;

退出 PostgreSQL 提示符:

\\q

退出 PostgreSQL 用户 shell:

exit

7. 配置防火墙

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

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

Metabase__235">8. 保护你的 Metabase 安装

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

安装 Nginx:

sudo apt install nginx

配置 Nginx:

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 替换为你的域名。

启用配置:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

测试并重启 Nginx 服务:

sudo nginx -t
sudo systemctl restart nginx

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

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain

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

Metabase_293">9. 访问 Metabase

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

image.png

故障排除

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

sudo systemctl status metabase

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

sudo systemctl restart metabase

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

sudo journalctl -u metabase

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

相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site


http://www.ppmy.cn/server/144865.html

相关文章

C/C++ 每日一练:实现字符串的大小写转换

题目要求 实现一个函数&#xff0c;将字符串中的所有字母的大小写进行转换&#xff0c;即将大写字母转换为小写字母&#xff0c;小写字母转换为大写字母&#xff0c;非字母字符保持不变。 示例&#xff1a; 输入&#xff1a;"Hello, World!" 输出&#xff1a;"…

C++之旅-set和map掌握篇

目录 前言 1.set的使用 1.1set类的介绍 1.2 set的构造和迭代器 1.3 set的增删查 1.4 代码练习 1.4.1 set的构造&#xff0c;插入与删除 1.4.2 set 的find的使用样例&#xff0c;与erase结合 1.4.3 set获取区间值函数的应用 1.5 multiset和set的差异 1.6 set强化练习&…

微信小程序技术架构图

一、视图层1.WXML&#xff08;WeiXin Markup Language&#xff09; 这是微信小程序的标记语言&#xff0c;类似于 HTML。它用于构建小程序的页面结构。例如&#xff0c;通过标签来定义各种视图元素&#xff0c;如<view>&#xff08;类似于 HTML 中的<div>&#xff…

Java爬虫:数据采集的强大工具

引言 在信息爆炸的今天&#xff0c;数据已成为企业决策的重要依据。无论是市场趋势分析、用户行为研究还是竞争对手监控&#xff0c;都离不开对海量数据的收集和分析。Java作为一种成熟且功能强大的编程语言&#xff0c;其在数据采集领域——尤其是爬虫技术的应用——展现出了…

Elasticsearch面试内容整理-安全与权限管理

在 Elasticsearch 中,安全与权限管理至关重要,特别是当系统处理敏感数据时。Elasticsearch 提供了一套全面的安全机制来确保数据的机密性、完整性和可用性。以下是 Elasticsearch 安全与权限管理的详细介绍。 安全组件概述 Elasticsearch 的安全功能由 Elastic Stack 提供的一…

leetcode 面试150之 156.LUR 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -…

法语旅游常用口语-柯桥学外语到蓝天广场泓畅学校

以下是一些实用的法语旅游常用口语&#xff0c;帮助你在法国旅行时能够进行基本的交流&#xff1a; 问候与道别 Bonjour: 用于日常问候。Au revoir: 用于告别。 请求帮助 S’il vous plat: 用于请求帮助&#xff0c;例如在需要寻找某个地点或服务时。 询问信息 Excusez-moi: 用…

Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)

使用Flink编写代码&#xff0c;步骤非常固定&#xff0c;大概分为以下几步&#xff0c;只要牢牢抓住步骤&#xff0c;基本轻松拿下&#xff1a; 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…