简介就不写了
1、先启动3台容器
docker run -itd --privileged \
--restart=always \
-p 9200:9200/tcp \
-p 9300:9300/tcp \
-v /usr/local/docker_es_node1:/usr/local/elasticsearch \
--name=es_node1 \
centos7_ssh:latest /usr/sbin/init
docker run -itd --privileged \
--restart=always \
-p 9201:9201/tcp \
-p 9301:9301/tcp \
-v /usr/local/docker_es_node2:/usr/local/elasticsearch \
--name=es_node2 \
centos7_ssh:latest /usr/sbin/init
docker run -itd --privileged \
--restart=always \
-p 9202:9202/tcp \
-p 9302:9302/tcp \
-v /usr/local/docker_es_node3:/usr/local/elasticsearch \
--name=es_node3 \
centos7_ssh:latest /usr/sbin/init
2、进容器基础设置,3台容器一样
wget -c https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
mv elasticsearch-7.8.0 /usr/local/
cd /usr/local/elasticsearch-7.8.0/
useradd elk
chown -R elk:elk /usr/local/elasticsearch-7.8.0
vim /etc/security/limits.d/90-nproc.conf
soft nproc 2048
vim /etc/sysctl.conf
vm.max_map_count=655360
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
cat config/jvm.options|grep -vE '^#|^$'
-Xms1g #增加了此行
-Xmx1g #增加了此行
8-13:-XX:+UseG1GC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly
14-:-XX:+UseG1GC
14-:-XX:G1ReservePercent=25
14-:-XX:InitiatingHeapOccupancyPercent=30
-Djava.io.tmpdir=${ES_TMPDIR}
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=data
-XX:ErrorFile=logs/hs_err_pid%p.log
8:-XX:+PrintGCDetails
8:-XX:+PrintGCDateStamps
8:-XX:+PrintTenuringDistribution
8:-XX:+PrintGCApplicationStoppedTime
8:-Xloggc:logs/gc.log
8:-XX:+UseGCLogFileRotation
8:-XX:NumberOfGCLogFiles=32
8:-XX:GCLogFileSize=64m
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
sysctl -p
3、配置文件
[root@localhost ~]# docker exec -it es_node2 cat /usr/local/elasticsearch/config/elasticsearch.yml
cluster.name: es-cluster
node.name: es-node2
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
network.publish_host: 192.168.0.83
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true
discovery.seed_hosts: ["192.168.0.83:9300","192.168.0.83:9301","192.168.0.83:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
cluster.initial_master_nodes: ["es-node1"]
[root@localhost ~]# docker exec -it es_node2 cat /usr/local/elasticsearch/config/elasticsearch.yml
cluster.name: es-cluster
node.name: es-node2
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
network.publish_host: 192.168.0.83
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true
discovery.seed_hosts: ["192.168.0.83:9300","192.168.0.83:9301","192.168.0.83:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
cluster.initial_master_nodes: ["es-node1"]
[root@localhost ~]#
[root@localhost ~]# docker exec -it es_node3 cat /usr/local/elasticsearch/config/elasticsearch.yml
cluster.name: es-cluster
node.name: es-node3
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
network.publish_host: 192.168.0.83
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: false
node.data: true
discovery.seed_hosts: ["192.168.0.83:9300","192.168.0.83:9301","192.168.0.83:9302"]
cluster.initial_master_nodes: ["es-node1"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
启动
docker exec -it es_node1 cat /etc/rc.local
sysctl -p
su es -c '/usr/local/elasticsearch/bin/elasticsearch -d'
curl测试
[root@localhost ~]# curl http://192.168.0.83:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.0.83 33 83 50 2.00 2.01 2.05 dilmrt * es-node1
192.168.0.83 28 83 50 2.00 2.01 2.05 dilrt - es-node3
192.168.0.83 67 83 50 2.00 2.01 2.05 dilrt - es-node2