一.安装包的下载

下载地址 https://www.elastic.co/cn/downloads/past-releases

搜索elasticsearch6.8.1 /kibana6.8.1/logstash6.8.1/filebeat6.8.1 ,我们要准备elasticsearch-stack,所以其他三个软件都要下载下来,我们使用统一的版本,版本不同会有版本兼容问题你懂得.

我下载的路径是usr/src/local/src

在/usr/src/local下继续创建几个文件夹备用 /es , /kibana, /logstash ,filebeat

二.elasticsearch的安装

进入 /usr/src/local/src 解压,并修改elasticsearch-6.8.1 为elasticsearch

tar -zxvf elasticsearch-6.8.1-linux.tar.gz -C /usr/src/local/es

进入elasticsearch的config目录下,修改elasticsearch.yml

vi /usr/src/local/es/elasticsearch/config/elasticsearch.yml

找到NetWork,将network.host前面的#去掉,elasticsearch的默认端口为9200不用修改,注意,如果手动配置,冒号后面要加空格

此为临时修改,为了让所有人访问.将network.host修改为 0.0.0.0,搭建集群的时候这个要改成ip

修改内存大小

vi /etc/sysctl.conf

添加 vm.max_map_count=262144,并且执行

sysctl -p

 修改存储大小参数

vi /etc/security/limits.conf

添加下面的参数

* soft nofile 65536
* hard nofile 65536

 重新切换用户生效.

es的启动需要单独创建用户 

groupadd elsearch

useradd elsearch -g elsearch -p elsearch

chown -R elsearch:elsearch /usr/src/local/es 

chmod 777 /usr/src/local/es 

su elsearch

切换用户elsearch,进入 elasticsearch 的bin目录下执行 ./elasticsearch 

如果日志中显示started,没有ERROR标志的错误,说明启动成功

关闭防火墙(systemctl stop firewalld),然后在浏览器中访问192.168.80.129:9200 ,或者 curl 192.168.80.129:9200

如下所示启动成功

三.elasticsearch集群的搭建

进入到es目录下,解压3份elasticsearch安装包,分别改名es-master,es-slave1,es-slave2

修改es-master/config下的elasticsearch.yml 作为主节点

主节点配置如下

http.cors.enabled: true

http.cors.allow-origin: "*"

cluster.name: kainan

node.name: master

node.master: true

network.host: 192.168.80.129

子节点1配置

cluster.name: kainan

node.name: slave1

network.host: 192.168.80.129

http.port: 8200

discovery.zen.ping.unicast.hosts: ["192.168.80.129"]

子节点2配置

cluster.name: kainan

node.name: slave2

network.host: 192.168.80.129

http.port: 7200

discovery.zen.ping.unicast.hosts: ["192.168.80.129"]

如果想继续增加节点,依次类推,需要注意的是,主节点的端口默认是9200,其他节点需要重新配置端口,还有network.host不能存在多个,要么就注掉,否则报错.

同样,给这三个文件夹权限 chown +chmod命令省略

切换elsearch用户.先启动master,再启动slave1,slave2

./elasticsearch -d  可以后台运行

四.elasticsearch-head 插件的安装

插件的功能就是让es的操作更加方便操作人性化,首先,插件是建立在nodejs上的所以要先装nodejs.

1.nodejs的安装

http://nodejs.cn/download/ 下载linux 的node安装包

上传到服务器,解压nodejs安装包到/usr/src/local/nodejs/下

然后执行下面两句

ln -s  /usr/src/local/nodejs/nodejs/bin/node  /usr/local/bin/node
ln -s  /usr/src/local/nodejs/nodejs/bin/npm  /usr/local/bin/npm

这两句是让node的node文件夹和npm文件夹链接到用户的执行目录下

然后在/etc/profile 中的PATH中增加如下

PATH=$PATH:$JAVA_HOME/bin:/usr/local/bin:/usr/local/bin:/usr/src/local/nodejs/nodejs/bin/
source /etc/profile 

然后执行node -v 查看node版本

2.elasticsearch-head插件的安装

下载地址: https://github.com/mobz/elasticsearch-head

上传项目到/usr/src/local/es/下,解压项目,如果没有unzip命令执行下面命令

 

yum list | grep zip/unzip 
yum install zip   

#提示输入时,请输入y;

yum install unzip

#提示输入时,请输入y;

解压elasticsearch-head-master

unzip elasticsearch-head-master.zip

 移动项目到/usr/local/

mv elasticsearch-head-master.zip /usr/src/local/

进入到解压目录,执行 npm install (需要联网)

然后执行

npm run start

出现上图所示,在浏览器访问 ip+9100

如下

黄色的地方是集群的健康值,绿色,黄色和红色

搜索框下面是索引名称

带星号的是主节点,后面的方块带数字的是索引的分片,粗线框是主分片,在插件中可以预览索引,预览数据,基本查询和聚合查询

五.elasticsearch常见的异常及处理办法

1.异常情况:

[2019-07-31T09:14:59,656][ERROR][o.e.b.Bootstrap          ] [2Nx25n0] node validation exception

[3] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

[2]: max number of threads [3795] for user [elsearch] is too low, increase to at least [4096]

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

原因:内存不足

解决办法:

修改 /etc/security/limits.conf,最后一行加上

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

vm.max_map_count=655360

执行sysctl -p

2.异常:IllegalStateException 

解决办法:

找到/elasticsearch安装包下的/data

rm -rf nodes

3.异常:

[2018-08-07T11:35:38,130][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-001] uncaught exception in thread [main] 

原因:elasticsearch不支持root用户登录

解决办法:需要新增用户(组),并赋予修改elasticsearch安装文件夹的权限

4.异常:

main ERROR RollingFileManager (/usr/local/software/elasticsearch-5.5.2/logs/elasticsearch.log)

java.io.FileNotFoundException: /usr/local/software/elasticsearch-5.5.2/logs/elasticsearch.log

(Permission denied) java.io.FileNotFoundException: /usr/local/software/elasticsearch-5.5.2/logs/elasticsearch.log (Permission denied)

原因:权限不足

解决办法:

用户权限不足,切换root用户,chown -R 用户名:用户组 /文件夹

Chmod 777 /文件夹

5.异常:

ElasticsearchUncaughtExceptionHandler

原因:端口占用

解决办法:使用命令jps,查看elasticsearch进程,然后kill -9 进程号

6.异常:

JsonParseException[Duplicate field 'network.host'

原因:首先可能是你的配置文件elasticsearch.yml格式可能有问题,比如冒号后面要有空格,前面不能有空格等;第二个就是没有log4j2的包,要去下载安装:

解决办法:查看格式,下载log4j* [root@node2 ~]# yum install -y log4j*

7.访问插件的时候会出现一个分片副本未分配的情况(UNASSIGNED)

原因:这个是磁盘使用率超过80%的缘故

如下,我虚拟机是装在D盘的.解决办法,预留多余的空间

下一节介绍kibana的安装和使用

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