生产注意事项
内核设置
Linux 设置
查看
临时
永久
elasticsearch配置文件必须可供用户读取
elasticsearch默认情况下,Elasticsearch使用 uid:gid以用户身份在容器内运行1000:0 如果您要绑定挂载本地目录或文件,则用户必须可以读取它elasticsearch。 此外,此用户必须具有对配置、数据和日志目录的写访问权限 (Elasticsearch 需要对该config目录的写访问权限,以便它可以生成密钥库)。 一个好的策略是授予0本地目录的 gid 组访问权限。
增加 nofile 和 nproc 的 ulimit
必须为 Elasticsearch 容器增加nofile和nproc的 ulimit 。验证 Docker 守护进程的init 系统是否将它们设置为可接受的值。
要检查 Docker 守护进程的 ulimits 默认值,请运行:
如果需要,请在守护进程中调整它们或按容器覆盖它们。例如,使用时docker run,设置:
随机化已发布的端口
该图像公开 TCP 端口 9200 和 9300。对于生产集群,建议使用随机化发布的端口--publish-all,除非您在每个主机上固定一个容器。
手动设置堆大小
默认情况下,Elasticsearch 会根据节点的 角色和节点容器可用的总内存自动调整 JVM 堆的大小。
我们建议在大多数生产环境中使用此默认大小。如果需要,您可以通过手动设置 JVM 堆大小来覆盖默认大小。
要在生产中手动设置堆大小,请绑定安装包含所需堆大小设置的JVM 选项文件。 /usr/share/elasticsearch/config/jvm.options.d
为了进行测试,您还可以使用环境变量手动设置堆大小ES_JAVA_OPTS 。例如,要使用 1GB,请使用以下命令。
该ES_JAVA_OPTS变量会覆盖所有其他 JVM 选项。我们不建议ES_JAVA_OPTS在生产中使用。
禁用所有交换文件
要永久禁用它,您需要编辑该/etc/fstab文件并注释掉所有包含单词 的行swap