2018年09月29日

シングルボードコンピュータへElasticsearch&Kibanaインストール

今回はシングルボードコンピュータへ
ElasticsearchとKibanaをインストールする方法を紹介します。

対象のシングルボードコンピュータはTinkerboardといった
ARMベースのシングルボードです。
頑張ればraspberryPIでも可能です。
また、単にARMベースのシングルボード上で
ElasticsearchとKibanaをアプリケーションとして動かすのではなく、
サービスとして登録して運用する手順を紹介します。


予めJava8をインストールしておいてください。 
Elastic社のサイトから下記のパッケージをダウンロードします。
elasticsearch-6.X.X.deb
kibana-6.X.X-amd64.deb
※XXはバージョンに依る

また、Nodejsも併せてダウンロードしてください。
Linux Binaries (ARM)のARMv7を使用します。




■Elasticsearchインストール
@Elasticsearchインストール
Javaなので環境によらずそのままインストールできます。
sudo dpkg -i elasticsearch-6.X.X.deb

Aフォルダ権限変更
sudo chmod -vR 755 /etc/elasticsearch/
sudo chmod -vR 755 /var/lib/elasticsearch/
sudo chmod -vR 755 /usr/share/elasticsearch/

Belasticsearch.yml設定変更
amd64専用の機能などを無効化しないと起動に失敗します。
少しおまじないを追加します。
sudo leafpad /etc/elasticsearch/elasticsearch.yml

xpack.ml.enabled: false
bootstrap.system_call_filter: false

※必要に応じて下記も追記する。
network.host: "0.0.0.0"
http.port: 9200
transport.host: localhost
transport.tcp.port: 9300


CJava設定
必要に応じてElasticsearchのメモリ割り当てを変更します。
sudo leafpad /etc/elasticsearch/jvm.options

デフォルトは
-Xms1g
-Xmx1g
-server#追記
でメモリ1GをElasticsearchに割り当てる設定です。
Tinkerboardならメモリ2GBなのでデフォルトでも問題ありませんが、
raspberryPIの場合はメモリ1GBなので
システム領域が全く確保できなくなってしまいます。
設定したメモリ領域+200MBが実際のプロセス上で使用するため、
raspberryPIの場合は
-Xms600m
-Xmx600m
-server#追記
が妥当だと思います。

ガシガシ使うのであれば
メモリ2GBかつeMMCなTinkerboard Sしか選択肢はありません。

Dサービス起動設定変更
デフォルトでは自動再起動の設定が無効のため、
下記のファイルに追記します。
sudo /bin/systemctl enable elasticsearch.service#ファイル生成
sudo leafpad /etc/systemd/system/multi-user.target.wants/elasticsearch.service

[Service]
・・・・
Restart=always
↑1行追加する
・・・・

Eサービス登録
下記のコマンドでサービスを有効化します。
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
sudo service elasticsearch start

これでElasticsearchがシステム起動時に自動的に起動します。

sudo service elasticsearch statusでサービス状態を確認できます。
http://localhost:9200へアクセスして確認してもよいと思います。

statusで問題なくても9200へアクセスできない場合は
elasticsearch.ymlかjavaの設定に何か問題があることが多いです。


■Kibanaインストール
Kibanaはamd64用にパッケージされているため、
そのままではインストールできません。

@強制的にARM環境にAMD64を追加するために設定を変更する
sudo dpkg --add-architecture amd64
※逆に削除する場合は dpkg --remove-architecture amd64

AAMD64が追加されているか確認する
sudo dpkg --print-foreign-architectures

BKibanaインストール
sudo dpkg -i kibana-6.X.X-amd64.deb

CARM版Nodejs解凍
tar xfv node-v8.XX.X-linux-armv7l.tar.xz

DARM版Nodejsへ置き換え
sudo cp  node-v8.XX.X-linux-armv7l/bin/node /usr/share/kibana/node/bin
sudo cp  node-v8.XX.X-linux-armv7l/bin/npx /usr/share/kibana/node/bin
sudo cp  node-v8.XX.X-linux-armv7l/bin/npm /usr/share/kibana/node/bin

Dkibana.yml設定変更
sudo leafpad /etc/kibana/kibana.yml
下記を追記する
server.host: "0.0.0.0"

Eサービス登録
下記のコマンドでサービスを有効化します。
sudo /bin/systemctl enable kibana.service
sudo service kibana start
これでKibanaがシステム起動時に自動的に起動します。
sudo service kibana statusでサービス状態を確認できます。
http://localhost:5601へアクセスして確認してもよいと思います。

必要に応じてKibanaのNode側もメモリ制限をしてもよいと思います。
NODE_OPTIONS="--max_old_space_size=256"


以上の手順でシングルボードコンピュータへ
ElasticsearchとKibanaをインストールすることができます。

正直、高性能なシングルボードコンピュータ、
Tinkerboard Sでもメモリ1.8GB状態が続くため、
Elasticスタックを運用するのは厳しい面もあります。
ただ、クラスタリングやkibanaとelasticsearchの別運用など
Elasticスタックの特徴を生かして色々遊べそうです。


posted by Crescent at 00:00| Comment(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。