elasticsearch使用docker启动一些注意事项
1. 文件挂载权限问题在使用docker来部署elasticsearch服务时,通常需要把elasticsearch的索引数据和日志数据映射到本地进行持久化存储,但是经常会遇到权限问题:elasticsearch无法读取数据或者无法写入日志文件,主要有两种处理方法:将外部文件权限全部打开,有一定安全风险# 将外面文件夹权限设定为全部用户可读写chmod -R 777 /PATH/TO/...
·
1. 文件挂载权限问题
在使用docker来部署elasticsearch服务时,通常需要把elasticsearch的索引数据和日志数据映射到本地进行持久化存储,但是经常会遇到权限问题:elasticsearch无法读取数据或者无法写入日志文件,主要有两种处理方法:
- 将外部文件权限全部打开,有一定安全风险
# 将外面文件夹权限设定为全部用户可读写
chmod -R 777 /PATH/TO/ES_DATA
chmod -R 777 /PATH/TO/ES_LOG
- 将镜像内文件与宿主机文件的用户及组id统一,因为在校验权限时通过uid和gid来验证,官方elasticsearch镜像内部为elasticsearch用户,uid和gid为1000,因此我们也将外部用户及组id修改为1000
# 将外部文件夹用户与组与镜像内部统一
chown 1000:1000 /PATH/TO/ES_DATA
chown 1000:1000 /PATH/TO/ES_DATA
2. 系统配置设置
基于docker启动elasticsearch,和在linux机器配置elasticsearch类似,同样需要做一些配置:
- 虚拟内存配置
elasticsearch使用mmapfs的方式来存储索引,通常系统默认的mmap数值较小,容易产生内存不足的错误,处理方法:- 先切换到root用户,执行
vi /etc/sysctl.conf
- 添加配置
vm.max_map_count=655360
- 执行
sysctl -p
使得配置生效 - 重新启动elasticsearch配置即生效
- 先切换到root用户,执行
- 进程数配置
elasticsearch通过线程池来执行不同操作,系统要保证elasticsearch用户至少可以创建4096个线程。- 切换root用户,执行
vi /etc/security/limits.conf
- 添加
elasticsearch - nproc 4096
- 切换root用户,执行
- 打开文件句柄数设置,设定最大可以打开65536个文件句柄
- 切换root用户,执行
vi /etc/security/limits.conf
- 添加
elasticsearch - nofile 65336
- 重启elasticsearch。
- 切换root用户,执行
更多推荐
已为社区贡献1条内容
所有评论(0)