Raspberry Pi 3にElasticsearchとKibanaをいれてみた
背景
Raspberry PiでたてたサーバのログをFluentdとElasticSearch,Kibanaで監視,可視化したい.
Fluentdは前回いれたので,今回はElasticSearchとKibanaをいれる.
そこで軽くつまったのでメモ
ElasticSearchのインストール
The Elastic Stack Download · Get Started in Minutes | Elastic
Elasticのホームページから適当にダウンロードしてくる.
今回は2.4.1をダウンロードして,インストールする.(5.0.0が最新だが,Kibanaとの連携がうまくいかなかった.2016/11/02現在)
※elasticsearchにはJavaが必要なのでインストールしておいてください.
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-2.4.1.zip $ unzip elasticsearch-2.4.1.zip $ rm elasticsearch-2.4.1.zip $ mv elasticsearch-2.4.1 elasticsearch $ cd elasticsearch $ ./bin/elasticsearch
これで起動する.
Kibanaのインストール
先程と同様にホームページから適当にダウンロードして,実行する.
今回は4.6.2を使用する.(5.0.0が最新だが,./bin/../node/bin/node: bad option: --no-warnings
のようなエラーが出て,調べてもよくわからなかったため,とりあえずバージョンは本質じゃないということで,安心安全のバージョン4.6.2に戻した.)
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-4.6.2-linux-x86_64.tar.gz $ tar xvfz kibana-4.6.2-linux-x86_64.tar.gz $ rm kibana-4.6.2-linux-x86_64.tar.gz $ mv kibana-4.6.2-linux-x86_64 kibana $ cd kibana $ ./bin/kibana
が,Kibanaを実行すると,以下のエラーが出た.
./bin/../node/bin/node: 1: ./bin/../node/bin/node: ELF: not found ./bin/../node/bin/node: 17: ./bin/../node/bin/node: Syntax error: ")" unexpected
調べるとRaspberry PiではARMアーキテクチャを使用しているため,nodejsバイナリを変更する必要があるようだ.
$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb $ sudo dpkg -i node_latest_armhf.deb $ rm node_latest_armhf.deb $ cd kibana/node/bin $ mv node node.orig $ mv npm npm.orig $ ln -s `which node` node $ ln -s `which npm` npm $ cd ../../ $ ./bin/kibana
無事に動いた.
localhost:5601
にアクセスするとKibanaのダッシュボードが表示される.
おまけ
最初,実はElasticSearchは最新だった5.0.0を使用していた.
するとRaspberry Piではメモリが限られているため,以下のようなエラーが出た.
Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap
つまりメモリが足りていない.
設定ファイルをいじって対応する.
調べるとES_MAX_MEM
やら,-XX:MaxHeapSize
やらいろいろあったが,正解はこれ.
$ vim config/jvm.options - -Xms2g #2Gの設定になっている - -Xmx2g +-Xms256m #とりあえず256Mにしてみた +-Xmx256m
これでメモリの問題は解決.
Kibanaとのバージョンが合わなくて,ElasticSearchのバージョンを落としたため使わなかったが,メモとして残す.