Elasticsearch7.10群集安装

  1. 初始化环境

    #关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    #关闭seliux
    vi /etc/selinux/config 
    SELINUX=disabled
    #安装 vim java
    yum -y install vim java
    #检查JAVA版本
    java -version
    #重启机器
    reboot
    
  2. 安装ES

    #下载并安装Key
    rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    #添加YUM仓库
    vim /etc/yum.repos.d/elasticsearch.repo
    [elasticsearch]
    name=Elasticsearch repository for 7.x packages
    baseurl=https://artifacts.elastic.co/packages/7.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=0
    autorefresh=1
    type=rpm-md
    #安装
    sudo yum -y install --enablerepo=elasticsearch elasticsearch
    
    1.     修改ES配置        

      #备份elasticsearch.yml文件
      cd /etc/elasticsearch/ 
      cp elasticsearch.yml elasticsearch.yml.bak
      #创建存储elasticsearch数据及日志路径
      mkdir -p /data/elasticsearch/logs
      mkdir -p /data/elasticsearch/data
      #修改权限
      chown -R elasticsearch:elasticsearch /data/elasticsearch/
      #修改elasticsearch配置文件
      vim /etc/elasticsearch/elasticsearch.yml
      #配置项
      cluster.name: my-cluster #群集名称
      
      node.name: es01 #节点名称
      
      path.data: /data/elasticsearch/data #数据存储路径
      
      path.logs: /data/elasticsearch/logs #日志存储路径
      
      bootstrap.memory_lock: true #启动后锁定内存,禁用swap交换,提高ES性能
      
      network.host: 0.0.0.0 #监听的主机地址
      
      http.port: 9200 #监听的WEB端口
      
      discovery.seed_hosts: ["192.168.110.62", "192.168.110.63"]#集群内节点发现,除本机外的其他群集节点
      
      cluster.initial_master_nodes: ["192.168.110.61","192.168.110.62", "192.168.110.63"]#在全新的集群中设置符合主节点条件的初始节点。即所有群集中的节点
      
      http.cors.enabled: true # 是否支持跨域
      
      http.cors.allow-origin: "*" # *表示支持所有域名
      
      discovery.zen.minimum_master_nodes: 2 #选主过程中需要 有多少个节点通信
      
      gateway.recover_after_nodes: 2 #只要指定数量的节点加入集群,就开始进行恢复
      
      gateway.recover_after_time: 10m #期望的节点数量没有达标,等待的时间
      
      cluster.routing.allocation.node_initial_primaries_recoveries: 8 #初始化数据恢复时,并发恢复线程的个数
      
      cluster.routing.allocation.node_concurrent_recoveries: 8 #设置在节点中最大允许同时进行分片分布的个数
      
      indices.recovery.max_bytes_per_sec: 100mb #数据在节点间传输最大带宽
      
      node.master: true  #此节点是否具有成为主节点的资格
      
      node.data: true  #此节点是否作为数据节点存储数据 
      
  3. 启动ES

    注意:ES需要同时启动,因为master需要选举主节点

    #将Elasticsearch配置为在系统启动时自动启动
    sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    #Elasticsearch可以按以下方式启动和停止
    sudo systemctl start elasticsearch.service
    sudo systemctl stop elasticsearch.service
    #Elasticsearch查询启动状态
    sudo systemctl status elasticsearch.service
    
     ```shell
     如果报错提示:bootstrap check failure [1] of [1]: memory locking requested for elasticsearch ...locked
     解决方法:
     1、Run sudo systemctl edit elasticsearch.
    
     2、Add the following lines to the new file /usr/lib/systemd/system/elasticsearch.service.d/override.conf:
     [Service]
     LimitMEMLOCK=infinity
    
     3、Run sudo systemctl daemon-reload.
    
     4、Restart Elasticsearch.
     ```
    
  4. 测试es

    1、在浏览器中输入 http://es节点IP:9200

    2、curl -X GET "localhost:9200"

安装head

head只需要在Master节点上安装即可 ,可以参考

yum -y install gcc-c++ #安装组件
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz #下载node.js
tar zxvf node-v0.10.26.tar.gz 
cd node-v0.10.26
#编译安装
./configure --prefix=/usr/local/node/v0.10.26
make 
make install
#设置环境变量
vim /etc/profile
export NODE_HOME=/usr/local/node/v0.10.26
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
#让配置立即生效
source /etc/profile

#检查node
node -v
  1. 下载head插件

    wget https://github.com/mobz/elasticsearch-head/archive/master.zip
    #安装解压包unzip
    
    yum -y install unzip bzip2
    
    #解压文件至/data目录下
    
    unzip -d /data/ master.zip
    
  2. 安装grunt

    cd /data/elasticsearch-head-master/
    npm install
    grunt --version
    
  3. 修改header源码

    vim /data/elasticsearch-head-master/Gruntfile.js +95
     connect: {
                            server: {
                                    options: {
                                            port: 9100,
                                            base: '.',
                                            keepalive: true,
                                            hostname:'*' #此处不要用Tab用空格
    
                                    }
                            }
                    }
    vim /data/master/elasticsearch-head-master/_site/app.js +4374
    

init: function(parent) { this._super(); this.prefs = services.Preferences.instance(); this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.110.61:9200"; #如果head与ES不在同一台机器上,需要修改为ES的IP地址,在同一台机器上可以不修改!


4. 下载header必需文件

```shell
 wget https://github.com/Medium/phantomjs/archive/2.1.14.tar.gz
 mkdir /tmp/phantomjs/
 cp 2.1.14.tar.gz /tmp/phantomjs/

#为什么下载这个组件
#因为header启动时会加载2.1.14.tar.gz,如果在/tmp/phantomjs/目录下没有这个组件,启动会报错
  1. 运行header

    cd /data/elasticsearch-head-master/
    npm install
    nohup grunt server #启动
    
  2. 测试

    http://192.168.110.61:9100/
    tailf nohup.out