2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Elasticsearch入門】環境構築 コンテナ編

Last updated at Posted at 2020-07-20

本記事のゴール

Elasticsearchを勉強していこうという人向けにElasticsearch+Kibanaの環境構築方法をまとめます。

前提

dockerを使える状態にしておいてください

バージョン等

  • Elasticsearch: 7.6.2
  • kibana: 7.6.2

使うもの

  • docker
  • Elastic Stack
    • Elasticsearch
    • Kibana

コンテナ環境の構築

「Elasticsearch」、「Kibana」コンテナを作成します。
それぞれの製品に関してElastic社からコンテナイメージを提供されていますが、今回はCentOSコンテナを作成しその上でそれぞれの製品をインストールしていこうと思います。

docker networkの構築

今回はコンテナ間での通信が必要となるため、docker networkを作成する必要があります。

$ docker network create elasticstack
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
39612814bc52        bridge              bridge              local
b5c7f801ff0b        elasticstack        bridge              local
b6ca1bb92159        host                host                local
0dc929d2724d        none                null                local

コンテナの作成

実際にコンテナを作成していきます
上記でも説明した通り、今回は3つのコンテナを作成していきます。
それぞれのコンテナの要件は以下となります

  • elasticsearchコンテナ
    • name: elasticsearch
    • network: elasticstack
    • port: 9200:9200
    • イメージ: centos:centos7
  • kibanaコンテナ
    • name: kibana
    • network: elasticstack
    • port: 5601:5601
    • イメージ: centos:centos7

それぞれの設定を踏まえた上でコンテナを作成します。

$ docker run -it -d --network elasticstack -p 9200:9200 --name elasticsearch --privileged centos:centos7 /sbin/init
$ docker run -it -d --network elasticstack -p 5601:5601 --name kibana --privileged centos:centos7 /sbin/init

たちがってることを以下のコマンドで確認できます。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
479654a004cb        centos:centos7      "/sbin/init"        4 minutes ago       Up 4 minutes        0.0.0.0:5601->5601/tcp   kibana
977d952a52a8        centos:centos7      "/sbin/init"        4 minutes ago       Up 4 minutes        0.0.0.0:9200->9200/tcp   elasticsearch

Elastic Stackの構築

それぞれのコンテナの設定をしていきます。

Elasticsearchコンテナ

Elasticsearchの構築

以下のコマンドによりコンテナ内に入って作業を行います。

$ docker exec -it elasticsearch /bin/bash

javaのインストールとElasticsearchのrpmをインストールします。rpmのインストールではelasticsearchインストール用のrpmが必要ですのでそれを入手するためにもwgetもインストールします。
今回はJavaのバージョンは11系、Elasticsearchは7.6.2で行っていこうと思います。

# yum install -y java-11-openjdk
# yum install -y wget
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-x86_64.rpm
# rpm --install elasticsearch-7.6.2-x86_64.rpm

Elasticsearchの設定

今回の構成ではElasticsearchがシングルクラスタであることやコンテナ上で起動していることからElasticsearhにいくつかの設定をしてあげる必要があります。ここではその設定を行っていきます。

elasticsearch.ymlの設定

elasticsearch.ymlを開いてください。

# vi /etc/elasticsearch/elasticsearch.yml 

elasticsearch.ymlの一番最後の行に以下を追加してください。

cluster.name: my_cluster
node.name: elasticsearch
network.host: _site_
cluster.initial_master_nodes: ["elasticsearch"]

今回はシングルクラスタなのでcluster.name、node.name はあまり設定する必要がないですが、自分で設定する方が後々便利なので設定します。
network.host はリッスンするホストを指定します。今回はリンクローカルアドレスということで_site_を指定します。
cluster.initial_master_nodesはシングルクラスタ構成をとるには必ず必要な設定となりますので設定してください。簡単にいうとマスターノードを選定するために最低限必要なノードをここで指定します。

設定を終えたらelasticsearchを起動してみます。

# systemctl restart elasticsearch.service

以下のコマンドを打つと起動できたことを確認できます。

# curl elasticsearch:9200
{
  "name" : "elasticsearch",
  "cluster_name" : "my_cluster",
  "cluster_uuid" : "l_xjt09CSu-43BUdBM4fkg",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Kibanaコンテナ

Kibanaの構築

以下のコマンドによりコンテナ内に入って作業を行います。

$ docker exec -it kibana /bin/bash

javaのインストールとkibnaのrpmをインストールします。rpmのインストールではkibanaインストール用のrpmが必要ですのでそれを入手するためにもwgetもインストールします。
今回はJavaのバージョンは11系、kibanaは7.6.2で行っていこうと思います。

# yum install -y java-11-openjdk
# yum install -y wget
# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-x86_64.rpm
# rpm --install kibana-7.6.2-x86_64.rpm

Kibanaの設定

コンテナ上で起動していることのでKibanaにいくつかの設定をしてあげる必要があります。ここではその設定を行っていきます。

kibana.ymlの設定

kibana.ymlを開いてください。

# vi /etc/kibana/kibana.yml 

kibana.ymlの該当箇所を探して以下の設定に変更してください。

server.host: 0.0.0.0
elasticsearch.hosts: ["http://elasticsearch:9200"]

設定を終えたらelasticsearchを起動してみます。

# systemctl restart kibana.service

ここまでくるとkibanaを起動できるようになっています
以下のURLにアクセスして疎通確認をしてみましょう

http://localhost:5601

kibanaに接続後左側にあるサイドバーの「Dev Tools」に移動してください。
そうするとコンソール画面が出てくるのでそこで以下の入力を行った後、再生ボタンを押下してみてください

GET /

以下のような画面が出てくればKibana → Elasticsearchの接続も完了です。

image.png

以上がKibana+Elasticsearchお試し環境の構築方法となります。

おすすめ教材

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?