如何基于Docker快速搭建Elasticsearch集群?( 二 )

  • 预处理节点:也称作 Ingest 节点 , 在索引数据之前可以先对数据做预处理操作 , 所有节点其实默认都是支持 Ingest 操作的 , 也可以专门将某个节点配置为 Ingest 节点 。
  • 以上就是节点几种类型 , 一个节点其实可以对应不同的类型 , 如一个节点可以同时成为主节点和数据节点和预处理节点 , 但如果一个节点既不是主节点也不是数据节点 , 那么它就是负载均衡节点 。 具体的类型可以通过具体的配置文件来设置 。
  • 搭建集群 环境说明
    如何基于Docker快速搭建Elasticsearch集群?文章插图
    修改内核参数【如何基于Docker快速搭建Elasticsearch集群?】登录到每一台服务器 , 修改内核参数
    vi /etc/sysctl.conf修改以下参数 , 如果没有 , 则添加
    vm.max_map_count=262144刷新参数
    sysctl -p启动elasticsearchnode-1执行docker run -d \--name=elasticsearch \--restart=always \-p 9200:9200 \-p 9300:9300 \-e node.name=node-1 \-e network.publish_host=192.168.31.149 \-e network.host=0.0.0.0 \-e discovery.seed_hosts=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.initial_master_nodes=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.name=es-cluster \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \elasticsearch:7.5.1环境变量说明:
    • node.name 节点名称 , 集群模式下每个节点名称唯一
    • network.publish_host 用于集群内各机器间通信,对外使用 , 其他机器访问本机器的es服务 , 一般为本机宿主机IP
    • network.host 设置绑定的ip地址 , 可以是ipv4或ipv6的 , 默认为0.0.0.0 , 即本机
    • discovery.seed_hosts es7.0之后新增的写法 , 写入候选主节点的设备地址 , 在开启服务后 , 如果master挂了 , 哪些可以被投票选为主节点
    • cluster.initial_master_nodes es7.0之后新增的配置 , 初始化一个新的集群时需要此配置来选举master
    • cluster.name 集群名称 , 相同名称为一个集群 ,三个es节点须一致
    • ES_JAVA_OPTS 设置内存 , 如内存不足 , 可以尝试调低点
    node-2执行docker run -d \--name=elasticsearch \--restart=always \-p 9200:9200 \-p 9300:9300 \-e node.name=node-2 \-e network.publish_host=192.168.31.181 \-e network.host=0.0.0.0 \-e discovery.seed_hosts=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.initial_master_nodes=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.name=es-cluster \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \elasticsearch:7.5.1注意:修改node.name和network.publish_host参数即可
    node-3执行docker run -d \--name=elasticsearch \--restart=always \-p 9200:9200 \-p 9300:9300 \-e node.name=node-3 \-e network.publish_host=192.168.31.233 \-e network.host=0.0.0.0 \-e discovery.seed_hosts=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.initial_master_nodes=192.168.31.149,192.168.31.181,192.168.31.233 \-e cluster.name=es-cluster \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \elasticsearch:7.5.1注意:修改node.name和network.publish_host参数即可
    修改配置文件默认的elasticsearch不允许跨域 , 因此elasticsearch head插件无法连接 。 需要修改配置文件才行!
    拷贝数据文件
    登录node-1 , node-2 , node-3分别执行:
    mkdir -p /data/elk7docker cp elasticsearch:/usr/share/elasticsearch /data/elk7/