【Elasticsearch】
Elasticsearch(エラスティックサーチ)とは自由度の高いデータ検索・分析を可能にするログ解析ツールです。
OSS(オープンソース)であり、誰でも無料で使用することができます。
【Kibana】
Kibana(キバナ)とはELK Stack専用のログデータの視覚化ツールです。
Elasticsearchと連携することで、Elasticsearchの複雑なデータ分析を視覚的に確認することができます。
こちらも OSS(オープンソース)であり、誰でも無料で使用することができます。
本記事では、上記2ツールのインストール・起動、連携しての動作確認までのハンズオンを行います。
誰でも分かるように基礎的な設定のみを行いますが、ELK Stackはとても複雑なソフトウェアですので、まずは本記事で基礎的な部分を身に付けていただけたらと思います。
概要
Elasticsearchとは?
Elasticsearchとは、『Elastic社』が開発しているマルチテナント対応の全文検索エンジンです。
様々な種類のデータや大量なデータを高速に処理することができ、リアルタイムデータ分析や全文検索等が可能です。
OSS(オープンソース)であり、現在も開発元である 『Elastic社』 によって開発が進められています。
普通はKibanaと連携してElasticsearchで分析したデータをKibanaで可視化させる形で使用されます。
Kibanaとは?
Kibanaとは、ELK Stackで収集したデータの可視化や制御に使用されるフロントエンドツールであり
Webブラウザを通じて操作することができます。
OSS(オープンソース)であり、Elasticsearchと同じく『Elastic社』によって現在も開発が進められ、ています。
Elasticsearch内にある大量のデータをグラフィカルに見やすく使いやすく操作することが可能です。
構成
本記事では、以下の構成を作成します。
事前準備
事前にElasticsearchとKibanaをインストールするサーバを作成しておきます。
今回はAWS EC2を使用してサーバ構築を行います。
AMI, インスタンスタイプ, ストレージについては以下の設定値以上のパラメータを設定してください。
他のパラメーターについては、任意の値を設定するので問題ありません。
AMI ⇒ 『Amazon Linux 2』
インスタンスタイプ ⇒ 『t3a.medium』
ストレージ ⇒ 『20GB』
※インスタンスサイズですが、デフォルトの『t2.micro』ですとメモリ不足によってKibanaが動作しないので、『t2.medium』以上のサイズを必ず選択してください。(おすすめは『a3medium』です)
Elasticsearchのセットアップ
Elastic製品の殆どはjavaで動作しますので、まずはJavaをインストールします。
$ sudo yum install java-11-amazon-corretto
$ java --version
Elasticsearchをインストールします。
ここではver7.2をインストールしますが、最新版を使用したい方はElasticsearchのverを適所変更してください。
まずはwgetでElasticsearchをダウンロードして、その後rpmにてインストールを行います。
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-x86_64.rpm
$ sudo rpm --install elasticsearch-7.2.0-x86_64.rpm
インストール後、Elasticsearchを起動します。
systemctlにて『Active: active (running)』と表示されれば問題ありません。
$ sudo service elasticsearch start
$ sudo service elasticsearch status
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 20**-**-** **:**:** UTC; 9s ago
Docs: http://www.elastic.co
Main PID: 2452 (java)
CGroup: /system.slice/elasticsearch.service
tq2452 /usr/share/elasticsearch/jdk/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnl...
mq2544 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
*** 27 **:**:** ip-*-*-*-*.ap-northeast-1.compute.internal systemd[1]: Started Elasticsearch.
*** 27 **:**:** ip-*-*-*-*.ap-northeast-1.compute.internal elasticsearch[2452]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecate...lease.
Hint: Some lines were ellipsized, use -l to show in full.
最後にcurlコマンドにてElasticsearchへのアクセス確認を行います。
デフォルトの設定では『localohst』の『9200』ポートが空いていますのでそこへアクセスを行います。
以下出力結果のような結果が変えればOKです!
$ curl localhost:9200/
{
"name" : "ip-*-*-*-*.ap-northeast-1.compute.internal",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "**********-**-********",
"version" : {
"number" : "7.2.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "508c38a",
"build_date" : "20**-**-20T**:**:**.811730Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Kibanaのセットアップ
Elasticsearchのインストールが完了したら次はKibanaのインストールを行います。
Elasticsearchと同じく,wgetとrpmを使用してインストールを行います。
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-x86_64.rpm
$ sudo rpm --install kibana-7.2.0-x86_64.rpm
KibanaもElasticsearchと同じくデフォルトでは『localhost』からの通信しか許可していませんので、外部からの通信を許可する設定を行います。
以下、設定ファイルを編集し、『server.host: “localhost”』⇒『server.host: “0.0.0.0”』と書き換えます。(コメントアウトし真下に追記する形でも大丈夫です)
$ sudo vim /etc/kibana/kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601
# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
#server.host: "localhost"
server.host: "0.0.0.0"
# Enables you to specify a path to mount Kibana at if you are running behind a proxy.
# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath
# from requests it receives, and to prevent a deprecation warning at startup.
# This setting cannot end in a slash.
#server.basePath: ""
~~~ 以下略 ~~~
Kibanaを起動します。
systemctlにて『Active: active (running)』と表示されれば問題ありません。
$ sudo service kibana start
$ sudo service kibana status
kibana is running
$ sudo service kibana status
kibana is running
Kibanaのアクセス確認を行います。
ブラウザを開き、以下URLにアクセスします。
【http://< EC2インスタンスEIP>:5601】
無事以下のようなローディング画面が表示されればKibanaのセットアップは完了です。
その後、Kibanaのウェルカムページが表示されたことをご確認ください。
Sampleデータを可視化してみよう!
KibanaでSampleデータを取得し、視覚化してみましょう。
Kibanaウェルカムページにて、『try Our Smple Page』をクリックします。
次ページ中央に3種類のSampleデータの内、好きなSampleのデータを取得します。
『Add data』をクリックします。
その後、『Add Data』が『View data』に変わったことを確認します。
Kibana左ペイン、『Discover』をクリックします。
次の画面にてSampleデータが可視化できていることを確認できたと思います。
基本的にKibanaではログをこのUIにてログデータを分析していくことになります。
まとめ
本当に基本的な構成しか設定しませんでしたが、この動きが分かっていないとLogstashはbeatとの連携もできませんので、まずは本記事のElasticsearchとKibanaの連携について学んでおきましょう。
次の記事では、WinlogbeatとLogstashのセットアップからwindowsのイベントログをKibanaで分析するまでの方法をご紹介しようと思います。
では本記事は以上になります。
コメント