elasticsearch 在linux下安装教程

1.安装jdk

安装elasticsearch,必要条件就是先要装jdk.

参考:Linux centos6.8 安装配置Oracle jdk1.8,亲测成功

2.下载elasticsearch

可以通过在终端输入:

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

可以自动下载elasticsearch到你的电脑上面。

3.步骤如图:(版本与下载版本不一致,忽略即可,步骤是对的

接下来等待解压完成。

在bin目录下,用./elasticsearch启动一下,看图:

你会发现报错,错误的内容是: can not run elasticsearch as root,也就是说不能使用root用户去启动elasticsearch,因为elasticsearch内置的安全性。

解决方式有两种:

这里演示的是第一种:

 ./elasticsearch -Des.insecure.allow.root=true

此处又会报错:

D is not a recognized option

4.创建用户组 创建用户

在这里是建议单独创建一个用户用于elasticsearch。

[root@192 bin]# groupadd eszu    创建一个用户组

[root@192 bin]# useradd es -g eszu -p 123456    在这个用户组下创建一个用户,并且密码为123456

chown -R es:eszu elasticsearch-6.3.2  

-R  不仅显示指定目录下的文件和子目录信息,而且还递归地显示子目录下的文件和子目录信息,也就是说elasticsearch-6.3.2目录下的所有文件都属于eszu组下的es用户。

root用户切换到es用户。

此处虽有警告,但是无error,正常现象。

第一种:用终端验证:

第二种:用浏览器验证

在虚拟机本机两种验证方式任意均可

1.通过ifconfig查询到自己的ip地址

2.编辑elasticsearch.yml配置文件

输入i,进入插入(编辑)模式。

将network.host的注释去掉,ip地址改成自己的linux的虚拟机ip地址

http.post的注释去掉 将 network.host: 192.168.0.1 修改为本机IP 0.0.0.0,换成9200端口

ESC

:wq!保存退出

再次进入 elasticsearch安装目录的bin目录下  ./elasticsearch   启动elasticsearch,报错了

ES6在centOS系统启动,报错:

java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed

原因: 因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动解决:修改elasticsearch.yml 添加一下内容 :

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

再启动报了可能会报4个错,那接下来就去解决这4个问题。

3.解决报错

再打开一个终端。

1)报错:max file descriptors [ 4096 ] for elasticsearch process 15 too low, increase to at least [ 65536 ]

进入 etc目录下,

进入 security目录下,

需要改下面两个,不过一个是文件,一个是目录。

用 vi ./limits.conf 进入limits.conf进行编辑,修改如下:

es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096

保存退出。

2)报错:max number of threads [ 1024 ] for user [ es ] 15 too 1ow, inCrease to at least [ 4096 ]

进入limits.d目录下,修改90-nproc.conf 文件

保存退出。

3)报错:max virtual mefnory areas vm.max_ map_count [ 65530 ] 15 too low, increase toa t least [ 262144 ]

退回到etc目录下

在配置文件最后一行加上:

   vm.max_map_count=655360

这里干脆就改得更大一点。

ps:如果你的虚拟机是centos7,而不是centos6.8,这个配置文件内容不太一样,不过里面依旧是复制粘贴上述内容。当然也可以复制655360

vi ./sysctl.conf

并执行命令:sysctl -p

4)报错:system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

问题原因:因为Centos6不支持SecComp,而ES6.32默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

保存退出。

5.启动报错
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)

解决办法
将ElasticSearch的安装目录及其子目录改为另外一个非root账户,如:

sudo chown -R guest elasticsearch-2.4.0
sudo chgrp -R guest elasticsearch-2.4.0

最后启动

再次进入 elasticsearch安装目录的bin目录下  ./elasticsearch   启动elasticsearch

打开linux系统,使用root用户,关闭防火墙,或者你用你主机windows的浏览器无法访问到你的虚拟机linux的ip。

然后你可以用你的主机windows系统的浏览器去访问了。

验证,成功。

猜你喜欢

转载自blog.csdn.net/qq_40597878/article/details/89106871