Elasticsearch 6.3官方教程翻译系列(2.1):安装
2. 设置 Elasticsearch
本节包含有关如何设置Elasticsearch并使其运行的信息,其中包括:
- 下载
- 安装
- 开始
- 配置
支持的平台
官方支持的操作系统和JVM的矩阵可在此处获得:支持矩阵。
Elasticsearch在列出的平台上进行了测试,但它也可能在其他平台上运行。
java (jvm)版本
Elasticsearch是使用Java构建的,并且至少需要Java 8才能运行。只支持Oracle的Java和OpenJDK。
所有Elasticsearch节点和客户端都应该使用相同的JVM版本。
Elasticsearch将使用的Java版本可以通过设置JAVA_HOME环境变量进行配置。
2.1 安装Elasticsearch
Elasticsearch提供以下列软件包格式:
zip/tar.gz
zip和tar.gz软件包适合安装在任何系统上,并且是在大多数系统上开始使用Elasticsearch的最简单选择。deb
Deb软件包适用于Debian,Ubuntu和其他基于Debian的系统。Debian软件包可以从Elasticsearch网站或从我们的Debian存储库下载。rpm
rpm包适合安装在Red Hat,Centos,SLES,OpenSuSE和其他基于RPM的系统上。RPM可以从Elasticsearch网站或从我们的RPM存储库下载。msi
msi软件包适用于安装至少安装了.NET 4.5框架的Windows 64位系统,并且是在Windows上开始使用Elasticsearch的最简单选择。
MSI可以从Elasticsearch网站下载。docker
镜像可用于运行Elasticsearch作为Docker容器。
它们可以从Elastic Docker Registry中下载。配置管理工具
我们还提供以下配置管理工具来帮助大型部署:
Puppet puppet-elasticsearch
Ansible ansible-elasticsearch
2.1.1 使用.zip或.tar.gz安装Elasticsearch
Elasticsearch以.zip和.tar.gz包的形式提供。
这些软件包可用于在任何系统上安装Elasticsearch,并且是试用Elasticsearch时最简单的软件包格式。
注意:Elasticsearch需要Java 8或更高版本。
使用官方的Oracle发行版或OpenJDK等开源发行版。
2.1.1.1 下载并安装.zip软件包
Elasticsearch v6.3.0的.zip压缩文件可以下载并安装,如下所示:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip.sha512
shasum -a 512 -c elasticsearch-6.3.0.zip.sha512
unzip elasticsearch-6.3.0.zip
cd elasticsearch-6.3.0/
- shasum -a 512 -c elasticsearch-6.3.0.zip.sha512 比较下载的.zip压缩文件的SHA和发布的校验和的SHA,该校验和应输出elasticsearch- {version} .zip:OK。
- elasticsearch-6.3.0/ 这个目录被称为$ ES_HOME。
或者,您可以下载以下软件包,该软件包仅包含Apache 2.0许可证下提供的功能:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.3.0.zip
2.1.1.2 下载并安装.tar.gz软件包
Elasticsearch v6.3.0的.tar.gz存档可以下载并安装,如下所示:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.3.0.tar.gz.sha512
tar -xzf elasticsearch-6.3.0.tar.gz
cd elasticsearch-6.3.0/
或者,您可以下载以下软件包,其中仅包含Apache 2.0许可代码:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.3.0.tar.gz
2.1.1.3 启用自动创建X-Pack 索引
X-Pack将尝试在Elasticsearch中自动创建一些索引。
默认情况下,Elasticsearch配置为允许自动创建索引,不需要额外的步骤。
但是,如果您在Elasticsearch中禁用自动索引创建,则必须在elasticsearch.yml中配置action.auto_create_index以允许X-Pack创建以下索引:
action.auto_create_index: .security,.monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
重要: 如果您使用的是Logstash或Beats,那么您的action.auto_create_index设置中很可能需要额外的索引名称,具体值取决于您的本地配置。
如果您不确定环境的正确值,则可以考虑将值设置为*,以便自动创建所有索引。
2.1.1.4 从命令行运行Elasticsearch
Elasticsearch可以从命令行启动,如下所示:
./bin/elasticsearch
默认情况下,Elasticsearch在前台运行,将其日志打印到标准输出(stdout),并可通过按Ctrl-C来停止。
注意: 与Elasticsearch打包在一起的所有脚本都需要一个支持数组的Bash版本,并假定Bash在/ bin / bash中可用。
因此,Bash应直接或通过符号链接在此路径上可用。
2.1.1.5 检查Elasticsearch是否正在运行
您可以通过向本地主机上的端口9200发送HTTP请求来测试您的Elasticsearch节点是否正在运行:
GET /
这应该给你一个这样的回应:
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.3.0",
"build_flavor" : "oss",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
可以使用命令行上的-q或—quiet选项禁用将日志打印到标准输出。
2.1.1.6 作为守护进程运行
要将Elasticsearch作为守护程序运行,请在命令行中指定-d,并使用-p选项将进程ID记录到文件中:
./bin/elasticsearch -d -p pid
日志消息可以在$ ES_HOME / logs /目录中找到。
要关闭Elasticsearch,请杀死记录在pid文件中的进程ID:
kill `cat pid`
注意: RPM和Debian软件包中提供的启动脚本负责为您启动和停止Elasticsearch过程。
2.1.1.7 在命令行配置Elasticsearch
Elasticsearch默认从$ ES_HOME / config / elasticsearch.yml文件加载其配置。
配置Elasticsearch中解释了此配置文件的格式。
任何可以在配置文件中指定的设置也可以在命令行上使用-E语法指定,如下所示:
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
提示: 通常,应将任何群集范围设置(如cluster.name)添加到elasticsearch.yml配置文件中,而可以在命令行中指定任何节点特定设置(如node.name)。
2.1.1.8 .zip和.tar.gz 包的目录布局
.zip和.tar.gz软件包完全独立。
默认情况下,所有文件和目录都包含在$ ES_HOME中 - 解压缩归档文件时创建的目录。
这非常方便,因为您不必创建任何目录来开始使用Elasticsearch,卸载Elasticsearch就像移除$ ES_HOME目录一样简单。
但是,建议更改config目录,数据目录和日志目录的默认位置,以便稍后不要删除重要数据。
类型 | 描述 | 默认位置 | 设置 |
---|---|---|---|
home | Elasticsearch主目录或$ ES_HOME | 通过解压归档创建的目录 | |
bin | 二进制脚本包括elasticsearch启动节点和elasticsearch-plugin来安装插件 | ||
conf | 配置文件包括elasticsearch.yml | $ES_HOME/config | ES_PATH_CONF |
data | 在节点上分配的每个索引/分片的数据文件的位置。可以容纳多个地点。 | $ES_HOME/data | path.data |
logs | 日志文件位置。 | $ES_HOME/logs | path.logs |
plugins | 插件文件的位置。每个插件都将包含在一个子目录中。 | $ES_HOME/plugins | |
repo | 共享文件系统存储库位置。可以容纳多个地点。文件系统存储库可以放置在此处指定的任何目录的任何子目录中。 | 未配置 | path.repo |
script | 脚本文件的位置。 | $ES_HOME/scripts | path.scripts |
2.1.1.9 下一步
您现在已经设置了一个测试Elasticsearch环境。
在您开始认真开发或使用Elasticsearch进行生产之前,您必须进行一些额外的设置:
- 了解如何配置Elasticsearch。
- 配置重要的Elasticsearch设置。
- 配置重要的系统设置。
2.1.2 在Windows上使用.zip安装Elasticsearch
Elasticsearch可以使用.zip软件包安装在Windows上。这带有一个elasticsearch-service.bat命令,它将设置Elasticsearch作为服务运行。
提示:历史上Elasticsearch使用.zip压缩文件安装在Windows上。MSI安装程序包可用于为Windows提供最简单的入门体验。如果您愿意,您可以继续使用.zip方法。
2.1.2.1 下载并安装.zip软件包
从以下位置下载Elasticsearch v6.3.0的.zip存档:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip
或者,您可以下载以下软件包,该软件包仅包含Apache 2.0许可证下提供的功能:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-6.3.0.zip
使用您最喜欢的解压缩工具解压缩。
这将创建一个名为elasticsearch-6.3.0的文件夹,我们将其称为%ES_HOME%。
在终端窗口中,cd到%ES_HOME%目录,例如:
cd c:\elasticsearch-6.3.0
2.1.2.2 启用自动创建X-Pack 索引
X-Pack将尝试在Elasticsearch中自动创建一些索引。
默认情况下,Elasticsearch配置为允许自动创建索引,不需要额外的步骤。
但是,如果您在Elasticsearch中禁用自动索引创建,则必须在elasticsearch.yml中配置action.auto_create_index以允许X-Pack创建以下索引:
action.auto_create_index: .security,.monitoring,.watches,.triggered_watches,.watcher-history,.ml*
2.1.2.3 从命令行运行Elasticsearch
.\bin\elasticsearch.bat
默认情况下,Elasticsearch在前台运行,将其日志打印到STDOUT,并可以通过按Ctrl-C来停止。
2.1.2.4 在命令行上配置Elasticsearch
Elasticsearch默认从%ES_HOME%\ config \ elasticsearch.yml文件加载其配置。
配置Elasticsearch中解释了此配置文件的格式。
任何可以在配置文件中指定的设置也可以在命令行上使用-E语法指定,如下所示:
.\bin\elasticsearch.bat -Ecluster.name=my_cluster -Enode.name=node_1
注意:包含空格的值必须用引号括起来。
例如-Epath.logs =“C:\ My Logs \ logs”。提示:通常,应将任何群集范围设置(如cluster.name)添加到elasticsearch.yml配置文件中,而可以在命令行中指定任何节点特定设置(如node.name)
2.1.2.5 检查Elasticsearch是否正在运行
GET /
这应该给你一个这样的回应:
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.3.0",
"build_flavor" : "oss",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
2.1.2.6 将Elasticsearch作为服务安装在Windows上
Elasticsearch可以作为一项服务安装在后台运行,或者在启动时自动启动,无需任何用户交互。
这可以通过bin \文件夹中的elasticsearch-service.bat脚本实现,该脚本允许您从命令行安装,删除,管理或配置服务,并可能启动和停止服务。
c:\elasticsearch-6.3.0\bin>elasticsearch-service.bat
Usage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]
该脚本需要一个参数(要执行的命令),后跟一个可选的参数,指示服务ID(安装多个Elasticsearch服务时很有用)。
可用的命令是:
- install 将Elasticsearch作为服务安装
- remove 删除已安装的Elasticsearch服务(并在启动时停止服务)
- start 启动Elasticsearch服务(如果已安装)
- stop 停止Elasticsearch服务(如果启动)
- manager 启动一个GUI来管理已安装的服务
该服务的名称和JAVA_HOME的值将在安装期间可用:
c:\elasticsearch-6.3.0\bin>elasticsearch-service.bat install
Installing service : "elasticsearch-service-x64"
Using JAVA_HOME (64-bit): "c:\jvm\jdk1.8"
The service 'elasticsearch-service-x64' has been installed.
注意1:虽然JRE可用于Elasticsearch服务,但由于使用客户端VM(与为长时间运行的应用程序提供更好性能的服务器JVM相反),因此不鼓励使用它,并会发出警告。
注意2:应该将系统环境变量JAVA_HOME设置为您希望服务使用的JDK安装路径。
如果升级JDK,则不需要重新安装该服务,但必须将系统环境变量JAVA_HOME的值设置为新JDK安装的路径。
但是,不支持跨JVM类型(例如JRE和SE)进行升级,并且需要重新安装该服务。
2.1.2.7 定制服务设置
通过设置以下环境变量(使用命令行中的set命令或通过系统属性 - >环境变量GUI),可以在安装之前配置Elasticsearch服务。
- SERVICE_ID 服务的唯一标识符。
如果在同一台机器上安装多个实例很有用。
默认为elasticsearch-service-x64。 - SERVICE_USERNAME 用户运行为,默认为本地系统帐户。
- SERVICE_PASSWORD 在%SERVICE_USERNAME%中指定的用户的密码。
- SERVICE_DISPLAY_NAME 服务的名称。
缺省为Elasticsearch <version>%SERVICE_ID%。 - SERVICE_DESCRIPTION 服务的描述。
默认为Elasticsearch <版本> Windows服务 - https://elastic.co。 - JAVA_HOME 所需JVM的安装目录下运行该服务。
- SERVICE_LOG_DIR 服务日志目录,默认为%ES_HOME%\ logs。
请注意,这不会控制Elasticsearch日志的路径;
这些路径是通过elasticsearch.yml配置文件中的设置path.logs或命令行设置的。 - ES_PATH_CONF 配置文件目录(需要包含elasticsearch.yml,jvm.options和log4j2.properties文件)缺省为%ES_HOME%\ config。
- ES_JAVA_OPTS 您可能想要应用的任何其他JVM系统属性。
- ES_START_TYPE 服务的启动模式。
可以是自动或手动(默认)。 - ES_STOP_TIMEOUT procrun等待服务正常退出的超时时间(以秒为单位)。默认为0。
注意: 在其核心,elasticsearch-service.bat依靠Apache Commons Daemon项目来安装该服务。
在服务安装之前设置的环境变量将被复制并在服务生命周期中使用。
这意味着安装后对它们所做的任何更改都不会被取回,除非该服务被重新安装。注意: 在Windows上,当从命令行运行Elasticsearch时,或者在首次将Elasticsearch作为服务安装时,可以针对其他Elasticsearch安装来配置堆大小。
要调整已安装服务的堆大小,请使用服务管理器:bin \ elasticsearch-service.bat管理器。注意: 该服务会自动配置Elasticsearch在运行时使用的专用临时目录。此专用临时目录被配置为运行安装的用户的专用临时目录的子目录。如果该服务将在不同的用户下运行,则可以在执行服务安装之前,通过将环境变量ES_TMPDIR设置为首选位置来配置该服务应该使用的临时目录的位置。
使用管理器GUI
还可以使用管理器GUI(elasticsearch-service-mgr.exe)安装服务,该服务器提供对已安装服务的了解,包括其状态,启动类型,JVM,启动和停止设置等等
。只需从命令行调用elasticsearch-service.bat管理器将打开管理器窗口:
通过管理器GUI进行的大多数更改(如JVM设置)都需要重新启动服务才能生效。
2.1.3 用Debian软件包安装Elasticsearch(略过)
2.1.4 使用RPM安装Elasticsearch(略过)
2.1.5 使用Windows MSI安装程序安装Elasticsearch(TODO )
2.1.6 用Docker安装Elasticsearch
Elasticsearch也可用作Docker镜像。
图像使用centos:7作为基本图像。
所有发布的Docker镜像和标签列表可以在www.docker.elastic.co找到。源代码可以在GitHub上找到。
2.1.6.1 镜像类型
这些映像可以在Elastic许可下自由使用。
2.1.6.2 拉取镜像
获取Elasticsearch for Docker非常简单,只需发出针对Elastic Docker注册表的docker pull命令即可。
可以使用以下命令检索Docker映像:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.0
docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.0
2.1.6.3 从命令行运行
开发模式
使用以下命令可以快速启动Elasticsearch以进行开发或测试:
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.0
生产模式
重要:对于生产用途,vm.max_map_count内核设置需要至少设置为262144。取决于您的平台:
Linux 平台:
vm.max_map_count配置应该在/etc/sysctl.conf中永久设置:$ grep vm.max_map_count /etc/sysctl.conf vm.max_map_count=262144
要在实时系统类型上应用该设置:sysctl -w vm.max_map_count = 262144
Windows和MacOS与Docker Toolbox:vm.max_map_count设置必须通过docker-machine设置:
docker-machine ssh sudo sysctl -w vm.max_map_count=262144
以下示例显示包含两个Elasticsearch节点的集群。
要启动集群,请使用docker-compose.yml并输入:docker-compose up
注意:docker-compose不在Linux上预装Docker。
可以在Docker Compose网页上找到安装它的说明。
当elasticsearch节点2在Docker网络上与elasticsearch节点1通讯的时候,elasticsearch节点1在localhost:9200上侦听。
这个例子还使用名为卷的名为esdata1和esdata2的Docker,如果它尚未存在,将会创建该卷。
docker-compose.yml:
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
要停止集群,请输入docker-compose。
数据量将持续存在,因此可以使用docker-compose up再次使用相同的数据启动群集。
要销毁集群和数据卷,只需键入docker-compose down -v。
检查群集的状态
curl http://127.0.0.1:9200/_cat/health
1472225929 15:38:49 docker-cluster green 2 2 4 2 0 0 0 0 - 100.0%
日志消息转到控制台,由配置的Docker日志记录驱动程序处理。默认情况下,您可以使用docker日志访问日志。
2.1.6.4 用Docker配置Elasticsearch
Elasticsearch从/ usr / share / elasticsearch / config /下的文件加载它的配置。
配置Elasticsearch和设置JVM选项中记录了这些配置文件。
该图像提供了几种用于配置Elasticsearch设置的方法,传统方法是提供定制文件,即elasticsearch.yml。也可以使用环境变量来设置选项:
A.通过Docker环境变量提供参数
例如,要使用docker run定义集群名称,可以传递-e“cluster.name = mynewclustername”。
双引号是必需的。
B.绑定装配配置
创建您的自定义配置文件并将其安装在图像的相应文件上。
例如,用docker运行绑定一个custom_elasticsearch.yml可以用下面的参数完成:
-v full_path_to/custom_elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
容器使用uid:gid 1000:1000作为用户elasticsearch运行Elasticsearch。
绑定安装的主机目录和文件(例如上面的custom_elasticsearch.yml)需要由该用户访问。
对于数据和日志目录,例如/ usr / share / elasticsearch / data,也需要写访问权限。
另请参阅下面的注1。
C.定制的镜像
在某些环境中,准备包含您的配置的自定义图像可能更有意义。
Dockerfile实现这一点可能很简单:
FROM docker.elastic.co/elasticsearch/elasticsearch:6.3.0
COPY --chown=elasticsearch:elasticsearch elasticsearch.yml /usr/share/elasticsearch/config/
然后,您可以使用以下内容构建并尝试图像:
docker build --tag=elasticsearch-custom .
docker run -ti -v /usr/share/elasticsearch/data elasticsearch-custom
一些插件需要额外的安全权限。
您必须通过在运行Docker映像时附加tty并在提示符下接受yes来明确接受它们,或者分别检查安全权限,并且如果您对它们感到满意,则将—batch标志添加到plugin install命令。
查看插件管理文档了解更多详情。
D.覆盖图像的默认CMD
通过覆盖图像的默认命令,可以将选项作为命令行选项传递给Elasticsearch进程。例如:
docker run <various parameters> bin/elasticsearch -Ecluster.name=mynewclustername
2.1.6.5 使用Elasticsearch Docker 镜像配置SSL / TLS
请参阅在Elasticsearch Docker映像中加密通信。
2.1.6.6 生产使用注意事项和默认设置
我们收集了一些生产用途的最佳实践。下面提到的任何Docker参数都假设使用docker run。
- 默认情况下,Elasticsearch以使用uid:gid 1000:1000的用户elasticsearch的形式在容器内运行。
Openshift是一个例外,它使用任意分配的用户ID来运行容器。
Openshift将呈现持续卷,将gid设置为0,这将在没有任何调整的情况下工作。
如果绑定本地目录或文件,请确保该用户可读,而数据和日志目录另外需要写入权限。
一个好的策略是授予对本地目录的gid 1000或0的组访问权限。
作为一个例子,要准备一个本地目录来存储通过bind-mount的数据:
mkdir esdatadir
chmod g+rwx esdatadir
chgrp 1000 esdatadir
作为最后的手段,您还可以强制容器通过环境变量TAKE_FILE_OWNERSHIP来更改用于数据和日志文件的任何绑定挂载的所有权。
在这种情况下,它们将由uid:gid 1000:0拥有,并根据需要提供对Elasticsearch进程的读/写访问。
- 确保nofile和nproc可用于Elasticsearch容器的ulimits是非常重要的。验证Docker守护进程的init系统是否已经将这些值设置为可接受的值,并且如果需要,可以在守护进程中调整它们,或者使用docker run来覆盖每个容器。
--ulimit nofile=65536:65536
检查Docker守护程序默认为上述ulimits的一种方法是运行:
docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn && ulimit -Hu && ulimit -Su'
- 为了性能和节点稳定性需要禁用交换。这可以通过Elasticsearch文档中提到的任何方法来实现。如果您选择bootstrap.memory_lock:true方法,除了通过任何配置方法定义之外,还需要memlock:true ulimit,或者在Docker Daemon中定义或专门为容器设置。
这在docker-compose.yml中已经得到了证明。如果使用docker run:
-e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1
- 镜像公开了TCP端口9200和9300.对于群集,建议使用—publish-all随机化发布的端口,除非您为每个主机固定一个容器。
- 使用ES_JAVA_OPTS环境变量设置堆大小。例如,要使用16GB,使用-e ES_JAVA_OPTS =“ - Xms16g -Xmx16g”用docker run 命令。
- 将您的部署固定到特定版本的Elasticsearch Docker镜像。例如,docker.elastic.co/elasticsearch/elasticsearch:6.3.0。
- 如生产示例中所示,始终使用绑定在/ usr / share / elasticsearch / data上的卷,原因如下:
a. 如果容器被杀死,您的elasticsearch节点的数据不会丢失
b. Elasticsearch对I / O敏感,而Docker存储驱动程序对于快速I / O并不理想
c. 它允许使用高级Docker卷插件
- 如果您正在使用devicemapper存储驱动程序,请确保您未使用默认的loop-lvm模式。将docker-engine配置为使用direct-lvm。
- 考虑通过使用不同的日志记录驱动程序来集中您的日志。
另外请注意,默认的json文件日志记录驱动程序不适合生产使用。