3 Nodes ElasticSearch with Docker(使用Docker部署3节点ElasticSearch)
3 Nodes ElasticSearch with Docker
运行环境
虚拟化环境:Nutanix
操作系统:Redhat 7
Elascticsearch版本:7.1.1
资源:
CPU: 12 C
Memory: 108G
硬盘:本地100G,存储空间8T
1.安装Docker
1.1 首先更新操作系统
sudo yum update
1.2 添加yum仓库
sudo tee /etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=DockerRepository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
1.3 安装Docker
sudo yum -y install docker-engine
1.4 启动Docker服务
sudo service docker start
2.安装docker-compose
2.1 下载当前稳定版本的compose up
(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.2 赋予执行权限
$sudo chmod +x /usr/local/bin/docker-compose
2.3 检查compose是否正常安装(如果不报错即正常安装)
$docker-compose
3.获取elasticsearch镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1
4.修改vm.max_map_count(如果不该会报错)
sysctl -w vm.max_map_count=262144 -----(临时)
###------
vi /etc/sysctl.conf
vm.max_map_count=262144
------永久###
检查是否成功
$ grep vm.max_map_count /etc/sysctl.conf
显示为vm.max_map_count=262144即为正常
5.创建用于存放数据的文件夹
mkdir -p /data/es-data/
递归将文件夹权限修改为777,否则会报错
chmod -R 777 /data
mount x.x.x.x:/vol/syslog_vol /data/es-data/
df -h 检查是否挂载成功
cd /data/es-data
mkdir es01
mkdir es02
mkdir es03
chmod 777 es01
chmod 777 es02
chmod 777 es03
6.禁用swap,修改-nofile
vi /etc/fstab
注释掉swap行(elk官网推荐)
vi /etc/security/limits.conf
-nofile 65535
7.编辑3节点ElasticSearch_docker-compose up 启动文件
vi docker-compose.yml
version: ‘2.2’
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
container_name: es01
environment:
- node.name=es01
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- “ES_JAVA_OPTS=-Xms32g -Xmx32g”
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- “/data/es-data/es01:/usr/share/elasticsearch/data”
ports:
- 9200:9200
networks:
- esnet
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
container_name: es02
environment:
- node.name=es02
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- “ES_JAVA_OPTS=-Xms32g -Xmx32g”
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- “/data/es-data/es02:/usr/share/elasticsearch/data”
networks:
- esnet
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
container_name: es03
environment:
- node.name=es03
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- “ES_JAVA_OPTS=-Xms32g -Xmx32g”
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- “/data/es-data/es03:/usr/share/elasticsearch/data”
networks:
- esnet
volumes:
esdata01:
driver: local
esdata02:
driver: local
esdata03:
driver: local
networks:
esnet:
8.启动集群
在docker-compose.yml同目录下运行
docker-compose up
------------------------------转载请注明出处------------------------------