下载ES

下载ES安装包上传至服务器,地址为:

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.tar.gz

上传完成后解压

tar -zxvf elasticsearch-6.1.0.tar.gz

安装JDK

这里使用jdk8,官网下载安装即可,这里不做讲解

export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

[jast@001 es6]$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

修改Linux配置

1.编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536

2.在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
sysctl -p

修改ES配置文件

# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
# 
# 集群名称
cluster.name: log_cluster
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
# 节点名称
node.name: node_01
# 是否可以为主节点
node.master: true
# 是否可以为数据节点
node.data: true
# 允许在对文档进行索引之前进行预处理
node.ingest: true
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
# 数据存储目录,默认在es目录下data
#path.data: /path/to/data
#
# Path to log files:
#
# 日志存储目录,默认在es目录下logs
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
# 锁定物理内存地址,防止es内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高
bootstrap.memory_lock: true
# 禁止检测SecComp
bootstrap.system_call_filter: false
# 当前机器ip地址,0.0.0.0 代表当前
network.host: 10.10.0.1
# 是否使用http协议对外提供服务,默认为true,开启
http.enabled: true
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true
#
# For more information, consult the network module documentation.
http.cors.enabled: true
http.cors.allow-origin: "*"
#
# --------------------------------- Discovery ----------------------------------
# 
# 设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["10.10.0.1:9300","10.10.0.2:9300","10.10.0.3:9300"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
# 设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,(total number of master-eligible nodes / 2 + 1)
discovery.zen.minimum_master_nodes: 1
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true
# ---------------------------------- Cache  -----------------------------------

# 启用脚本 默认painless
cluster.routing.allocation.same_shard.host: true
#
# TODO 集群搭建好后配置
#
#
# #超时时间
discovery.zen.ping_timeout: 5s
discovery.zen.fd.ping_timeout: 5s
#
# #禁止自动创建索引
action.auto_create_index: true
#
# # 一个集群中的N个节点启动后,才允许进行恢复处理 
gateway.recover_after_nodes: 1
# #
# # 设置初始化恢复过程的超时时间,超时时间从上一个配置中配置的N个节点启动后算起 
gateway.recover_after_time: 5m 
# #
# # 设置这个集群中期望有多少个节点.一旦这N个节点启动(并且recover_after_nodes也符合), 
# # 立即开始恢复过程(不等待recover_after_time超时) 
gateway.expected_nodes: 2
# # 线程池  
thread_pool.search.size: 100  
thread_pool.search.queue_size: 1000

启动es

./elasticsearch -d -p pid

浏览器访问端口

Elasticsearch 6.x 下载安装_大数据

启动成功

安装head插件

安装npm

yum install -y npm

下载插件上传到服务器:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

执行 npm install 安装

Elasticsearch 6.x 下载安装_elasticsearch_02

安装过程中提示如下warn

npm WARN elasticsearch-head@0.0.0 license should be a valid SPDX license expression
修改 package.json ,中license 如下图所示即可

Elasticsearch 6.x 下载安装_搜索引擎_03

 后台启动 head 插件

nohup npm run start > run.log &

访问 ip:9100 ,显示如下,安装成功

Elasticsearch 6.x 下载安装_elasticsearch_04

Kibana 安装

下载 https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-linux-x86_64.tar.gz 并上传到服务器,解压

在kibana conf目录下修改kibana.yml文件

server.host: "10.10.0.1"
elasticsearch.url: "http://10.10.0.1:9200"

启动kibana

nohup bin/kibana > kibana.log &

页面访问 10.10.0.1:5601

Elasticsearch 6.x 下载安装_搜索引擎_05

安装成功

异常1:

kibana启动报错:

{"type":"error","@timestamp":"2019-08-30T05:47:57Z","tags":["fatal"],"pid":3026,"level":"fatal","error":{"message":"listen EADDRNOTAVAIL 192.169.1.111:5606","name":"Error","stack":"Error: listen EADDRNOTAVAIL 192.169.1.111:5606\n    at Object.exports._errnoException (util.js:1020:11)\n    at exports._exceptionWithHostPort (util.js:1043:20)\n    at Server._listen2 (net.js:1249:19)\n    at listen (net.js:1298:10)\n    at net.js:1408:9\n    at _combinedTickCallback (internal/process/next_tick.js:83:11)\n    at process._tickCallback (internal/process/next_tick.js:104:9)","code":"EADDRNOTAVAIL"},"message":"listen EADDRNOTAVAIL 192.169.1.111:5606"}
FATAL { Error: listen EADDRNOTAVAIL 192.169.1.111:5606
    at Object.exports._errnoException (util.js:1020:11)
    at exports._exceptionWithHostPort (util.js:1043:20)
    at Server._listen2 (net.js:1249:19)
    at listen (net.js:1298:10)
    at net.js:1408:9
    at _combinedTickCallback (internal/process/next_tick.js:83:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
  cause: 
   { Error: listen EADDRNOTAVAIL 192.169.1.111:5606
       at Object.exports._errnoException (util.js:1020:11)
       at exports._exceptionWithHostPort (util.js:1043:20)
       at Server._listen2 (net.js:1249:19)
       at listen (net.js:1298:10)
       at net.js:1408:9
       at _combinedTickCallback (internal/process/next_tick.js:83:11)
       at process._tickCallback (internal/process/next_tick.js:104:9)
     code: 'EADDRNOTAVAIL',
     errno: 'EADDRNOTAVAIL',
     syscall: 'listen',
     address: '192.169.1.111',
     port: 5606 },
  isOperational: true,
  code: 'EADDRNOTAVAIL',
  errno: 'EADDRNOTAVAIL',
  syscall: 'listen',
  address: '192.169.1.111',
  port: 5606 }

将server.host 修改为 0.0.0.0 ,再次启动恢复

server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.1.111:9200"