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にして利用。
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にアクセスします。
これで遊んでいきましょう。