なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

Kibana+Elasticsearchセットアップ - Kibanaを立ててみた

まずは器を用意する

Kibanaを使うには、分析・可視化対象のデータを入れる器としてのElasticsearchを立て、それを参照させるようにKibanaを立て、また、器にデータを入れる仕組みを用意する、という順番で進んでいきます。

よって、ここでは、器としてのElasticsearch、器の中身を覗き込むKibanaの環境設定を行います。

ElasticSearch

公式ドキュメントのありかはここです。
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/install-elasticsearch.html


なお、この先も公式ドキュメントのURLを貼っていきますが、「/5.5/」の部分がバージョン番号になります。この数字の部分を、「/current/」とすると、その時点の最新GAバージョンのドキュメントが表示されます。



それにしても、プラットフォーム、インストール手段も豊富ですね。



アップグレードメンテナンスがし易いように、yumリポジトリを用意して、インストールすることにします。

https://www.elastic.co/guide/en/elasticsearch/reference/5.5/rpm.html#rpm-repo

sudo vi /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

sudo yum -y install elasticsearch


サービス登録をして、起動しておきます。
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/rpm.html#rpm-running-init

sudo chkconfig --add elasticsearch
sudo service elasticsearch start


動作確認は、こんな感じで。
https://www.elastic.co/guide/en/elasticsearch/reference/5.5/rpm.html#rpm-check-running

curl GET 'localhost:9200/'


とりあえず初回起動までに必要な手順はほんとうにコレだけでした。


次にKibana

同じく、アップグレードメンテナンスがし易いように、yumリポジトリを用意して、インストールすることにします。


マニュアル上ではこちらになります。
https://www.elastic.co/guide/en/kibana/5.5/rpm.html#rpm-repo

sudo vi /etc/yum.repos.d/kibana.repo

以下内容を添付
[kibana-5.x]
name=Kibana 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
ここまで

sudo yum -y install kibana


サービス登録をして、起動しておきます。
https://www.elastic.co/guide/en/kibana/5.5/rpm.html#rpm-running-init

sudo chkconfig --add kibana
service kibana start


動作確認は、GUI付きのLinuxを使っているので、こんな感じでブラウザから

http://localhost:5601

こうじゃっ。


え、もう普通にKibanaの画面見れたよ!
なお、Kibana5.5からは、ブラウザでクセスすると最初にサーバーサービスのステータスを表示してくれるようになったみたいです。


その後、しばらくハマる - 起動できなくなる!

ElasticSearchはデフォルトだとローカルホストからしか参照できないので、とりあえずVirtualBox内だけでの参照はツライ。

ってことで、ホストマシン側からブラウザで参照できるように、と思って設定開始。

/etc/elasticsearch/elasticsearch.yml

で、ネットワークを制限しているところを

#network.host: 192.168.0.1
network.host: 0.0.0.0

としてサービス再起動してあげればよいでしょうよ、と思ったら、起動プロセスで落ちるようになりました。


ログに出ていた手がかりはコレ

[1] bootstrap checks failed
[1]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]

いろいろ探し回った挙句、ElasticSearch側の設定ではなく、ElasticSearchの要件にもとづいて設定する「OS」側の設定。


公式ドキュメントにもとづいて
/etc/security/limits.conf
に以下を追加してあげました。

elasticsearch    hard    nproc           2048
elasticsearch    soft    nproc           2048
elasticsearch    -       nofile          65536

今回の直接原因は上2つ。だけど、ネットワークの制限を緩めなければ、普通に起動するのよね。

3つ目は、調べたついでにドキュメントに記載があって、むしろnprocよりも重要であるかのように書いてあったので、追加。


次に、Kibana側もネットワーク制限しているので、

/etc/kibana/kibana.yml

#server.host: "localhost"
server.host: "0.0.0.0"

として再起動。
こちらはすんなり起動して、リモートホストからアクセスできました。


サーバーサイドの構築手順はここまでです。


ここから先は、器にデータを流し込まないと、何も進みません。
なので、いろいろなエージェントを使ってElasticsearchにデータを流し込む話に移ります。