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可...
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系统的浏览器去访问了。
验证,成功。
更多推荐
所有评论(0)