CLOVER🍀

That was when it all began.

Docker Composeで、ElasticsearchとKibanaを試す環境を作る

Elasticsearchを最近単体で使って遊んでいたのですが、そろそろKibanaも使ってみたいなと思いまして。

Kibana: Explore, Visualize, Discover Data | Elastic

Kibanaのインストール方法を見つつ、自分はElasticsearchはDockerコンテナ内で遊んでいることが多いので、Kibanaと合わせてコンテナを立てるために、Docker Composeで立ち上げられるところまでやりたいと思います。

KibanaのDockerイメージの作成

Elasticsearchと合わせて使う、データの可視化・分析を行えるソフトウェアみたいです。

インストール方法は、こちら。

Set Up Kibana | Kibana User Guide [6.4] | Elastic

自分はUbuntu Linuxを使うので、以下のようなインストール手順を踏みます。

$ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ echo "deb http://packages.elastic.co/kibana/4.4/debian stable main" | sudo tee -a /etc/apt/sources.list
$ sudo apt-get update && sudo apt-get install kibana
$ sudo service kibana start

Kibanaのインストール的には以上なのですが、これで自分でDockerfileを作ってこんな感じにしました。
※オフィシャルのイメージは、いったんパス
Dockerfile

FROM ubuntu:latest

ENV KIBANA_MAJAR_VERSION 4.4
ENV KIBANA_VERSION ${KIBANA_MAJAR_VERSION}.1
ENV KIBANA_REPOSITORY http://packages.elastic.co/kibana/${KIBANA_MAJAR_VERSION}/debian

EXPOSE 5601

RUN apt-get install -y wget \
                       curl \
                       vim

RUN wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add - && \
    echo "deb ${KIBANA_REPOSITORY} stable main" | tee -a /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y kibana=${KIBANA_VERSION}

ADD start_kibana.sh start_kibana.sh
RUN chmod a+x start_kibana.sh

ENTRYPOINT ["./start_kibana.sh"]

インストールするバージョンは、Dockerfile内で指定するようにしました。

    apt-get install -y kibana=${KIBANA_VERSION}

ENTRYPOINTに指定しているスクリプトは、こちら。
start_kibana.sh

#!/bin/bash

if [ "$1" != "" ]; then
    ELASTICSEARCH_URL=$1
else
    ELASTICSEARCH_URL=http://localhost:9200
fi

perl -wpi -e 's!(.*)elasticsearch.url:.+!elasticsearch.url: "'${ELASTICSEARCH_URL}'"!' /opt/kibana/config/kibana.yml 

service kibana start && tailf /dev/null

とりあえず、このKibanaのDockerイメージをビルドしておきます。

$ docker build -t kazuhira/kibana:4.4.1 .

ElasticsearchのDockerイメージ

ElasticsearchのDockerイメージは、以下のエントリで作成したものを、Elasticsearch 2.2.0にして利用。

Ubuntu LinuxにElasticsearch 2.1とKuromojiをインストールする - CLOVER

Docker Composeで起動する

あとは、Docker Composeで使うために、docker-compose.ymlを作成します。内容は、こんな感じ。
docker-compose.yml

elasticsearch:
  image: kazuhira/elasticsearch:2.2.0
  ports:
    - "9200:9200"
    - "9300:9300"
  container_name: elasticsearch
  hostname: elasticsearch
kibana:
  image: kazuhira/kibana:4.4.1
  ports:
    - "5601:5601"
  container_name: kibana
  links: 
    - elasticsearch
  command: http://elasticsearch:9200

起動。

$ docker-compose up

この状態で、以下のURLにアクセスします。

http://localhost:5601/

しばらくすると、こんな感じに見えるようになります。

これで遊んでいきましょう。