第一步 安装 docker 和 docker-compose
docker自行百度安装
安装 docker-compose
# 这个是官方地址,可能比较慢,推荐使用下面的国内镜像地址
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 国内镜像地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 下载完之后可以看下 /usr/local/bin 这个目录有没有 docker-compose 这个文件
# 授权
sudo chmod +x /usr/local/bin/docker-compose
第二步 安装Elasticsearch,Kibana,Cerebro
docker pull elasticsearch:6.7.2
docker pull kibana:6.7.2
docker pull lmenezes/cerebro:0.8.3
第三步 es集群环境准备(一个集群上搭三个结点)
1、创建es挂载目录
mkdir es
注意es要和docker-compse.yml在同一目录下
2、创建config和data目录
mkdir config
mkdir data1
mkdir data2
mkdir data3
3、将data1 data2 data3 开启777权限:
chmod 777 data1 data2 data3
4、开放端口:(三个ES的端口)
firewall-cmd --add-port=9300/tcp
firewall-cmd --add-port=9301/tcp
firewall-cmd --add-port=9302/tcp
开放端口后,处理防火墙
防火墙关闭命令:systemctl stop firewalld.service
查看防火墙命令:systemctl status firewalld.service
开机禁用防火墙自启命令:systemctl disable firewalld.service
修改JVM线程数限制数量
vim /etc/sysctl.conf
#添加下面两行
vm.max_map_count=262144
sysctl -p
4、编写docker-compose.yml文件和挂载文件
docker-compose.yml:
注意查看分配的端口是否空闲
version: '2.2'
services:
es-node1:
image: elasticsearch:6.7.2
container_name: elasticsearch1
restart: always
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- ./es/config/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es/data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
ulimits:
memlock:
soft: -1
hard: -1
networks:
- es_network
es-node2:
image: elasticsearch:6.7.2
container_name: elasticsearch2
restart: always
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- ./es/config/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es/data2:/usr/share/elasticsearch/data
ports:
- 9201:9201
- 9301:9301
ulimits:
memlock:
soft: -1
hard: -1
networks:
- es_network
es-node3:
image: elasticsearch:6.7.2
container_name: elasticsearch3
restart: always
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es/config/es3.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ./es/data3:/usr/share/elasticsearch/data
ports:
- 9202:9202
- 9302:9302
networks:
- es_network
es-head:
image: mobz/elasticsearch-head:5
container_name: elasticsearch-head
restart: always
ports:
- 9400:9400
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- 9600:9600
command:
- -Dhosts.0.host=http://es-node1:9200
networks:
- es_network
kibana:
image: docker.elastic.co/kibana/kibana:6.7.2
container_name: kibana
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
links:
- es-node1:elasticsearch
depends_on:
- es-node1
networks:
- es_network
networks:
es_network:
driver: bridge
5、进到刚才创建挂载目录es下的config目录:
vim es1.yml:
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: 自己虚拟机IP
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.22.7.113:9300","172.22.7.113:9301","172.22.7.113:9302"]
discovery.zen.minimum_master_nodes: 2
vim es2.yml:
cluster.name: elasticsearch-cluster
node.name: es-node2
network.bind_host: 0.0.0.0
network.publish_host: 自己虚拟机IP
http.port: 9201
transport.tcp.port: 9301
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.22.7.113:9300","172.22.7.113:9301","172.22.7.113:9302"]
discovery.zen.minimum_master_nodes: 2
vim es3.yml
cluster.name: elasticsearch-cluster
node.name: es-node3
network.bind_host: 0.0.0.0
network.publish_host: 自己虚拟机IP
http.port: 9202
transport.tcp.port: 9302
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
discovery.zen.ping.unicast.hosts: ["172.22.7.113:9300","172.22.7.113:9301","172.22.7.113:9302"]
discovery.zen.minimum_master_nodes: 2
第四步 运行docker-compose.yml文件
运行的使用要进入docker-compose.yml文件所在目录的命令行
执行compose文件
docker-compose up -d
查看运行的容器:
docker-compose ps
如果第一次在网页访问不了,可以停止容器服务后,重启虚拟机,在开启服务。
祝你一发成功