2
2

More than 1 year has passed since last update.

ラズパイにサーバー環境を構築し、metabaseでグラフを見る。

Posted at

ラズパイにサーバーを構築し、metabaseでグラフを見る方法についてまとめました。

環境

環境は、下記の通りになります。
MariaDB version  10.3.31-MariaDB-0+deb10u1
Python version: 3.7.3
OS: Raspbian 10.0

1.1 apacheのインストール

apacheをインストールします。

$ sudo apt-get update
$ sudo apt-get install apache2

1.2 apacheの確認

下記コマンドを実行し、inetに書かれているIPアドレスを確認します。

$ ifconfig wlan0

Chromeなどのブラウザからhttp://[、inetに書かれているIPアドレス]を入力してください。
成功すると、このようなwebページが出てきます。
キャプチャ.PNG

1.3 apacheディレクトリ権限の変更

デフォルトの状態でApacheは、/var/www/html/ディレクトリ内にあるファイルを表示します。
下記を入力し、ディレクトの権限を変更します。

$ cd /var/www
$ sudo chmod 777 html/

1.4 PHPのインストール

下記コマンドでPHPをインストールしてください。

$ sudo apt install php libapache2-mod-php -y

2.1 データベース、metabaseの環境構築

データベースは、MariaDBを使用することにしました。MariaDBを見ると、mySQLよりも機能が高く、セキュリティ面が良いらしいので、試しに使ってみます。
MariaDB、セットアップ方法は、こちらを参考にさせていただきました。

2.2 metabaseの設定

metabaseのインストール
サイトからmetabase.jarをダウンロードし、作成したフォルダに配置します。私は、windows端末からダウンロードし、winSCPを経由してラズパイのディレクトリに置きましたおきました。

$ sudo mkdir -p /apps/java
$ cd /apps
$ sudo chmod 777 java
$ pwd 
/apps/java/metabase.jar

2.3 OSのユーザー設定

metabase実行用のユーザを定義して権限等の設定をします。

$ sudo groupadd -r metabase
$ sudo useradd -r -s /bin/false -g metabase metabase
$ sudo chown -R metabase:metabase /apps/java
$ sudo touch /var/log/metabase.log
$ sudo chown metabase:metabase /var/log/metabase.log
$ sudo touch /etc/default/metabase
$ sudo chmod 640 /etc/default/metabase

2.4 サービス作成

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

$ sudo touch /etc/systemd/system/metabase.service
$ sudo nano /etc/systemd/system/metabase.service
metabase.service
[Unit]
Description=Metabase server
After=syslog.target
After=network.target
    
[Service]
WorkingDirectory=/apps/java/
ExecStart=/usr/bin/java -jar /apps/java/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

2.5 syslogファイル作成とMetabaseサービス登録

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

以下をmetabase.conf内に以下を追記します。

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

syslogを再起動し、サービスを設定します。

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

2.6 接続確認

下記コマンドを実行し、chromeでhttp://:3000でアクセスできるかどうかを確認します。
エラーが発生して場合、2.7を見てください。

$ java -jar /apps/java/metabase.jar

2.7 ポート重複によるエラー回避

私の環境では、3000のポートが使用していたため下記のようなエラーが出てしまいました。

WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2022-03-16 14:13:54,552 INFO metabase.util :: Maximum memory available to JVM: 948.0 MB
2022-03-16 14:14:32,072 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance. 🔓
 For more information, see https://metabase.com/docs/latest/operations-guide/encrypting-database-details-at-rest.html
2022-03-16 14:14:44,643 INFO driver.impl :: Registered abstract driver :sql  🚚
 ⮦ Load driver :sql took 2.3 s
2022-03-16 14:14:44,716 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) 🚚
Load driver :sql-jdbc took 2.4 s
2022-03-16 14:14:44,736 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) 🚚
2022-03-16 14:14:44,797 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) 🚚
2022-03-16 14:14:44,852 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) 🚚
2022-03-16 14:14:53,939 INFO metabase.core ::
Metabase v0.42.2 (d6ff494 release-x.42.x)

Copyright © 2022 Metabase, Inc.

Metabase Enterprise Edition extensions are NOT PRESENT.
2022-03-16 14:14:53,968 INFO metabase.core :: Starting Metabase in STANDALONE mode
2022-03-16 14:14:54,103 INFO metabase.server :: Launching Embedded Jetty Webserver with config:
 {:port 3000}

2022-03-16 14:14:54,183 ERROR metabase.core :: Metabase Initialization FAILED
java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:3000

metabase.comを確認すると、3000番が使われてたら、jarを走らす前にMB_JETTY_PORTを使って別のところ使ってね。と記載があります。なので、下記のように変更し、走らせます。chromeでは、http://:3100でアクセスします。

$ java -DMB_JETTY_PORT=3100 -jar /apps/java/metabase.jar

3.1 データベースの追加

metabaseを起動すると、初期設定をするようなっています。それほど難しい項目はないので、この部分は割愛します。
metabaseへmySQLのデータを登録します。mySQL内でのデータベースの作成方法については、以前の記事に記述しています。
下記の記事を参照してください。
pythonでcsvのデータをデータベースへ書き込む。

3.2 データベースの登録

  1. 右上にある歯車マークをクリックし、管理者設定 -> データベースを追加する を選択する。
  2. 下記の項目に必要な情報を入力する。

ャ.PNG

データベースのタイプ: MySQL
表示名: 適当に入力(metabase内のタイトルになります)
ホスト名: localhost
ポート: 3306
データベース名: 適当に入力(設定したものを入力)
ユーザー名: root(設定したものを入力)
パスワード: xxx(設定したものを入力)

※ポート番号について
mySQL(MariaDB)にアクセスし、下記コマンドを入力すると、mySQLのポート番号を確認することができます。

MariaDB[(none)]> show variables like 'port';

3.3 グラフ作成

適当に操作して、グラフ、ダッシュボートを作成します。下記は、作成例です。
像.png

Link

下記サイトを参照させていただきました。
Raspberry PiにMetabaseをインストール
mariadb mysql ポート番号を調べる

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2