使用Docker来创建Elasticsearch + Kibana环境
环境
使用官方的Docker容器创建环境。
版本
Elastic Search 5.1
Kibana 5.1
Docker composer 1.8.1
插件
X-Pack -> X-Pack
为了能够从Kibana中查看集群状态,需要安装Elastic Search和Kibana两者。从Elastic Search 5版本开始,相关产品已经整合为Elastic Stack。在此之前,Marvel(监控)、Shield(安全)、Watcher(警报和通知)、Graph(可视化)作为有偿插件分开提供,现在都合并在了一起。
本次安装X-Pack后,仅启用监控功能。
黑色字
为了进行形态素分析,您可以通过插件从 kuromoji 进行安装。
准备 Docker 文件。
以下是可使用的文件种类。
.
┣━━ docker-compose.yml
┣━━ es
┃ ┣━━ Dockerfile
┃ ┗━━ config
┃ ┣━━ elasticsearch.yml
┃ ┣━━ log4j2.properties
┃ ┗━━ scripts (空ディレクトリ)
┗━━ kibana
┗━━ Dockerfile
docker-compose.yml 可以用以下的表达方式来改写:
version: '2'
services:
elasticsearch:
build: es
volumes:
- es-data:/usr/share/elasticsearch/data
- ./es/config:/usr/share/elasticsearch/config
ports:
- 9200:9200
expose:
- 9300
ulimits:
nofile:
soft: 65536
hard: 65536
# https://github.com/docker-library/elasticsearch/issues/111
# uliimit
kibana:
build: kibana
links:
- elasticsearch:elasticsearch
ports:
- 5601:5601
volumes:
es-data:
driver: local
-
- コンテナ外からアクセスを行えるように、Elastics Searchの9200番ポートとKibanaの5601番ポートを portsに指定します。
-
- システム要件として nofile を 65536 することが書かれている ので ulimits で設定を行います。
-
- Elastics Searchのデータを残すために データボリュームを割り当てます。
- Elastics Searchの設定をカスタマイズするので、設定ファイルを置いてある es/config ディレクトリを マウントします。
/es/Dockerfile 的中文翻译
FROM elasticsearch:5.1
# x-pack をインストール
RUN elasticsearch-plugin install --batch x-pack
# kuromojiをインストール
RUN elasticsearch-plugin install analysis-kuromoji
通过将插件名称从“plugin”更改为“elasticsearch-plugin”命令,安装x-pack和kuromoji。
es/config/elasticsearch.yml 的源文件需要进行改写,只需要提供一个选项。
http.host: 0.0.0.0
# Uncomment the following lines for a production cluster deployment
#transport.host: 0.0.0.0
#discovery.zen.minimum_master_nodes: 1
### x-pack functions
xpack.security.enabled: false
xpack.monitoring.enabled: true
xpack.graph.enabled: false
xpack.watcher.enabled: false
我复制了官方容器中的 /usr/share/elasticsearch/config/elasticsearch.yml 文件,并添加了包含在 x-pack 中的功能的启用/禁用选项(xpack.xxx.enabled)。
es/config/log4j2.properties → es/config/log4j2.properties
status = error
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] %marker%m%n
rootLogger.level = info
rootLogger.appenderRef.console.ref = console
这是官方容器中的/usr/share/elasticsearch/config/log4j2.properties的副本。
基于Kibana的Dockerfile。
FROM kibana:5.1
# x-pack をインストール
RUN kibana-plugin install x-pack
安装x-pack插件。
构建和执行
在存放docker-compose.yml文件的目录中运行docker-compose build命令,如果成功,则使用docker-compose up命令启动。