第1章 Elasticsearch简介

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

以下简称Elasticsearch为ES。

 

高可用实现:

       ES自带了类似zookeeper的master选举功能,ES集群中配置3个或奇数(大于3)个master节点(具有master权限),当master出现故障或宕掉,ES会选举其它有master权限的ES节点提升为master节点。

 

负载均衡:

       设置两到三个client节点,保证client节点高可用。Client节点主要用来转发请求,做到负载均衡的作用,同时做查询的二次汇聚,减小data节点的性能消耗。


 

 第2章 安装ES-5.1.1

第2章 安装ES-5.1.1

官网下载5.1.1:https://www.elastic.co/downloads

2.1 ES-5.1.1集群规划

Type

Hostname

Ip

Number

es-master

es-masterN

 

3

es-data

es-dataM-N

 

12

es-client

Es-clientN

 

2

kibana

kibana

 

1

 

       es-data节点安装在256G 内存服务器上,即每台服务器配置6个实例,每个分配内存21G。命名:es-data1-1 ~ es-data1-6  --- es-data9-1 ~ es-data12-6

2.2安装ES-5.1.1

2.2.1 准备环境

设置hostname、关闭防火墙等不在此叙述。

 

注意为快速安装,先配置一个es-master实例,并测试正常启动。

 

1. 确认jdk版本

Elasticsearch-5.1.1依赖于jdk-1.8,请确保需要安装的机器jdk版本不低于1.8.0_73

查看:java -version

 

2. 新建es用户

ES启动必须使用普通用户,约定使用es用户

 

3. 新建路径

新建es数据存放路径以及日志存放路径,并更改用户权限为es

es-master机器:

# mkdir -p /hadoop/log/elastic5.1.1

# mkdir -p /data/data1/elastic

# chown -R es:es /hadoop/log/elastic5.1.1

# chown -R es:es /data/data1/elastic

 

es-data机器:

# mkdir -p /hadoop/log/elastic5.1.1/N

# mkdir -p /data/dataM/elastic

# chown -R es:es /hadoop/log/elastic5.1.1/N

# chown -R es:es /data/dataM/elastic

注:上述命令中N表示数字1到6,M表示数字1到12

 

 

4. 修改系统参数

l  /etc/security/limits.conf中配置(保证不低于以下值)

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

es soft memlock unlimited

es hard memlock unlimited

l  /etc/security/limits.d/20-nproc.conf 中配置 * soft nproc 2048

l  /etc/sysctl.conf中配置Vm.max_map_count=655360。

执行 sysctl -p

 

 

5. 安装ES

在/hadoop下解压ES的tar包重命名为elastic5.1.1,更改用户权限为es,并保证之后的ES_HOME目录下所有文件用户权限皆为es

 

2.2.2 插件安装

1. 安装xpack

官网上下载zip包: x-pa ck-5.1.1.zip,到每个节点$ES_HOME,执行命令:

$ cd $ES_HOME

$ ./bin/elasticsearch-plugin install file:///data/x-pack-5.1.1.zip

 

到$KIBANA_HOME(为kibana的主目录,下同),执行命令

bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip

 

2. 安装elasticsearch-sql

下载地址:https://github.com/NLPchina/elasticsearch-sql/releases/elasticsearch-sql-5.1.1.0.zip

 

$ cd $ES_HOME

$ ./bin/elasticsearch-plugin install file:///data/elasticsearch-sql-5.1.1.0.zip

 

2.2.3 修改配置

修改ES实例的jvm,在ES_HOME/config目录下,修改jvm.options

-Xms21g

-Xmx21g

 

主要修改配置文件config/elasticsearch.yml,严格按照原来的格式修改,否则不识别:

1.     es-master节点的配置如下: (.yml的文件冒号后面必须加空格)

cluster.name: opes

node.name:es-masterZ #实例名,Z代表数字1,2,3

network.host:10.33.208.50  # ip/hostname

node.master:true  #设置充当master节点,默认为true

node.data:false   #设置不充当data节点,默认为true

http.port:9200 #配置http端口,多个实例时该值递增配置:9201…

transport.tcp.port: 9300#配置tcp连接端口,多个实例递增配置

path.data:/data/data1/elastic

path.logs:/hadoop/log/elastic5.1.1

script.inline: true

