ElasticSearch安装

ES不能使用root用户来启动,必须使用普通用户来安装启动。

创建用户组与用户组

创建用户

  1. # groupadd elasticsearch

创建用户,并设置账号密码

  1. useradd esuser
  2. passwd mima1234.

创建es文件夹

  1. mkdir -p /usr/local/es

用户es 添加到 elasticsearch 用户组,并且将es文件夹的操作权限给esuser用户

  1. $ usermod G elasticsearch esuser
  2. $ chown -R esuser /usr/local/es/

设置sudo权限。为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作。 三台机器使用root用户执行visudo命令然后为es用户添加权限 :

  1. visudo

在root ALL=(ALL) ALL 一行下面添加esuser用户 如下:

  1. esuser ALL=(ALL) ALL

切换用户

  1. $ su esuser

安装ES

将elasticsearch-7.6.1-linux-x86_64.tar.gz上传到es文件夹下,并解压

  1. $ tar -zxvf elasticsearch-7.6.1-linux-x86_64.tar.gz

修改配置文件

  1. $ cd /usr/local/es/elasticsearch-7.6.1/config/
  2. $ mkdir log
  3. $ mkdir data

配置elasticsearch.yml文件:

  1. $ rm -rf elasticsearch.yml
  2. $ vim elasticsearch.yml
  3. cluster.name: esuser-es
  4. node.name: node1
  5. path.data: /usr/local/es/elasticsearch7.6.1/data
  6. path.logs: /usr/local/es/elasticsearch7.6.1/log
  7. network.host: 0.0.0.0
  8. http.port: 9200
  9. discovery.seed_hosts: 192.168.40.3
  10. cluster.initial_master_nodes: node1
  11. bootstrap.system_call_filter: false
  12. bootstrap.memory_lock: false
  13. http.cors.enabled: true
  14. http.cors.allow-origin: "*"

配置jvm.option,调整jvm堆内存大小:

  1. $ cd /usr/local/es/elasticsearch-7.6.1/config/
  2. -Xms1g
  3. -Xmx1g

修改系统配置

由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括 内存大小,线程数等。所以我们需要给普通用户解开资源的束缚。

1.使用esuser用户解除打开文件数据的限制:

问题描述:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

  1. $ sudo vi /etc/security/limits.conf
  2. # 星号不要去掉
  3. * soft nofile 65536
  4. * hard nofile 131072
  5. * soft nproc 2048
  6. * hard nproc 4096

2.使用esuser用户解除启动线程限制

问题描述:max number of threads [1024] for user [es] likely too low, increase to at least [4096]

  1. $ sudo vi /etc/security/limits.d/90nproc.conf
  2. # 星号不要去掉
  3. * soft nproc 4096

3.使用esuser用户调大虚拟内存

问题描述:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
切换到root用户,追加配置,然后重新打开shell窗口

  1. $ vim /etc/sysctl.conf
  2. #追加一下内容,保存
  3. vm.max_map_count=262144
  4. $ sysctl p

启动ElasticSearch

进到bin目录下,后台启动es

  1. $ ./elasticsearch -d

安装Kibana

上传安装包到/usr/local/es文件夹,并解压文件

  1. $ tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz

修改配置文件

  1. $ cd kibana-7.6.1-linux-x86_64/config/
  2. $ vim kibana.yml
  3. server.port: 5601
  4. server.host: "192.168.40.3"
  5. elasticsearch.hosts: "http://192.168.40.3:9200"

启动kibana

  1. $ ./kibana

浏览器访问:

  1. http://192.168.40.3:5601/app/kibana

安装IK分词器

在/elasticsearch-7.6.1/plugins下创建文件夹ik

  1. $ mkdir ik

将安装包上传到该文件夹中,解压

  1. $ unzip elasticsearch-analysis-ik-7.6.1.zip

重启es生效。

集群搭建

集群elasticsearch.yml修改

