【Ubuntu14.04・16.04】Metabaseを導入!サービス化して自動起動させる

はじめに

概要

Metabaseはデータ可視化ツールです。データソースを指定することで、あらゆるフォーマットでデータを閲覧することができます。
詳細は以下URLをご覧ください。
Metabase

セットアップの流れ

ここでは、Metabase自体をインストールし、Metabaseが動作するのに必要な周辺環境を整える方法について説明します。
どのデータを監視するのか、どういうフォーマットで見るのかという具体的な設定は、Metabaseの提供するUI(Webアプリ形式で提供されます)で行います。直感的でわかりやすいUIであり、公式のヘルプなども充実しているため、本記事ではこれについては省きます。

MySQL準備

Metabaseは、何も指定しなければデフォルトでローカルにH2データベースを作成します。
Metabase実行サーバとデータ格納箇所を分けたくなったときなど、MySQLにデータを格納しておいたほうが好都合なので、筆者はMySQLにデータを格納しています。
H2のままでよい場合、この章はとばしてください。

データベースの作成

MySQLにログインします。

$ mysql -u root -p

デフォルトの文字コードをutf8としてDBを作成します。

CREATE DATABASE metabase DEFAULT CHARACTER SET utf8;

Metabaseデータベース用MySQLユーザの作成

上記で作成したデータベースにアクセスするための専用ユーザを作成します。
metabasemetabasepassは任意の文字列に変更してください。

GRANT ALL PRIVILEGES ON metabase.* TO metabase@localhost IDENTIFIED BY 'metabasepass';

Metabaseインストール

JREインストール

Metabaseは、Java8以上のJREを必要とします。

JREバージョン確認

Javaのバージョンを確認するには、java -versionを実行します。

$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.16.04.1-b03)

上記の実行結果は、JDKのバージョンが1.8(=Java8)、JREのバージョンが1.8(=Java8)であることを示しています。
このコマンドに対し、1.7以下のバージョンであったり、コマンドが見つからない旨のメッセージが表示される場合、インストールが必要です。

リポジトリ追加

Ubuntu16.04ではこの手順は不要です。
Ubuntu14.04の場合、まずadd-apt-repositoryでopenjdkのリポジトリを追加します。

$ sudo apt-get install add-apt-repository
$ sudo add-apt-repository ppa:openjdk-r/ppa
$ sudo apt-get update

JREのインストール

Ubuntu14.04

$ sudo apt-get install openjdk-8-jre

Ubuntu16.04

$ sudo apt install openjdk-8-jre

インストールが完了したら、「JREバージョン確認」の手順で、Java8のJREがインストールされていることを確認してください。

Metabaseインストール

Metabaseの実体は、単なる.jarファイルです。
任意のバージョンのMetabaseをwgetなどのコマンドで取得すればインストール完了です。

$ sudo mkdir /opt/metabase
$ sudo wget http://downloads.metabase.com/v0.32.9/metabase.jar -O /opt/metabase/metabase.jar

起動用スクリプト作成

Metabaseの設定は、環境変数で行います。
起動のたびに環境変数を設定するのは面倒なので、設定から起動までを行うスクリプトを作成しておくと便利です。

$ sudo vim /opt/metabase/run.sh

以下はメモリ上限500MB・ポート55555でMetabaseを起動する例です。

DBパスワード、ユーザ名などは適宜変更してください。

#!/bin/sh
export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=metabase
export MB_DB_PASS=metabasepass
export MB_DB_HOST=localhost
export MB_JETTY_PORT=55555
java -Xmx500m -jar /opt/metabase/metabase.jar

実行可能にしておきます。

$ sudo chmod a+x /opt/metabase/run.sh

初回起動時のみ、少し時間がかかります。数秒~数分待ちましょう。

$ sudo /opt/metabase/run.sh

このスクリプトを起動し、ブラウザでhttp://(サーバのIPアドレス):55555/にアクセスしてみましょう。
以下のような画面があらわれたら成功です。

終了の際は、Ctrl+Cを押下してください。

Metabaseをサービス化する

次は、サーバー起動時に自動的にMetabaseを起動するようにしましょう。

つづいて、起動時に自動起動するよう設定していきます。
使いたいときに都度手動で起動する使用方法でよければ、次の手順は不要です。

Ubuntu16.04と14.04でサービス化の手順が異なります。

Ubuntu16.04

サービス化するための設定ファイルを作成します。

$ sudo vim /etc/systemd/system/metabase.service
[Unit]
Description = metabase

[Service]
WorkingDirectory = /opt/metabase
ExecStart = /opt/metabase/run.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target
$ sudo chmod 600 /etc/systemd/system/metabase.service

サービスが登録されたことを確認します。以下のようにmetabase.serviceがあれば成功です。

$ systemctl list-unit-files --type=service | grep metabase
metabase.service                           disabled

サービスを有効化し、再起動します。

$ sudo systemctl enable metabase
$ sudo reboot

再起動後、http://(サーバのIPアドレス):55555/にアクセスします。
うまくいかない場合は、

  • sudo systemctl status metabaseでmetabaseサービスの状態を確認
  • /var/log/syslogmetabaseでgrepしてログを確認

などを行って対応してください。

Ubuntu14.04

サービス化するための設定ファイルを作成します。

$ sudo vim /etc/init/metabase.conf
start on filesystem
exec /opt/metabase/run.sh

サービスとして登録します。

$ sudo ln -s /etc/init/metabase.conf /etc/init.d/metabase

これでサービスとして開始・終了が可能になります。
また、起動時に自動的に起動されるようになります。

$ sudo service metabase start

監視対象のセットアップ

あとはURLにアクセスして設定するだけです。
わかりやすいUIなのでアクセスすれば流れで設定できるはずですが、以下の公式ページも参考になるかもしれません。
Setting up Metabase