script.stored: true

bootstrap.memory_lock:true #禁用swapping

discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]

discovery.zen.minimim_master_nodes: 2

xpack.security.enabled: false #不启用x-pack安全机制

 

2.     es-data节点配置

复制es-master的配置,修改蓝色标记的部分即可

node.name:es-dataM-N  #此处的M-N表示第M个数据节点的第N个实例

network.host:10.33.208.35

node.master:false

node.data:true

path.data:/data/dataA/elastic, /data/dataB/elastic #数字A=2*N-1 B=2*N

path.logs:/hadoop/log/elastic5.1.1/N

http.port:9200 #配置http端口,多个实例时该值递增配置:9201、9202…

transport.tcp.port: 9300#配置tcp连接端口,多个实例递增配置

node.max_local_storage_nodes:6 #新增,设置单机实例数

script.inline: true

script.stored: true

bootstrap.memory_lock:true #禁用swapping

discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]

discovery.zen.minimim_master_nodes: 2

xpack.security.enabled: false #不启用x-pack安全机制

3.     es-client 节点配置

复制es-master的配置,修改蓝色标记的部分即可

node.name:es-client#此处的N表示第N个client节点

network.host:10.33.208.107

node.master: false

node.data: false

path.data:/data/dataA/elastic, /data/dataB/elastic #数字A=2*N-1 B=2*N

path.logs:/hadoop/log/elastic5.1.1/N

http.port:9200 #配置http端口,多个实例时该值递增配置:9201、9202…

transport.tcp.port: 9300#配置tcp连接端口,多个实例递增配置

script.inline: true

script.stored: true

bootstrap.memory_lock:true #禁用swapping

discovery.zen.ping.unicast.hosts:["es-master1:9300"," es-master2:9300"," es-master3:9300"]

discovery.zen.minimim_master_nodes: 2

xpack.security.enabled: false #不启用x-pack安全机制

 

2.2.4 启动节点

以es用户启动es-master,第一次在前台启动,无错则访问http://es-master1:9200

# su es

$ cd ES_HOME

$ bin/elasticsearch

 

后台启动:bin/elasticsearch-d

查看es进程:jps

停止es进程:kill $pid

 

2.2.5集群配置

将需要部署es的所有机器准备好环境,即2.2.1的步骤1-4。

配置好第一个es-master实例,并成功启动。

分发安装好的es-master实例的Elasticsearch安装包到ES集群的所有master节点,修改配置文件,成功启动。

配置一个es-data实例启动,安装kibana监控到集群节点正常(观测到启动的所有master实例以及es-data实例)后,分发安装包到所有节点配置es-data实例。

注意:对于单机多实例的配置,暂定/hadoop目录下拷贝ES安装包多份,命名规则为 elastic5.1.1-N,对应其配置中的node.name的命名es-dataM-N后缀,以及日志目录/hadoop/log/elastic5.1.1/N

 

2.2.6 启动集群

启动集群需注意先启动至少两个master节点,再启动data节点。

2.2.7 更换license

注册免费的licence 有效期一年(x-monitor):https://register.elastic.co/

导入license的json文件

注:导入后security、report、alert不能再用,谨慎使用

curl -XPUT'http://<host>:<port>/_license' -d @license.json

命令失败执行下一条:curl -XPUT  'http://<host>:<port>/_xpack/license?acknowledge=true' -d @license.json

查看license信息

curl -XGET'http://<host>:<port>/_license'


2.2.8  

第3章 安装Kibana-5.1.1

解压到/hadoop目录下重命名为kibana5.1.1,修改配置文件config/kibana.yml

  

Server.host  配置机器ip/hostname

Server.name 此kibana服务的名称

elasticsearch.url  es master节点url

 

启动kibana  bin/kibana

后台启动:nohupbin/kibana &

停止kibana:ss -lntp | grep 5601       kill  $pid

 

安装xpack

官网上下载zip包: x-pack-5.1.1.zip,到$KIBANA_HOME(kibana的安装目录)

# cd KIBANA_HOME

# bin/kibana-plugin install file:///opt/soft/x-pack-5.1.1.zip

 

不启用x-pack安全机制

分别在kibana.yml 和elasticsearch.yml中加入下行

xpack.security.enabled: false

 

安装xpack后重启kibana

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