こんばんは。この季節サンダル通勤で足が冷えてくるmorimorikochanです
今回はmetabaseを使う機会があったのでサクッと構築したlogを置いておきます。
- クライアントはBIツールが欲しいらしい
- tableauは高い&運用費も高い(m4.2xlargeぐらい)
- もっとサクッとかつ簡単なBIツールないんかなー
ということでmetabaseの登場です。
- slack連携
- メール連携
を使えばテーブルAのデータがある基準に達したときにslackやメールで通知ができるみたいです、すごいですね
環境
- aws EC2
- t2.medium
- Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type - ami-06cd52961ce9f0d85
- amazonlinux2を使いたかったですが、デフォでjavaが入っているのか怪しかったので避けました。
- metabase
スクリプト
# 以下、ec2インスタンス内。
mkdir metabase
cd metabase
wget http://downloads.metabase.com/v0.30.4/metabase.jar
# javaバージョン確認
java -version
# 1.8>versionだったら
sudo yum update -y
sudo yum install -y java-1.8.0-openjdk.x86_64
# versionを1.8以上に切り替える
sudo alternatives --config java
# 確認
java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
# `java -jar metabase.jar`でエラーが出たので修正
sudo echo "10.0.0.219 ip-10-0-0-219" | sudo tee -a /etc/hosts
# 実行
java -jar metabase.jar
# localhost:3000/setupにてGUIなセットアップができる!!
課題
- metabaseのデータがインスタンスの停止などで消える可能性があるので何かしらでバックアップが必要
- 手段1. ebsでマウントしておく
- 手段2. metabaseのデータ保存先がデフォルトh2なので、rdsにする
余裕あればまた別記事で書きます。軽かったのでこの記事に描きました
metabaseのデータバックアップ
データをrdsに保存したいなら、以下の環境変数を設定するとdbに繋げてくれます。以下はmysqlの例です
export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=xxxxxxxxxxxx
export MB_DB_PASS=xxxxxxxxxxxx
export MB_DB_HOST=xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
# この後にjavaコマンド
バックグラウンド化
java -jar metabase.jar
してもフォアグラウンドなのでssh切ったら止まります。(当たり前)
なのでバックグラウンドで起動できるようにしましょう
nohup java -jar metabase.jar > out.log &
この例だとout.logにログが測れますね