Scott's Blog

学则不固, 知则不惑

0%

记录开源 BI 工具 Metabase 的部署

用最简单、快速的方式让你们公司的每一位拥有商业智能与分析。

Metabase 介绍

Metabase 有两个版本,开源版和企业版,有两种方式将它们部署到生成环境:

  1. Metabase 云,有钱不想自己折腾的选择,但数据访问比较受限制
  2. 自己托管,在自己的机器上或者是云服务商的主机上

对于 Metabase 云,他们会帮你搞定设置,备份,升级,你只需要专注在使用上,而不需要管如何部署等等。

对于自己托管的方案,我们需要准备两个东西:

  1. 一台服务器运行 Metabase 应用
  2. 一个应用的服务器,用来存储 Metabase 运行期间产生的数据

对于部署方式,用户是感觉不到任何差别的,实际上 Metabase 文档也写了,在底层即便是使用 Docker,Metabase 也是使用 Metabase JAR 的方式运行。

另外对于这一点的选择,也与 team 内部成员的技术储备有关,如果你的 team 成员比较懂 Docker,比如 服务器、网络等技术,则选择 Docker,否则选择 JAR;如果你的 taem 成员对两者都是差不多的懂,则选择 JAR,因为它需要学习的内容相对较少。

对于数据库,建议使用 PostgreSQL,MySQL,或者 MariaDb。

如果你使用云主机,则它们会自动帮你处理备份,否则你就需要自己备份。

使用 docker 部署

使用 docker 部署 metabase 非常简单,打开 Metabase 官方的 docker image 页面

复制下面的语句,将 docker image 拉取下来

1
docker pull metabase/metabase

然后,直接启动:

1
2
3
# 我 windows 机器上,3000 端口无法打开,所以将其设置为 8889
# docker -p 中,顺序是 宿主机端口:docker内端口
docker run -d -p 8889:3000 --name metabase metabase/metabase

然后访问本机的 8889 端口就可以看到欢迎界面了。

image.png

但是在添加数据库的界面中,是没有 Oracle 的,对我来说这是刚需,没办法得配置一下。

需要我们去 Oracle 下载 JDBC Driver JAR 文件,并放到容器内的 plugins 文件夹。

  1. 访问 Oracle JDBC 下载页面,这里是文档内推荐的版本
  2. 往下面找到 ojdbc8.jar
  3. 使用 docker cp 命令从宿主机拷贝该包到容器内
1
docker cp C:\Users\Scott\Downloads\ojdbc8.jar 614bccac20ce:/plugins/

或者也可以直接在启动的时候,将文件映射进去:

1
2
3
docker run -d -p 3000:3000 \
--mount type=bind,source=/your_path/metabase/plugins,destination=/plugins \
--name metabase metabase/metabase

这里的 plugins 文件夹中需要有 ojdbc8.jar 文件。如果你配置后连接数据库有编码错误,可以从 oracle 下载完整版的驱动,将其中的 orai18n.jar 也放进去。

然后打开 metabase ,添加数据库连接,即可看到 Oracle 也出现在列表中了。

至此,使用 Docker 对于 Meta 的部署就结束了。

还有一些高级的内容,比如如何将应用的数据存储在 docker 外部,或者是存储在 postgres 数据库中,可以参考官网的文档

配置邮箱

一开始使用 Metabase 设置邮箱,参考 Metabase 的官网文档(2022-2-21)并没有 outlook 的设置教程, 但设置的过程和参数应该是差不多的。

于是搜索 smtp outlook 的设置文档,找到了微软的帮助文档: POP, IMAP, and SMTP settings

按照微软的教程:

1
2
SMTP: smtp.office365.com
SMTP: 587

取决于你公司的配置,你可能直接配置成功,或者也有可能像我一样遇到无法连接到 smtp 服务器的情况。

这时候需要你检查你公司的smtp邮件服务器地址,然后将端口换成25再试试。

可使用 telnet 命令来测试与邮件服务器的连接,如: telnet smtp.office365.com 25 是测试到该网址的25端口连接情况。

如果你公司的地址是 google.com,那么你公司的邮件服务器地址有可能是:

1
2
3
google.mail.protection.outlook.com
# 或者
google-com.mail.protection.outlook.com
metabase 邮箱配置

参考