便利ツール

Elasticsearch+Kibanaのローカル環境構築メモ

2023年5月21日

はじめに

Elasticsearch は、分散型のスケーラブルな全文検索エンジンです。
また、Kibana は Elasticsearch でインデックスされたデータに対して、
検索・可視化(BI)機能を提供しています。

元々はOSSでしたが、現在は Elastic社が中心となって開発しているプロプライエタリソフトです。
AWS(Amazon Web Service)でも OpenSearch として提供されており、様々な場面で導入されています。

本記事では、Elasticsearch と Kibana の docker image を使って、
ローカルでの環境構築手順についてご紹介いたします。

 

実行環境

OS は Ubuntu 20.04 LTS を使用します。

 
$ cat /etc/issue
Ubuntu 20.04.4 LTS

 

実行には、dockerdocker-compose が必要になります。

 
$ docker -v
Docker version 20.10.24, build 297e128
$ docker-compose -v
Docker Compose version v2.17.2

関連

インストール方法は>>>コチラ<<<

 

docker コンテナの準備

docker network の作成

複数のコンテナ間で通信を行うため、専用のネットワークを定義します。

 
$ docker network create elastic-nw --subnet=172.30.0.0/16 --gateway=172.30.0.254

 

コンテナの準備

Elastic社より、Elasticsearch と Kibana の Docker Image が公開されているため、
今回は公式のイメージを使用します。

以下は、Elasticsearch のノードを 3 つで構成し、1 つの Kibana と接続する例です。

 コンテナのビルド
$ docker-compose up --build -d

 

ビルドの確認

 Docker Imageの確認
$ docker images
REPOSITORY                                    TAG     IMAGE ID       CREATED       SIZE
docker.elastic.co/kibana/kibana               7.8.1   22bc1dd9a48a   2 years ago   1.3GB
docker.elastic.co/elasticsearch/elasticsearch 7.8.1   a529963ec236   2 years ago   811MB
 コンテナの起動確認
$ docker ps --format "{{.Names}}"
kibana1
es01
es02
es03

 

トラブルシューティング

Elasticsearch のコンテナが途中で終了する、または起動できない場合は、
以下の手順での対処をご確認ください。

 コンテナのログ確認
$ docker logs es01
(省略)
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
 一時的な対処方
$ sudo su -
# echo "262144" > /proc/sys/vm/max_map_count
# exit
$ docker start es01 es02 es03
SANACHAN
恒久対策はコチラを参照ください。

 

Kibana から Elasticsearch へアクセス

任意のWebブラウザーから、http://<IP-ADDR>:5601/ にアクセスすると、
Kibana の Home 画面が表示されます。

「kibana is not ready yet」が表示された場合は、先のトラブルシューティングを確認ください。

 

クエリの実行

Kibana の左サイドメニューから Dev Tools を開きます。

   

 

Dev Tools の画面から、Elasticsearch に対してクエリを実行できます。

 

Cluster の状態

 
GET /_cluster/health

Node の状態

 
GET /_cat/nodes?v

Index の状態

 
GET /_cat/indices?v

 

参考

 

こちらの記事もよく読まれています

  • この記事を書いた人
  • 最新記事
SANACHAN

SANACHAN

「生涯一エンジニア」を掲げ、大手グローバル企業でSE/PGとして8年勤め、キャリアアップ転職した現役のエンジニアです。世にあるメジャーな全プログラム言語(コボル除く)を自由に扱えます。一児の父。自分のため、家族のため、日々勉強してます。システムエンジニア、プログラミングに関する情報を蓄積している雑記帳です。

-便利ツール
-, , ,