Kibana×ElasticSearchをConoHa(512MB)で動かす
お久しぶりです。
最近、社内のプロダクトで「分析にKibanaを使おうぜ」っていう話が出たので、いままで使ったことがなかったKibanaとElasticsearchをConoHaのVPC最低で動かした話になります。
目次
注意事項 動作環境 ConoHaの準備 Elasticsearchのインストール Kibanaのインストール 確認と学習について
注意事項
この記事はあくまでConoHaでKibanaを動かすことが目的です。
セキュリティの設定など度外視しており、実運用で使うことを考えていません・
本番では実行しないようにしてください。
この設定で事故が起きても責任はとれません。
動作環境
ConoHa - リージョン:東京 - メモリ:512MB - OS:CentOS7(64bit)
Elasticsearch:5.6.1 Kibana:5.6.1
ConoHaの準備
まずは、ConoHaでサーバーを作成しましょう。 画面をすべて出さないですが左のメニューから「サーバー」を選択してください。
リージョン・メモリの選択 サーバーを借りる地域の設定と、メモリの設定をします。 今回は特に考える必要がないので、東京リージョンでメモリは最低の512MBを選択します。
OSの選択 さくっとCentOS 7.3 (64bit)でいいでしょう。 慣れ親しんだOSがあった場合は自分が使いやすいOSを選択してください。 今回は基本的にCentOS7系のコマンドを使いますので、6以前で設定するときには注意してください。
ポートの設定 必要のないIPv6のポートはチェックを付けないでいいでしょう。
今回Kibanaが5601ポートを使用するので、IPv4は「すべて許可」にチェックをしておいてください。 ConoHa側のインバウンドルールに引っかかってしまい、ポートを開けても通信できない状態になります。
1.サーバーの作成 上記が問題なければ「追加」のボタンを押しましょう。 ここでサーバーが作成されるとともに、料金が発生するので気を付けてくださいね。
Elasticsearchのインストール
1.Javaのインストール ElasticsearchはJava8以上の実行環境が必要です。 もし自身のサーバーにJava8がインストールされていなかったら、先にJava8をインストールしましょう。 今回はopen-jdk1.8をインストールします。
> yum -y install java-1.8.0-openjdk > yum -y install java-1.8.0-openjdk-devel
念のためJavaのバージョンを確認しましょう。
> java -version openjdk version "1.8.0_144" OpenJDK Runtime Environment (build 1.8.0_144-b01) OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)
とりあえず、インストールできました。
2.Elasticsearchのインストール
>vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md > yum -y install elasticsearch > systemctl start elasticsearch > systemctl enable elasticsearch #動作しているか確認 > systemctl status elasticsearch
上記の手順で行えばインストールはできたと思うので、 下記のコマンドで動作しているか確認しましょう
> curl http://127.0.0.1:9200 { "name" : "81JvC6n", "cluster_name" : "elasticsearch", "cluster_uuid" : "Q_32fYIpRkCBKV7uzgh-bg", "version" : { "number" : "5.6.1", "build_hash" : "667b497", "build_date" : "2017-09-14T19:22:05.189Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" }
また、日本語を扱うにはkuromojiと呼ばれるプラグインがいるので、インストールします。
> /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
Kibanaのインストール
> yum -y install kibana > vim /etc/kibana/kibana.yml 7行目のコメントアウトを外して、すべての通信を受け付けるようにする server.host: "0.0.0.0" 21行目のコメントアウトを外す elasticsearch.url: "http://localhost:9200" # portが閉じているので解放する > firewall-cmd --add-port=5601/tcp --permanent > firewall-cmd --reload > systemctl start kibana > systemctl enable kibana
ここまできたら、Kibanaにアクセスしてみましょう。 http://{自分のサーバーのIPアドレス}:5601/
ただ、見てみるとわかるとおり、どうもElasticsearchへの疎通で失敗しています。 systemctlコマンドで状態を確認してみましょう。
> systemctl status elasticsearch ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled) Active: failed (Result: signal) since Sun 2017-09-24 22:57:26 JST; 32min ago Docs: http://www.elastic.co Main PID: 29465 (code=killed, signal=KILL) Sep 24 22:33:32 host-xxx-xx-xx-xxx systemd[1]: Starting Elasticsearch... Sep 24 22:33:32 host-xxx-xx-xx-xxxx systemd[1]: Started Elasticsearch. Sep 24 22:33:33 host-xxx-xx-xx-xxx elasticsearch[29465]: OpenJDK 64-Bit Server VM warning: If the number of pr...s=N Sep 24 22:57:26 host-xxx-xx-xx-xxx systemd[1]: elasticsearch.service: main process exited, code=killed, statu...KILL Sep 24 22:57:26 host-xxx-xx-xx-xxx systemd[1]: Unit elasticsearch.service entered failed state. Sep 24 22:57:26 host-xxx-xx-xx-xxx systemd[1]: elasticsearch.service failed. Hint: Some lines were ellipsized, use -l to show in full.
というようにエラーが出て、プロセスが死んでいるのがわかります。 ちょっと動かしてtopコマンドを使ってプロセスの状態を確認してみます。 そうすると、明らかにJavaが高負荷をかけてしまっています。 今回は低スペックのVPSを使っているので、メモリが足りずJavaが落ちているようです。 なので、Elasticsearchの設定を以下のように変更します。
> vim /etc/elasticsearch/jvm.options # 22, 23行目の設定を以下のように変更します。 -Xms128m -Xmx128m > systemctl restart elasticsearch
そしてもう一度アクセスしてみます。
これでいったんKibanaとElasticsearchの設定を終了します。
このあとの学習
私はまだ、Elasticsearchの初心者でもあるので、まずはそちらを勉強しようと思っています。 今のところは下記サイトでElasticsearchのAPIを使用してみたところになります。
参考サイト
ConoHaについて:ConoHaでサクっとWebサーバーを作ろう - Qiita
open-jdk1.8.0のインストール:CentOS6にjdk-1.8.0をインストールした話 - 路地裏カジノ
Elasticsearchのインストール: CentOS 7 : Elastic Stack : Elasticsearch インストール : Server World
Kibanaのインストール: CentOS 7 : Elastic Stack : Kibana インストール : Server World
スペックの低いVPSでelasticsearchを動かす: Elasticsearchのメモリ使用量を減らす | karakaram-blog