分别设置集群中三台es的elasticsearch.yml文件

  1. cluster.name: esuser-es
  2. node.name: node1.esuser.cn
  3. path.data: /usr/local/es/elasticsearch-7.6.1/data
  4. path.logs: /usr/local/es/elasticsearch-7.6.1/log
  5. network.host: node1.esuser.cn
  6. http.port: 9200
  7. discovery.seed_hosts: ["192.168.40.4", "192.168.40.5", "192.168.40.6"]
  8. cluster.initial_master_nodes: ["node1.esuser.cn", "node2.esuser.cn", "node3.esuser.cn"]
  9. bootstrap.system_call_filter: false
  10. bootstrap.memory_lock: false
  11. http.cors.enabled: true
  12. http.cors.allow-origin: "*"
  13. cluster.name: esuser-es
  14. node.name: node2.esuser.cn
  15. path.data: /usr/local/es/elasticsearch-7.6.1/data
  16. path.logs: /usr/local/es/elasticsearch-7.6.1/log
  17. network.host: node2.esuser.cn
  18. http.port: 9200
  19. discovery.seed_hosts: ["192.168.40.4", "192.168.40.5", "192.168.40.6"]
  20. cluster.initial_master_nodes: ["node1.esuser.cn", "node2.esuser.cn", "node3.esuser.cn"]
  21. bootstrap.system_call_filter: false
  22. bootstrap.memory_lock: false
  23. http.cors.enabled: true
  24. http.cors.allow-origin: "*"
  25. cluster.name: esuser-es
  26. node.name: node3.esuser.cn
  27. path.data: /usr/local/es/elasticsearch-7.6.1/data
  28. path.logs: /usr/local/es/elasticsearch-7.6.1/log
  29. network.host: node3.esuser.cn
  30. http.port: 9200
  31. discovery.seed_hosts: ["192.168.40.4", "192.168.40.5", "192.168.40.6"]
  32. cluster.initial_master_nodes: ["node1.esuser.cn", "node2.esuser.cn", "node3.esuser.cn"]
  33. bootstrap.system_call_filter: false
  34. bootstrap.memory_lock: false
  35. http.cors.enabled: true
  36. http.cors.allow-origin: "*"

集群kibana.yml修改

集群中只需要启动一台kibana即可,所以我们修改其中192.168.40.4中的kibana.yml文件

  1. server.port: 5601
  2. server.host: "192.168.40.4"
  3. elasticsearch.hosts: "http://192.168.40.4:9200"

启动

安装elasticsearch-head

安装node.js

以下安装均使用192.168.40.4,root用户进行操作
下载并安装

  1. $ cd /usr/local/es
  2. # 下载node.js安装包
  3. $ wget https://npm.taobao.org/mirrors/node/v8.1.0/node-v8.1.0-linux-x64.tar.gz
  4. # 解压安装包
  5. $ tar -zxvf node-v8.1.0-linux-x64.tar.gz -C /usr/local/es/

创建软连接

  1. $ sudo ln -s /usr/local/es/node-v8.10.0/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
  2. $ sudo ln -s /usr/local/es/node-v8.10.0/bin/node /usr/local/bin/node

修改环境变量,切换到root账号

  1. $ vim /etc/profile
  2. # 在文档中追加一下配置
  3. export NODE_HOME=/usr/local/es/node-v8.10.0
  4. export PATH=:$PATH:$NODE_HOME/bin
  5. # 修改完环境变量使用source生效
  6. $ source /etc/profile

安装elasticsearch-head

以下安装均使用192.168.40.4,esuser用户进行操作
elasticsearch-head-compile-after.tar.gz 上传到服务器的/usr/local/es 路径下面去

  1. $ cd /usr/local/es/
  2. $ tar -zxvf elasticsearch-head-compile-after.tar.gz -C /usr/local/es/

修改Gruntfile.js

  1. $ cd /usr/local/es/elasticsearch-head
  2. $ vim Gruntfile.js
  3. # 修改93行hostname
  4. connect: {
  5. server: {
  6. options: {
  7. hostname: '192.168.40.4',
  8. port: 9100,
  9. base: '.',
  10. keepalive: true
  11. }
  12. }
  13. }

修改app.js

  1. $ cd /usr/local/es/elasticsearch-head/_site
  2. $ vim app.js
  3. # 修改4354行 将localhost修改为自己的ip

启动elasticsearch-head

  1. $ cd /usr/local/es/elasticsearch-head/node_modules/grunt/bin/
  2. # 前台启动
  3. $ ./grunt server
  4. # 后台启动
  5. $ nohup ./grunt server >/dev/null 2>&1 &

访问elasticsearch-head

浏览器打开:http://192.168.40.4:9100/