使用docker搭建elasticsearch集群

环境:centoOS7,es7.1.1
服务器ip为192.168.xxx.xx ,搭建3个es节点,三个节点分别使用端口为(9200,9300),(9201,9301),(9203,9303)

1.拉取es镜像
docker pull elk/elasticsearch:7.1.1
2.准备映射路径及配置文件
1.创建数据路径
(1)/root/es_cluster/data/data01
(2)/root/es_cluster/data/data02
(3)/root/es_cluster/data/data03
2.创建日志路径
(1)/root/es_cluster/logs/logs01
(2)/root/es_cluster/logs/logs02
(3)/root/es_cluster/logs/logs03
3.创建映射文件
(1)/root/es_cluster/conf/es01/elasticsearch.yml
(2)/root/es_cluster/conf/es02/elasticsearch.yml
(3)/root/es_cluster/conf/es03/elasticsearch.yml
4.很重要的一点,给以上文件路径开放权限
chmod chmod 777 -R /root/es_cluster
3.配置文件
3.1节点1的配置文件
cluster.name: es_cluster
node.name: es01
# 是否主节点
node.master: true
# 是否数据节点
node.data: true
#设置分片数 默认5
#index.number_of_shards: 6
#副本个数
#index.number_of_replicas: 3
# 存储设置
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
#设置日志级别 调试可以用trace或者debug
logger.org.elasticsearch.transport: debug
# 网络设置 publish_host写具体的服务器的ip地址
network.publish_host: 192.168.xxx.xx
#这里配置0.0.0.0是为了外部可以通过localhost或者具体IP都可以访问
network.host: 0.0.0.0
#集群间通信端口 三个配置文件分别是 9300 9302 9303
transport.tcp.port: 9300
#是否压缩 这个属性后期会废弃掉
#transport.tcp.compress: true
#外界访问使用的端口 本例使用9200 9202 9203
http.port: 9200
http.max_content_length: 100mb
#配置跨域
#http.cors.enabled: true
#http.cors.allow-origin: '*'
#初始化数据恢复时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_initial_primaries_recoveries: 4
#添加删除节点或负载均衡时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_concurrent_recoveries: 2
#设置数据恢复时限制的带宽 0为无限制 之前版本使用 max_size_per_sec
indices.recovery.max_bytes_per_sec: 0
#设置这个参数保证集群中的节点可以知道其他N个有master资格的节点 默认为1
discovery.zen.minimum_master_nodes: 1
#集群中自动发现其他节点时ping连接超时时间 默认为3s
discovery.zen.ping_timeout: 3s
#这个超时新版本改了 改成了上面的discovery.zen.ping_timeout
#discovery.zen.ping.timeout: 3s
#是否打开多播发现节点 默认是true
#discovery.zen.ping.multicast.enabled: false
#设置新节点启动时能够发现的主节点列表 一定要注意这里的端口是9300对应的端口 本例就是9300 9302 9303 三个配置文件一致
discovery.zen.ping.unicast.hosts: ['192.168.xxx.xx:9300','192.168.xxx.xx:9302','192.168.xxx.xx:9303']
#新版本增加了初始化主节点配置 可以使用节点名称标识
cluster.initial_master_nodes: ['es01']
3.2节点2的配置文件
cluster.name: es_cluster
node.name: es02
# 是否主节点
node.master: true
# 是否数据节点
node.data: true
#设置分片数 默认5
#index.number_of_shards: 6
#副本个数
#index.number_of_replicas: 3
# 存储设置
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
#设置日志级别 调试可以用trace或者debug
logger.org.elasticsearch.transport: debug
# 网络设置 publish_host写具体的服务器的ip地址
network.publish_host: 192.168.xxx.xx
#这里配置0.0.0.0是为了外部可以通过localhost或者具体IP都可以访问
network.host: 0.0.0.0
#集群间通信端口 三个配置文件分别是 9300 9302 9303
transport.tcp.port: 9302
#是否压缩 这个属性后期会废弃掉
#transport.tcp.compress: true
#外界访问使用的端口 本例使用9200 9202 9203
http.port: 9202
http.max_content_length: 100mb
#配置跨域
#http.cors.enabled: true
#http.cors.allow-origin: '*'
#初始化数据恢复时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_initial_primaries_recoveries: 4
#添加删除节点或负载均衡时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_concurrent_recoveries: 2
#设置数据恢复时限制的带宽 0为无限制 之前版本使用 max_size_per_sec
indices.recovery.max_bytes_per_sec: 0
#设置这个参数保证集群中的节点可以知道其他N个有master资格的节点 默认为1
discovery.zen.minimum_master_nodes: 1
#集群中自动发现其他节点时ping连接超时时间 默认为3s
discovery.zen.ping_timeout: 3s
#这个超时新版本改了 改成了上面的discovery.zen.ping_timeout
#discovery.zen.ping.timeout: 3s
#是否打开多播发现节点 默认是true
#discovery.zen.ping.multicast.enabled: false
#设置新节点启动时能够发现的主节点列表 一定要注意这里的端口是9300对应的端口 本例就是9300 9302 9303 三个配置文件一致
discovery.zen.ping.unicast.hosts: ['192.168.xxx.xx:9300','192.168.xxx.xx:9302','192.168.xxx.xx:9303']
#新版本增加了初始化主节点配置 可以使用节点名称标识
cluster.initial_master_nodes: ['es01']
3.3节点3的配置文件
cluster.name: es_cluster
node.name: es03
# 是否主节点
node.master: true
# 是否数据节点
node.data: true
#设置分片数 默认5
#index.number_of_shards: 6
#副本个数
#index.number_of_replicas: 3
# 存储设置
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
#设置日志级别 调试可以用trace或者debug
logger.org.elasticsearch.transport: debug
# 网络设置 publish_host写具体的服务器的ip地址
network.publish_host: 192.168.xxx.xx
#这里配置0.0.0.0是为了外部可以通过localhost或者具体IP都可以访问
network.host: 0.0.0.0
#集群间通信端口 三个配置文件分别是 9300(9301) 9302 9303
transport.tcp.port: 9303
#是否压缩 这个属性后期会废弃掉
#transport.tcp.compress: true
#外界访问使用的端口 本例使用9200(9201) 9202 9203
http.port: 9203
http.max_content_length: 100mb
#配置跨域
#http.cors.enabled: true
#http.cors.allow-origin: '*'
#初始化数据恢复时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_initial_primaries_recoveries: 4
#添加删除节点或负载均衡时并发恢复线程的个数 默认是4
#cluster.routing.allocation.node_concurrent_recoveries: 2
#设置数据恢复时限制的带宽 0为无限制 之前版本使用 max_size_per_sec
indices.recovery.max_bytes_per_sec: 0
#设置这个参数保证集群中的节点可以知道其他N个有master资格的节点 默认为1
discovery.zen.minimum_master_nodes: 1
#集群中自动发现其他节点时ping连接超时时间 默认为3s
discovery.zen.ping_timeout: 3s
#这个超时新版本改了 改成了上面的discovery.zen.ping_timeout
#discovery.zen.ping.timeout: 3s
#是否打开多播发现节点 默认是true
#discovery.zen.ping.multicast.enabled: false
#设置新节点启动时能够发现的主节点列表 一定要注意这里的端口是9300对应的端口 本例就是9300 9302 9303 三个配置文件一致
discovery.zen.ping.unicast.hosts: ['192.168.xxx.xx:9300','192.168.xxx.xx:9302','192.168.xxx.xx:9303']
#新版本增加了初始化主节点配置 可以使用节点名称标识
cluster.initial_master_nodes: ['es01']
4.创建容器
4.1创建并启动节点1容器
docker run -d --name es-node1 -p 9200:9200 -p 9300:9300 -v /root/es_cluster/data/data01:/usr/share/elasticsearch/data -v /root/es_cluster/logs/logs01:/usr/share/elasticsearch/logs -v /root/es_cluster/conf/es01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e TZ=Asia/Shanghai -e ES_JAVA_OPTS="-Xms6g -Xmx6g" -e TAKE_FILE_OWNERSHIP=true --restart unless-stopped elk/elasticsearch:7.1.1

4.2创建并启动节点2容器
docker run -d --name es-node1 -p 9202:9202 -p 9302:9302 -v /root/es_cluster/data/data01:/usr/share/elasticsearch/data -v /root/es_cluster/logs/logs01:/usr/share/elasticsearch/logs -v /root/es_cluster/conf/es01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e TZ=Asia/Shanghai -e ES_JAVA_OPTS="-Xms6g -Xmx6g" -e TAKE_FILE_OWNERSHIP=true --restart unless-stopped elk/elasticsearch:7.1.1

4.3创建并启动节点3容器
docker run -d --name es-node1 -p 9203:9203 -p 9303:9303 -v /root/es_cluster/data/data01:/usr/share/elasticsearch/data -v /root/es_cluster/logs/logs01:/usr/share/elasticsearch/logs -v /root/es_cluster/conf/es01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e TZ=Asia/Shanghai -e ES_JAVA_OPTS="-Xms6g -Xmx6g" -e TAKE_FILE_OWNERSHIP=true --restart unless-stopped elk/elasticsearch:7.1.1

如果容器日志报错

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

在服务器上执行sysctl -w vm.max_map_count=262144即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值