Elasticsearch、Kibana、Cerebro のインストール
ダウンロードしてインストール
Java のインストール
Elasticsearch は JVM 上で動作するため、Java 8(JDK)がインストールされている必要がある。
インストールされていない場合は、まず JDK からインストールしよう。
Java 8(JDK)ランタイムのインストール
$ sudo yum install java-1.8.0-openjdk -y
Java 8(JDK)開発環境のインストール
$ sudo yum install java-1.8.0-openjdk-devel -y
Java バージョンを確認する。
$ java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
Elasticsearch のインストール
それでは Elasticsearch をインストールしてみよう。
まずインストールファイルをダウンロードする。
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.1-linux-x86_64.tar.gz
ダウンロードしたファイルを展開する。
$ tar xvfz elasticsearch-7.14.1-linux-x86_64.tar.gz
ディレクトリ名を使いやすいように短く変更する。
$ mv files/elasticsearch-7.14.1-linux-x86_64/ es-714
bin ディレクトリへ移動する。
$ cd es-714/bin/
起動ファイルを実行する。
$ ./elasticsearch
[kimkc@localhost bin]$ ./elasticsearch
[2021-09-02T21:45:57,952][INFO ][o.e.n.Node ] [localhost.localdomain] version[7.14.1], pid[116654], build[default/tar/66b55ebfa59c92c15db3f69a335d500018b3331e/2021-08-26T09:01:05.390870785Z], OS[Linux/4.18.0-338.el8.x86_64/amd64], JVM[Eclipse Foundation/OpenJDK 64-Bit Server VM/16.0.2/16.0.2+7]
[2021-09-02T21:45:57,957][INFO ][o.e.n.Node ] [localhost.localdomain] JVM home [/home/kimkc/es-714/jdk], using bundled JDK [true]
[2021-09-02T21:45:57,958][INFO ][o.e.n.Node ] [localhost.localdomain] JVM arguments [-Xshare:auto, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -XX:+ShowCodeDetailsInExceptionMessages, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dio.netty.allocator.numDirectArenas=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.locale.providers=SPI,COMPAT, --add-opens=java.base/java.io=ALL-UNNAMED, -XX:+UseG1GC, -Djava.io.tmpdir=/tmp/elasticsearch-1671236956648459411, -XX:+HeapDumpOnOutOfMemoryError, -XX:HeapDumpPath=data, -XX:ErrorFile=logs/hs_err_pid%p.log, -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m, -Xms166m, -Xmx166m, -XX:MaxDirectMemorySize=87031808, -XX:G1HeapRegionSize=4m, -XX:InitiatingHeapOccupancyPercent=30, -XX:G1ReservePercent=15, -Des.path.home=/home/kimkc/es-714, -Des.path.conf=/home/kimkc/es-714/config, -Des.distribution.flavor=default, -Des.distribution.type=tar, -Des.bundled_jdk=true]
[2021-09-02T21:46:00,777][INFO ][o.e.p.PluginsService ] [localhost.localdomain] loaded module [aggs-matrix-stats]
[2021-09-02T21:46:00,778][INFO ][o.e.p.PluginsService ] [localhost.localdomain] loaded module [analysis-common]
[2021-09-02T21:46:00,778][INFO ][o.e.p.PluginsService ] [localhost.localdomain] loaded module [constant-keyword]
[2021-09-02T21:46:00,779][INFO ][o.e.p.PluginsService ] [localhost.localdomain] loaded module [frozen-indices]
[2021-09-02T21:46:00,779][INFO ][o.e.p.PluginsService ] [localhost.localdomain] loaded module [ingest-common]
... 以下省略 ...
接続できるか確認する。
$ curl -XGET localhost:9200
$ curl -XGET localhost:9200
{
"name" : "es-714",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "8mO5vPIJQS-Eqa3PUvBVcA",
"version" : {
"number" : "7.14.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "66b55ebfa59c92c15db3f69a335d500018b3331e",
"build_date" : "2021-08-26T09:01:05.390870785Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[kimkc@es-714 ~]$
上記のように実行できれば、無事にインストールできている。
Kibana のインストール
インストールファイルをダウンロードする。
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.1-linux-x86_64.tar.gz
ダウンロードしたファイルを展開する。
$ tar xvfz kibana-7.14.1-linux-x86_64.tar.gz
ディレクトリ名を使いやすいように短く変更する。
$ mv files/kibana-7.14.1-linux-x86_64/ kb-714
bin ディレクトリへ移動する。
$ cd kb-714/bin/
起動ファイルを実行する。
$ ./kibana
Docker にインストール
簡単な学習や試用が目的であれば、Docker を使用してインストールする方法をおすすめする。
Elasticsearch Docker インストール
Elasticsearch Docker イメージをダウンロード
次のコマンドを実行して Elasticsearch Docker イメージをダウンロードする。ここではバージョン 7.14.0 を使用する。
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.14.0
実行結果は次のとおりである。
% docker pull docker.elastic.co/elasticsearch/elasticsearch:7.14.0
7.14.0: Pulling from elasticsearch/elasticsearch
ddf49b9115d7: Pull complete
693712dd4782: Pull complete
e1843b23879c: Pull complete
43b0526f3562: Pull complete
395a8174c4c5: Pull complete
671bce37ebcd: Pull complete
7b0bb020b357: Pull complete
Digest: sha256:46815a329dfdf633cac9261e287c8440512db13554cbcb4fa89842dde58e74b2
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:7.14.0
docker.elastic.co/elasticsearch/elasticsearch:7.14.0
Elasticsearch Docker コンテナの作成と実行
次のコマンドを実行する。ここでは Docker コンテナ名を es714 とした。
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es714 docker.elastic.co/elasticsearch/elasticsearch:7.14.0
実行結果は次のとおりである。
% docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es714 [docker.elastic.co/elasticsearch/elasticsearch:7.14.0](http://docker.elastic.co/elasticsearch/elasticsearch:7.14.0)
a3b75abf13c211cadf86637fe1c457b4b465556fc231a9a243362da49b117952
Elasticsearch Docker コンテナの実行確認
次のコマンドを実行してコンテナの実行を確認する。
docker ps
実行結果は次のとおりである。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3b75abf13c2 docker.elastic.co/elasticsearch/elasticsearch:7.14.0 "/bin/tini -- /usr/l..." About a minute ago Up About a minute 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp es714
Elasticsearch Docker 設定の確認
次のコマンドを実行して設定を確認する。
docker exec -i -t es714 cat /usr/share/elasticsearch/config/elasticsearch.yml
実行結果は次のとおりである。
% docker exec -i -t es714 cat /usr/share/elasticsearch/config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
Kibana Docker インストール
Kibana Docker イメージの取得
次のコマンドを実行して Kibana Docker イメージを取得する。バージョンは Elasticsearch と同じ 7.14.0 を使用する。
docker pull docker.elastic.co/kibana/kibana:7.14.0
実行結果は次のとおりである。
% docker pull docker.elastic.co/kibana/kibana:7.14.0
7.14.0: Pulling from kibana/kibana
ddf49b9115d7: Already exists
b62151c99641: Pull complete
d11b460fe76c: Pull complete
1078fcc7cd25: Pull complete
c74f7ca3ab86: Pull complete
2fb0a75edcfc: Pull complete
339c3eb65140: Pull complete
c359ec1d1586: Pull complete
7c0bddf401bf: Pull complete
59df587bba1b: Pull complete
34afeb086a05: Pull complete
4de583c3a000: Pull complete
961084329244: Pull complete
Digest: sha256:6408b11743abb2855e62406edb3cfd53848b97e48c65c0f4d843c427ccb3bb90
Status: Downloaded newer image for docker.elastic.co/kibana/kibana:7.14.0
docker.elastic.co/kibana/kibana:7.14.0
Kibana Docker コンテナの作成と実行
次のコマンドを実行する。
docker run -d --link es714:elasticsearch -p 5601:5601 --name kb714 docker.elastic.co/kibana/kibana:7.14.0
実行結果は次のとおりである。
% docker run -d --link es714:elasticsearch -p 5601:5601 --name kb714 docker.elastic.co/kibana/kibana:7.14.0
becb75fdb608c119407ea37e1f75f54898d64683fdb76674b08e8c875e1fca77
Kibana Docker コンテナの実行確認
以下のコマンドを実行する。
docker ps
実行結果は次のとおりである。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
becb75fdb608 docker.elastic.co/kibana/kibana:7.14.0 "/bin/tini -- /usr/l..." 13 seconds ago Up 12 seconds 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kb714
a3b75abf13c2 docker.elastic.co/elasticsearch/elasticsearch:7.14.0 "/bin/tini -- /usr/l..." About an hour ago Up About an hour 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp es714
Kibana 設定の確認
次のコマンドを実行する。
docker exec -i -t kb714 cat /usr/share/kibana/config/kibana.yml
実行結果は次のとおりである。
% docker exec -i -t kb714 cat /usr/share/kibana/config/kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true%
Kibana 接続確認
以下の URL をブラウザに入力する。
http://localhost:5601/
次のように画面が表示されれば、正しくインストールできている。

Cerebro Docker インストール
Cerebro は Elasticsearch を GUI で確認できる別のツールである。
Cerebro Docker イメージの取得
次のコマンドを実行して Cerebro Docker イメージを取得する。
docker pull lmenezes/cerebro
実行結果は次のとおりである。
% docker pull lmenezes/cerebro
Using default tag: latest
latest: Pulling from lmenezes/cerebro
f7ec5a41d630: Pull complete
faf4c47c8c61: Pull complete
810072571faf: Pull complete
395682a2fa05: Pull complete
635a13f1552d: Pull complete
Digest: sha256:95b02e46ec91c00ab33ce21f4d23bf6083d3c900257b9371a56ea218737462e5
Status: Downloaded newer image for lmenezes/cerebro:latest
docker.io/lmenezes/cerebro:latest
Cerebro Docker コンテナの実行
以下のコマンドを実行する。
docker run -d -p 9000:9000 --link es714:localhost --name cerebro -e "CEREBRO_PORT=9000" -e "ELASTICSEARCH_HOST=http://localhost:9200" lmenezes/cerebro
実行結果は次のとおりである。
% docker run -d -p 9000:9000 --link es714:localhost --name cerebro -e "CEREBRO_PORT=9000" -e "ELASTICSEARCH_HOST=http://localhost:9200" lmenezes/cerebro
4f1c86c5e3156891cb129a841579f1ff6446c271c4fa53141c23c3d0004613f7
Cerebro 実行確認
以下の URL をブラウザに入力する。
http://localhost:9000
次のような画面が表示されたら、Node address 欄に http://localhost:9200 を入力する。

次のような画面が表示されれば、正しくインストールできている。

まとめて制御する
docker-compose ファイル作成
docker-compose-elastic.yml ファイルを作成し、次のように記述する。
version: '3.6'
services:
elasticsearch:
image: 'docker.elastic.co/elasticsearch/elasticsearch:7.14.0'
container_name: es714
ports:
- "9200:9200"
- "9300:9300"
environment:
- node.name="es01"
- cluster.name="es-docker-cluster"
- bootstrap.memory_lock=true
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms4g -Xmx4g"
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elastic
kibana:
image: 'docker.elastic.co/kibana/kibana:7.14.0'
container_name: kb714
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=["http://es714:9200"]
depends_on:
- elasticsearch
networks:
- elastic
cerebro:
image: 'lmenezes/cerebro'
container_name: 'cerebro'
ports:
- "9000:9000"
environment:
- "CEREBRO_PORT=9000"
- "ELASTICSEARCH_HOST=http://es714:9200"
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
すべての実行、停止、削除
実行コマンド
% docker-compose -f docker-compose-elastic.yml up -d
停止コマンド
% docker-compose -f docker-compose-elastic.yml stop
削除コマンド
% docker-compose -f docker-compose-elastic.yml rm
各サービスの接続確認
Elasticsearch の起動有無を確認する。
% chrome 127.0.0.1:9200
Kibana の起動有無を確認する。
% chrome 127.0.0.1:5601
Cerebro の起動有無を確認する。
% chrome 127.0.0.1:9000