docker安装的es配置密码认证
前言
今天客户提出来,说es的端口是暴露出来的,可以直接取出来数据,按照要求,必须对9200进行密码配置。准备好几种方案,nginx的反向代理加上认证配置(但是是一个单体的服务,只在一台机器,所以没办法采用)。防火墙的配置(但是因为客户服务器的防火墙是关闭的,不能轻易打开防火墙)等
测试环境安装es
采用docker-compose安装
version: "3"
services:
es-master:
container_name: es-master
image: elasticsearch:7.9.3
hostname: es-master
restart: always
user: root
ports:
- 9200:9200
- 9300:9300
volumes:
- ./elasticsearch/master/config:/usr/share/elasticsearch/config
- ./elasticsearch/master/data:/usr/share/elasticsearch/data
- ./elasticsearch/master/logs:/usr/share/elasticsearch/logs
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "TZ=Asia/Shanghai"
启动后会报错,因此先不要挂载目录,先运行起来将容器的目录先copy出来
docker run -itd --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3
docker cp es:/usr/share/elasticsearch/config /root/retec/elasticsearch/master/
Successfully copied 18.9kB to /root/retec/elasticsearch/master/
设置虚拟缓存
#修改文件
sudo vim /etc/sysctl.conf
#添加参数
...
vm.max_map_count = 262144
加载配置
sysctl -p
添加权限
chmod -R