Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトの プライバシーポリシーをご覧ください。

参考にしたのは、Metabase公式サイトにあったTIPSです。Debian環境にMetabaseをインストールしたもので、Webサーバ「nginx」をサービスとして実行させる内容でした。

Raspberry Pi はDebian由来ですから、サービスの登録方法などを参考にして同じように設定しました。nginxはインストールしていません。

Metabaseをインストール後に実行する前に、データベースの準備をします。データベースと直接繋げるからです。

はじめにJAVA環境のインストール

Metabaseは.jarファイルです。Raspberry Pi OSだとJAVAの実行環境が整っていません。

2023年現在、MetabaseにはJavaバージョン11以上のJava Runtime Environment(JRE)が必要です。

Metabaseを開発および構築する際には、Java開発キット(JDK)が必要です。HotSpot JVMを搭載したEclipse TemurinのJDKの最新LTSバージョンをお勧めします。

さて、どのバージョンをなら良いのだろう。適当なバージョンを探してみます。Raspberry Pi OSは特殊なので、この辺はいつも分かりにくいですよね。

Latest Releases

画像にあるサイトで調べたところ、aarch64で探すと最新のLTSはjdk-17.0.8.1+1でした。JDKをお薦めされました。

aptコマンドではあるでしょうか。 コマンドで見てみると、バージョン17がありました。apt list "openjdk*"

では、aptコマンドでインストールすることにしました。

sudo apt install openjdk-17-jdk openjdk-17-jre

metabase実行ファイルのダウンロード

ダウンロードは公式サイトから行いました。今回はラズパイのWebブラウザでダウンロードして移動しておきました。325MBあります。

ダウンロードページ:https://www.metabase.com/start/oss/

ダウンロードしたjarファイルをmetabaseフォルダを作成して(mkdir ~/metabase)jarファイルを移動します。

直リンクならwget https://downloads.metabase.com/v0.47.0/metabase.jarになっていましたが、バージョンが変わるとURLも変わるため、Webブラウザからダウンロードしてください。

metabase.jarの実行

jarファイルを実行してインストールします。(例:~/metabaseに保存したjarファイル)

cd ~/metabase
java -jar metabase.jar

ちょっと時間がかかります。もしエラーが出たり、止まってしまったりしたら、JAVAのランタイムとは別にライブラリやモジュールが足りないのかも知れません。

ターミナルでプロンプトが戻ってきたら完了です。

■Pi 5は8GBモデルがオススメ

設定をしていく

権限やlogファイルの作成などしておきます。

これも公式サイトの通りで、3行目は先程作成したmetabaseのフォルダを指定します。

sudo groupadd -r metabase
sudo useradd -r -s /bin/false -g metabase metabase
sudo chown -R metabase:metabase ~/metabase
sudo touch /var/log/metabase.log
sudo chown syslog:adm /var/log/metabase.log
sudo touch /etc/default/metabase
sudo chmod 640 /etc/default/metabase

サービスとして登録

metabaseをサービス化して、自動起動させるために設定ファイルを作成します。 ここも分かりにくい部分ですよね。

サービスファイルに決まった書式で作成すれば、サービス化できて毎回起動コマンドを打つ必要もなくなります。

sudo touch /etc/systemd/system/metabase.service
sudo nano /etc/systemd/system/metabase.service

書き込む内容は、7行目、8行目のPathは、自分の環境に書き換えます。

jarファイルがある場所です。自分のユーザー名などに置き換えてください。(例:/home/raspida/metabase/)

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

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

[Install]
WantedBy=multi-user.target

syslogの設定ファイルを作成

ログ用の設定をします。

sudo touch /etc/rsyslog.d/metabase.conf
sudo nano /etc/rsyslog.d/metabase.conf

confの中身は次の1行。

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

これでcat /var/log/metabase.logとすれば、metabase用のログを見ることができます。

syslogサービスをリスタートして終わりです。

sudo systemctl restart rsyslog.service

サービスの更新とリスタート

Metabaseサービスの更新とスタート、自動起動を有効にしておきます。

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

最終設定はWebブラウザから行う

ここからは、Webブラウザからアクセスして設定をしていきます。Webブラウザのアドレス欄に入力するIPアドレスは、ラズパイからアクセスするなら、IPアドレス部分はlocalhostで構いません。

ネットワークに繋がった別のPCからなら、IPアドレスとポート番号3000を指定すれば繋がるハズです。ホスト名でもイケる環境ならホスト名でどうぞ。

http://IPアドレス:3000

or

http://localhost:3000

or

ホスト名.local:3000

これもウィザード式なので簡単です。日本語は若干あやしいけど。

ここは最初から日本語でした。日本語で表示されているし、次へで飛ばします。

名前は適当で構いません。メールアドレスだけはまともなのを入れておきました。ログイン用のアカウントになります。

ここでデータベースを選びます。

MariaDBとはありません。MySQLで進めます。

ここはデータベースをインストールした時の情報を入れていきます。

ここだけが重要ですね。

今回のMariaDBの構築は次の記事の通りです。

この辺はお好みでどうぞ。

次のようになれば完了です。

Metabaseはオンプレミスなら無償利用可能なオープンソースBI

今回はRaspberry Pi 4にローカルインストールしました。クラウドで利用しないで自分で構築すれば無料だからです。個人で使うには充分です。

MetabaseはDockerファイルが公開されていて簡単です。今回はDockerでは構築しませんでしたが、テスト的に色々と設定を変えたりするなら気楽なんですよね。エイヤっとやり直せる。

Metabaseなら、ターミナルでSQL文を叩かなくても良く、表示されたメタデータも見やすいです。

まだ使いこなせていませんが、Raspberry Pi OS、MariDB、Metabase、をインストールしておいて、色んなデータベースを可視化してみたいですね。