その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

ElasticsearchあるいはKibanaのDockerイメージからX-Packを取り除く方法

ElasticsearchのX-Packはマジ便利なんですが,有償なので (だたしmonitor機能なんかは無償のBasicライセンスで使えて最高) 使わない人も多いでしょう.
そんな場合,Elasticsearch/KibanaをDockerで動かすという時にX-Packを取り除きたくなるというのが人情でしょう.コンテナは軽いと嬉しい.

というわけでそういう場合の法です.

Elasticsearch:

FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.3
RUN bin/elasticsearch-plugin remove x-pack

Kibana:

FROM docker.elastic.co/kibana/kibana:5.6.3
RUN bin/kibana-plugin remove x-pack

プラグインマネジメント機能を介して,docker build時にゴリッとX-Packを消すという構造.

そんでもって,設定のyamlファイルに

xpack:
  monitoring.enabled: false
  security.enabled: false
  watcher.enabled: false
  ml.enabled: false
  graph.enabled: false
  reporting.enabled: false

などと書いてやるとX-Packを無効化した状態で起動することができる.このissueから情報を得ました: Unable to start Kibana 5.3.0 without X-Pack · Issue #27 · elastic/kibana-docker · GitHub

とは言えX-PackのBasicライセンスで利用できるmonitoring機能は普通に便利だったので,別にX-Pack消さんでも良いなというのが最近の感想です.

補足: Kibanaの場合はなんか特殊で,以下のようなyamlを書いてやる必要があった.

xpack:
  monitoring.enabled: false
  grokdebugger.enabled: false
  searchprofiler.enabled: false
  security.enabled: false
  watcher.enabled: false
  ml.enabled: false
  graph.enabled: false
  reporting.enabled: false
  tilemap.enabled: false
  upgrade.enabled: false
  xpack_main.enabled: false

なお現在はX-PackのBasicを有効にしているのでKibanaの設定は

  monitoring.enabled: true
  grokdebugger.enabled: true
  searchprofiler.enabled: true

というふうになっており (差分を心の目で見てください),Elasticsearchの設定は

  monitoring.enabled: true

となっています (差分を心の目で見てください).