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
となっています (差分を心の目で見てください).