Metabase

来自Gea-Suan Lin's Wiki
跳到导航 跳到搜索

Metabase是一套BI视觉化工具。

安装

Metabase的硬体需求不高[1][2],我自己在GCE上用1GB RAM的机器跑还可以。

Metabase需要Java 11+的版本[3],而在Ubuntu 20.04与22.04下预设就是Java 11,所以可以直接用内建的default-jre并且取得已经编译好的jar档:

sudo apt install -y default-jre; sudo apt clean; mkdir ~/metabase; cd ~/metabase; wget -O metabase-0.47.0.jar https://downloads.metabase.com/v0.47.0/metabase.jar; ln -s metabase-0.47.0.jar metabase.jar

执行

预设的模式是让使用者尝鲜,不需要使用外部的资料库储存资料,会使用Java的H2存放资料:

java -jar metabase.jar

如果使用PostgreSQL,可以建立一个start.sh,将连线资讯指定到环境变数[4],这边另外指定了Port 8000为网页的接口:

#!/bin/bash

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase
export MB_DB_PORT=5432
export MB_DB_USER=metabase
export MB_DB_PASS=metabasepassword
export MB_DB_HOST=db-metabase.srv.example.net
export MB_JETTY_PORT=8000

java -jar metabase.jar

设定

先设定Metabase的log档案/etc/rsyslog.d/metabase.conf

#
if $programname == 'metabase' then /var/log/metabase.log
& stop

使用PostgreSQL前需要先有最基本的权限,让Metabase连上后可以初始化:

CREATE USER metabase WITH ENCRYPTED PASSWORD 'metabasepassword';
GRANT metabase TO postgres;
CREATE DATABASE metabase OWNER = metabase;

开机透过systemd自动执行Metabase有两个档案要设定,一个是/etc/systemd/system/metabase.service

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

[Service]
WorkingDirectory=/home/service-metabase/metabase
ExecStart=/usr/bin/java -jar /home/service-metabase/metabase/metabase.jar
EnvironmentFile=/etc/default/metabase
User=service-metabase
Type=simple
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always

[Install]
WantedBy=multi-user.target

另外一个是/etc/default/metabase

#
MB_DB_TYPE=postgres
MB_DB_DBNAME=metabase
MB_DB_PORT=5432
MB_DB_USER=metabase
MB_DB_PASS=metabasepassword
MB_DB_HOST=db-db-metabase.srv.example.net
MB_JETTY_PORT=8000

这个档案设定完成后建议将权限改成600

sudo chmod 600 /etc/default/metabase

档案设定完后需要指定开机跑起来:

sudo systemctl daemon-reload; sudo systemctl enable metabase.service

参考资料

  1. Minimum / Recommended Hardware Requirement. 2017-12-12 [2023-09-06] (English). 
  2. Metabase: RAM Usage. 2019-11-19 [2023-09-06] (English). 
  3. Java versions. [2023-09-06] (English). 
  4. Environment variables. [2023-09-06] (English). 

外部连结