全平台安装

参考:https://zhuanlan.zhihu.com/p/79659243

我们要安装es和可视化工具。

ES安装

  1. curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
  2. tar -zxvf elasticsearch-6.3.2.tar.gz
  3. cd elasticsearch-6.3.2/bin
  4. ./elasticsearch -d # -d 表示后台启动

windows端可以注册为服务

  1. elasticsearch-service.bat install
  2. # install: 安装Elasticsearch服务
  3. # remove: 删除已安装的Elasticsearch服务(如果启动则停止服务)
  4. # start: 启动Elasticsearch服务(如果已安装)
  5. # stop: 停止服务(如果启动)
  6. # manager:启动GUI来管理已安装的服务

kibana可视化工具

  1. wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
  2. tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz
  3. cd kibana-6.3.2-linux-x86_64/
  4. vim config/kibana.yml
  5. elasticsearch.url: "http://localhost:9200" # 指定es
  6. server.host: "0.0.0.0" # 对外开放,必须设置
  7. xpack.security.enabled: false # es没有密码的时候要设置一下
  8. ./bin/kibana

mac 对应文件:kibana-6.3.2-darwin-x86_64.tar.gz

elasticsearch-head chrome

在线安装地址:
https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegm?utm_source=chrome-ntp-icon

配置

单节点

  1. bootstrap.memory_lock: true
  2. network.host: 0.0.0.0
  3. http.port: 9200

集群配置

文件目录禁止空格和中文

  1. 准备多台服务器作为节点,使用相同的es,一定要把data目录删除。
  2. 每台节点设置不同的配置 elasticsearch.yml

node1

  1. bootstrap.memory_lock: true
  2. #节点1的配置信息:
  3. #集群名称,保证唯一
  4. cluster.name: my-elasticsearch
  5. #节点名称,必须不一样
  6. node.name: node-1
  7. #必须为本机的ip地址
  8. network.host: 127.0.0.1
  9. #服务端口号,在同一机器下必须不一样
  10. http.port: 9200
  11. #集群间通信端口号,在同一机器下必须不一样
  12. transport.tcp.port: 9300
  13. #设置集群自动发现机器ip集合
  14. discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]

node2

  1. bootstrap.memory_lock: true
  2. #节点2的配置信息:
  3. #集群名称,保证唯一
  4. cluster.name: my-elasticsearch
  5. #节点名称,必须不一样
  6. node.name: node-2
  7. #必须为本机的ip地址
  8. network.host: 127.0.0.1
  9. #服务端口号,在同一机器下必须不一样
  10. http.port: 9201
  11. #集群间通信端口号,在同一机器下必须不一样
  12. transport.tcp.port: 9301
  13. #设置集群自动发现机器ip集合
  14. discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0.1:9302"]
  1. 启动所有节点即可
  2. 操作任何一个节点,都有相同的效果

可能出现的问题

启动内存不足

  1. $./bin/elasticsearch
  2. Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
  3. #
  4. # There is insufficient memory for the Java Runtime Environment to continue.
  5. # Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
  6. # An error report file with more information is saved as:
  7. # /data/elasticsearch-5.2.2/hs_err_pid26945.log

解决方案:调小启动内存

  1. # vi ${elasticsearch_HOME}/config/jvm.options
  2. #-Xms2g
  3. #-Xmx2g
  4. -Xms512m
  5. -Xmx512m

最大文件和内存限制

错误提示:

  1. ERROR: [2] bootstrap checks failed
  2. [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
  3. [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决:
1、

  1. sudo vim /etc/security/limits.conf
  2. * soft nofile 65536
  3. * hard nofile 131072
  4. # 此文件修改后需要重新登录用户,才会生效

2、

  1. sudo vim /etc/sysctl.conf
  2. vm.max_map_count=655360
  3. # 外部执行,然后启动es即可
  4. sysctl -p

锁内存错误

因为swap会影响es性能,所以设置里面要禁用。

错误信息:
memory locking requested for elasticsearch process but memory is not locked

解决:

sudo vim /etc/security/limits.conf

  1. * soft memlock unlimited
  2. * hard memlock unlimited

es licience 为null

kibana会报错:

[data] Elasticsearch cluster did not respond with license information.

查看license: curl -XGET "http://localhost:9200/_xpack?pretty" 会发现license为null,我们只需要更新license即可。

更新license:

  1. curl -XPOST 'http://localhost:9200/_xpack/license/start_basic?acknowledge=true'