Centos7.4にMetabaseをインストールして基本設定するまでのメモ
目的
とあるシステムを作ってる時に単純にデータベースに入ってるデータをグラフとして出力したかっただけです。
他の選択肢としては、
- Re:dash
- Chart.js
- kibana
- etc...
など色々あると思います。
他のものとこれから色々比較してみようかと思い、メモに残すことにしました。
環境
| OS | 7.4 |
|:-:|:-:|:-:|
| Metabase | 0.27.2 |
Metabaseとは?
オープンソースのビジネスインテリジェンスツールでいわゆる意思決定などに使う補助ツール?
MacやAWSなど対応OSは広そうです。
インストール
Ubuntuと全然変わらないです。
やることは,全部で2つ
- Java8 のインストール
- MetaBase のダウンロード&インストール
Javaのインストール
古い環境のJavaがないか確認します。
$ java -v
bash: java: command not found
上記のコマンドで古いJavaがなければ、yumでインストールします。
$ yum install -y java-1.8.0-openjdk
$ java -version
openjdk version "1.8.0_xx"
と表示されていれば終了。
MetaBaseのインストール
curl コマンドなどでパッケージのダウンロードをします。
$ curl -LO http://downloads.metabase.com/v0.27.2/metabase.jar
後は、java -jar /ダウンロードで指定したパス/metabase.jar
でインストールは終了です。
アクセスは、http://localhost:3000/setup/
です。
注意事項
Centosは、selinuxやfirewalldなどが始めから起動しているバージョンもあるため、必ずサービスをストップまたはサービス同士の共存をさせてからMetabaseを動かすようにして下さい。
$ setenforce 0
$ systemctl stop firewalld
基本設定
ログインするとこの画面にwelcomeページに行くと思います。
2のフォームでは、Metabaseがアクセスするデータベースの情報を選択、入力します。
用意していない人は後でを選択することもできます。
基本的な使い方は、機会があれば別の記事に書きます。
追記[2018/11/09]:
久しぶりに構築する機会があったので構築してみると以下のエラーが出て失敗...
11-09 16:36:43 ERROR metabase.core :: Metabaseの初期化に失敗しました
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:191)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:260)
at java.util.jar.JarVerifier.update(JarVerifier.java:230)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.getInputStream(JarFile.java:450)
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:164)
at liquibase.resource.ClassLoaderResourceAccessor.getResourcesAsStream(ClassLoaderResourceAccessor.java:53)
at liquibase.util.StreamUtil.singleInputStream(StreamUtil.java:186)
at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:27)
at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:525)
at liquibase.changelog.DatabaseChangeLog.includeAll(DatabaseChangeLog.java:490)
at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:368)
at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:293)
at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:78)
<domain type='kvm'>
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:1281)
at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:1274)
at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:1270)
at metabase.db$has_unrun_migrations_QMARK_.invokeStatic(db.clj:147)
at metabase.db$has_unrun_migrations_QMARK_.invoke(db.clj:140)
at metabase.db$migrate_up_if_needed_BANG_.invokeStatic(db.clj:177)
at metabase.db$migrate_up_if_needed_BANG_.invoke(db.clj:168)
at metabase.db$migrate_BANG_$fn__15423.invoke(db.clj:288)
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:747)
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:782)
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:730)
at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
at metabase.db$migrate_BANG_.invokeStatic(db.clj:276)
at metabase.db$migrate_BANG_.invoke(db.clj:257)
11-09 16:36:43 INFO metabase.core :: Metabaseをシャットダウン中...
11-09 16:36:43 INFO metabase.core :: Metabseのシャットダウンが完了しました
文章見ているとメモリが足りていないよう
動作させている間のメモリ使用率を確認してみると
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10665 root 20 0 3096720 701364 22236 S 99.5 40.7 2:30.10 java
cpu周りが足りていない感じ?
このときのメモリとCPUは最低限だったので単純に二倍にしてみたら最後まで動作しました。