toge's diary

コンピュータ関連の趣味をつらつらと。

Dockerで簡単にElasticsearch+Kibana環境

自分用のメモ。

ちゃんとやるにはpluginとか色々必要ですし、ネットワークも適切な設定が必要ですが、
まあとりあえず開発で最新版を使いたい時用手順です。

環境はFedora23 workstationです。

$ docker run -d -p 9200:9200 -p 9300:9300 -v "$PWD/esdata":/usr/share/elasticsearch/data elasticsearch:2
$ curl -XGET http://localhost:9200/
{
  "name" : "Runner",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.1.1",
    "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71",
    "build_timestamp" : "2015-12-15T13:05:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

なんか立ち上がったっぽいですね。

$ tree $PWD/esdata
esdata
└── elasticsearch
    └── nodes
        └── 0
            ├── _state
            │   └── global-2.st
            ├── indices
            └── node.lock

5 directories, 2 files

カレントディレクトリの下にesdataディレクトリができて、結構デカイデータが入るので注意。

$ docker ps
0c4e128e4145        elasticsearch:2     "/docker-entrypoint.s"   19 minutes ago      Up 19 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   stoic_panini

とりあえず立ち上がってるね。よしよし。
次はKibanaだ。

$ docker run -e ELASTICSEARCH_URL=http://192.168.1.101:9200 -p 5601:5601 -d kibana

"192.168.1.101"はホストのIPアドレスを指定。
localhostだとKibanaのコンテナ自信のポートになっちゃうから注意。

$ curl -X GET http://localhost:5601/
<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';

var hash = window.location.hash;
if (hash.length) {
  window.location = hashRoute + hash;
} else {
  window.location = defaultRoute;

とりあえず動いてるっぽいですね。
後でブラウザから確認しましたが4.3.1が入ってました。(2016/1/12時点)

$ docker ps 
c41219f376f4        kibana              "/docker-entrypoint.s"   5 minutes ago       Up 5 minutes        0.0.0.0:5601->5601/tcp                           kibana-test02
0c4e128e4145        elasticsearch:2     "/docker-entrypoint.s"   19 minutes ago      Up 19 minutes       0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   stoic_panini

ポートもばっちり。

http://localhost:5601/にアクセスするとちゃんとKibanaの画面がでてきて、満足。