ElasticSearch 3节点集群搭建(ES7+Docker+Kibana)

1 环境准备

#节点
192.168.38.50  docker node1
192.168.38.51  docker node2
192.168.38.52  docker node3

192.168.38.53  docker kibana

2 前置环境

描述: 3台服务都要修改。

vim /etc/sysctl.conf
#fs.file-max主要是配置系统最大打开文件描述符数,建议修改为655360或者更高
fs.file-max=655360
#影响Java线程数量,用于限制一个进程可以拥有的VMA(虚拟内存区域)的大小
vm.max_map_count = 262144


vim /etc/security/limits.conf
#可打开的文件描述符的最大数(软限制)
* soft nofile 65536
#可打开的文件描述符的最大数(硬限制)
* hard nofile 65536
#单个用户可用的最大进程数量(软限制)
* soft nofile 65536
#单个用户可用的最大进程数量(硬限制)
* hard nofile 65536
#内存不限制
* soft memlock unlimited
* hard memlock unlimited


#centos7特有,修改软限制
vim /etc/security/limits.d/20-nproc.conf
*          soft    nproc     40960
#生效
sysctl -p  

3 搭建集群

3.1 拉取镜像

#三节点
docker pull elasticsearch:7.6.1

3.2 创建目录

#三节点,创建数据、配置、日志、插件目录
mkdir -p /usr/local/elasticsearch/data && mkdir -p /usr/local/elasticsearch/config && mkdir -p /usr/local/elasticsearch/logs && mkdir -p /usr/local/elasticsearch/plugins

3.3 node1 配置文件

cd /usr/local/elasticsearch/config
vi elasticsearch.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node1
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.38.50
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

3.4 node2 配置文件

cd /usr/local/elasticsearch/config
vi elasticsearch.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node2
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.38.51
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

3.5 node3 配置文件

cd /usr/local/elasticsearch/config
vi elasticsearch.yml

# 设置集群名称,集群内所有节点的名称必须一致。
cluster.name: es-cluster
# 设置节点名称,集群内节点名称必须唯一。
node.name: node3
# 表示该节点会不会作为主节点,true表示会;false表示不会
node.master: true
# 当前节点是否用于存储数据,是:true、否:false
node.data: true
# 索引数据存放的位置
path.data: /usr/share/elasticsearch/data
# 日志文件存放的位置
path.logs: /usr/share/elasticsearch/logs
# 需求锁住物理内存,是:true、否:false
bootstrap.memory_lock: false
# 监听地址,用于访问该es
network.host: 192.168.38.52
# es对外提供的http端口,默认 9200
http.port: 9200
# TCP的默认监听端口,默认 9300
transport.tcp.port: 9300
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)
discovery.zen.minimum_master_nodes: 1
# es7.x 之后新增的配置,写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
# es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["192.168.38.50:9300", "192.168.38.51:9300","192.168.38.52:9300"]
# 是否支持跨域,是:true,在使用head插件时需要此配置
http.cors.enabled: true
# “*” 表示支持所有域名
http.cors.allow-origin: "*"

3.6 启动

#三台节点
docker run  -d  --network=host --privileged=true  \
-e ES_JAVA_OPTS="-Xms1024m -Xmx1024m"  \
-e TAKE_FILE_OWNERSHIP=true --name es \
-v /usr/local/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elasticsearch/data:/usr/share/elasticsearch/data \
-v /usr/local/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /usr/local/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
elasticsearch:7.6.1

3.7 head 插件

docker run -d --name es-head -p 9100:9100 mobz/elasticsearch-head:5

在这里插入图片描述

3.8 Kibana

描述: 192.168.38.53节点搭建kibana连接ES集群。

#拉取镜像
docker pull kibana:7.6.1

#创建配置文件
mkdir -p /usr/local/kibana/config
vi kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.38.50:9200","http://192.168.38.51:9200","http://192.168.38.52:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

#启动命令
docker run --name kibana -v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -p 5601:5601 -d kibana:7.6.1

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是在Docker上安装ElasticsearchKibana的步骤: 1. 安装DockerDocker Compose 2. 创建一个文件夹并在其中创建一个名为docker-compose.yml的文件 3. 在docker-compose.yml文件中添加以下内容: ``` version: '3' services: es01: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es01 environment: - node.name=es01 - discovery.seed_hosts=es02 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - esnet es02: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1 container_name: es02 environment: - node.name=es02 - discovery.seed_hosts=es01 - cluster.initial_master_nodes=es01,es02 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 volumes: - esdata02:/usr/share/elasticsearch/data networks: - esnet kibana: image: docker.elastic.co/kibana/kibana:7.15.1 container_name: kibana environment: ELASTICSEARCH_URL: http://es01:9200 ports: - 5601:5601 networks: - esnet volumes: esdata01: driver: local esdata02: driver: local networks: esnet: ``` 4. 保存并关闭文件 5. 在终端中导航到该文件夹并运行以下命令: ``` docker-compose up -d ``` 6. 等待一段时间,直到所有容器都启动并运行 7. 打开浏览器并输入以下地址来访问Kibana: ``` http://localhost:5601 ``` 8. 你现在可以开始使用ElasticsearchKibana进行数据分析和可视化了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

响彻天堂丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值