• elasticsearch 集群部署


    1、环境初始化

    最小化安装 Centos 7.x/Ubuntu x86_64 操作系统的虚拟机,vcpu 2,内存 4G 或更多,操作系统盘 50G,为保证效果特额外添加一块单独的数据磁盘大小为 50G 并格式化挂载到/data

    1.1 设置主机名和磁盘挂载

    节点信息

    IP

    主机名

    角色

    系统版本

    10.10.100.110

    es-node1

    node1

    Ubuntu 18.04.3

    10.10.100.111

    es-node2

    node2

    Ubuntu 18.04.3

    10.10.100.112

    es-node3

    node3

    Ubuntu 18.04.3

    #修改三个节点的主机名
    root@ubuntu-node1:~# hostnamectl set-hostname es-node1
    root@ubuntu-node1:~# hostnamectl set-hostname es-node2
    root@ubuntu-node1:~# hostnamectl set-hostname es-node3
    
    #分区
    root@es-node1:~# lsblk -l
    NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda    8:0    0  100G  0 disk 
    sda1   8:1    0  100G  0 part /
    sdb    8:16   0   50G  0 disk 
    sr0   11:0    1 1024M  0 rom 
    root@es-node1:~# fdisk /dev/sdb
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 
    First sector (2048-104857599, default 2048): 
    Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): 
    
    Created a new partition 1 of type 'Linux' and of size 50 GiB.
    
    Command (m for help): w
    
    root@es-node1:~# mkdir /esdata
    root@es-node1:~# mkfs.xfs /dev/sdb1 
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=3276736 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
    data     =                       bsize=4096   blocks=13106944, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=6399, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    root@es-node1:~# mount /dev/sdb1 /esdata
    root@es-node1:~# vim /etc/fstab
    /dev/sdb1                                /esdata           xfs defaults  0 0 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    2、安装elasticsearch集群

    https://github.com/elastic #github 地址

    2.1 jdk安装

    elasticsearch 服务运行需要 java 环境

    root@es-node1:~# tar xf jdk-8u301-linux-x64.tar.gz -C /usr/local/
    root@es-node1:~# ln -sv /usr/local/jdk1.8.0_301 /usr/local/jdk
    root@es-node1:~# ln -sv /usr/local/jdk/bin/java /usr/bin/
    root@es-node1:~# vim /etc/profile
    export JAVA_HOME=/usr/local/jdk 
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
    export PATH=$PATH:$JAVA_HOME/bin
    root@es-node2:~# source /etc/profile
    root@es-node1:~# java -version
    java version "1.8.0_301"
    Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.2 下载 elasticsearch 并安装

    下载地址:https://www.elastic.co/downloads/elasticsearch

    #下载安装包
    root@es-node1:~# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-amd64.deb
    #安装
    root@es-node1:~# dpkg -i elasticsearch-7.9.3-amd64.deb
    
    #配置文件
    root@es-node1:~# grep "^[^#]" /etc/elasticsearch/elasticsearch.yml 
    #ELK 的集群名称,名称相同即属于是同一个集群
    cluster.name: es-cluster
    #当前节点在集群内的节点名称
    node.name: node-1
    #ES 数据保存目录 
    path.data: /esdata/elasticsearch
    #ES 日志保存目
    path.logs: /esdata/log/elasticsearch
    #服务启动的时候锁定足够的内存,防止数据写入swap 
    bootstrap.memory_lock: true
    #监听 IP 
    network.host: 0.0.0.0
    #监听端口
    http.port: 9200
    #集群中 node 节点发现列表 
    discovery.seed_hosts: ["10.10.100.110", "10.10.100.111","10.10.100.112"]
    #集群初始化那些节点可以被选举为 master 
    cluster.initial_master_nodes: ["10.10.100.110", "10.10.100.111","10.10.100.112"]
    #一个集群中的 N 个节点启动后,才允许进行数据恢复处理,默认是 1
    gateway.recover_after_nodes: 2
    # 设置是否可以通过正则或者_all 删除或者关闭索引库,默认 true 表示必须需要显式指定索引库名称,生产环境建议设置为 true,删除索引库的时候必须指定,否则可能会误删索引库中的索引库。
    action.destructive_requires_name: true
    
    #拷贝配置文件到其他节点,并修改节点名称 node.name:
    root@es-node1:~# scp /etc/elasticsearch/elasticsearch.yml 10.10.100.111:/etc/elasticsearch/
    root@es-node1:~# scp /etc/elasticsearch/elasticsearch.yml 10.10.100.112:/etc/elasticsearch/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    2.3 修改内存限制

    root@es-node1:~# vim /usr/lib/systemd/system/elasticsearch.service
     LimitMEMLOCK=infinity #无限制使用内存
    root@es-node1:~#  vim /etc/elasticsearch/jvm.options
    -Xms2g 
    -Xmx2g #最小和最大内存限制
    #官方配置文档最大建议 30G 以内
    https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.4 目录权限修改

    root@es-node1:~#  chown elasticsearch.elasticsearch /esdata/ -R
    
    • 1

    2.5 启动elasticsearch 并验证

    #所有节点启动
    root@es-node1:~# systemctl start elasticsearch
    root@es-node1:~# systemctl enable elasticsearch
    root@es-node2:~# systemctl start elasticsearch
    root@es-node2:~# systemctl enable elasticsearch
    root@es-node3:~# systemctl start elasticsearch
    root@es-node3:~# systemctl enable elasticsearch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    查看监听端口
    在这里插入图片描述
    浏览器访问查看
    在这里插入图片描述

    2.6 安装 elasticsearch 插件 head

    2.6.1 amp安装head

    root@es-node1:~# apt install -y npm
    root@es-node1:~# cd /usr/local/src/
    root@es-node1:/usr/local/src# git clone https://github.com/mobz/elasticsearch-head.git
    root@es-node1:/usr/local/src# ls
    elasticsearch-head
    root@es-node1:/usr/local/src# cd elasticsearch-head/
    #配置阿里npm镜像
    root@es-node1:/usr/local/src/elasticsearch-head# npm --registry https://registry.npm.taobao.org install express
    root@es-node1:/usr/local/src/elasticsearch-head# npm config set registry https://registry.npm.taobao.org
    root@es-node1:/usr/local/src/elasticsearch-head# npm install grunt -save
    #后台运行
    root@es-node1:/usr/local/src/elasticsearch-head# npm run start &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.6.2 通过docker安装head

    # step 1: 安装必要的一些系统工具
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    # step 2: 安装GPG证书
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    # Step 3: 写入软件源信息
    sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    # Step 4: 更新并安装Docker-CE
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
    
    #启动docker
    root@es-node2:~# systemctl start docker
    root@es-node2:~# systemctl enable docker
    
    #通过docker启动head
    root@es-node2:~# docker run -d -p 9100:9100 mobz/elasticsearch-head:5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2.7 修改 elasticsearch 服务配置文件

    开启跨域访问支持,然后重启 elasticsearch 服务

    root@es-node1:~# vim /etc/elasticsearch/elasticsearch.yml
    #开启支持跨域访问 
    http.cors.enabled: true
    #指定允许访问范围 
    http.cors.allow-origin: "*"
    
    #重启
    root@es-node1:~# systemctl restart elasticsearch
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.8 浏览器访问测试

    head访问地址 ip:9100
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    MySQL表的操作
    macos jupyter notebook字体的修改
    excel中去除公式,仅保留值
    使用Navicat对比多环境数据库数据差异和结构差异,以及自动DML和DDL脚本
    #边学边记 必修5 高项:对人管理 第2章 项目沟通管理和干系人管理 2-1 沟通的基本概念
    通过Hbuilder X创建uni-app项目并引入UView
    SwiftUI 内功之探索 SwiftUI 中的渲染,了解 SwiftUI 何时重新渲染子视图
    Shell 脚本编程
    HLS学习2:使用ARM核点灯
    `dump` 和 `load` 以及 `dumps` 和 `loads`的用法
  • 原文地址:https://blog.csdn.net/web18334137065/article/details/126359560