安装的教程有很多,大家遇到的坑也基本一样,我这里主要指出目前最新版6.1.2遇到的坑,安装教程推荐https://my.oschina.net/itblog/blog/547250。
第一个坑 #没访问权限 这个是基本每个人都会遇到,Failed to load settings from /usr/local/elk/elasticsearch/config/elasticsearch.yml
或者报 can not run elasticsearch as root ,就是说这个es不能直接用root启动,需要创建一个用户来启动。
解决办法:
adduser admin
passwd admin xxxxxx
su admin
再次启动,然而。。。。
还有一坑,因为我配置文件elasticsearch.yml 中配置了几个路径,报没有权限的错误,也就是新建的admin用户没有赋予读写文件的权限,
解决办法:
chown -R admin:admin /tmp/elasticsearch/
我配置的路径都是在/tmp/elasticsearch下的,所以只需要赋予这个路径下所有文件权限就行了。
再次启动。。。然而。。。
第三个坑:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
解决办法:
切换为root用户
vi /etc/security/limits.conf
添加如下内容:
admin soft nofile 65536
admin nofile 131072
再次切换用户
su admin
再次启动。。。success!!!
访问9200端口
安装head插件遇到的坑:
elasticsearch-head的作用就不多描述了。
因为5.0之后就不支持plugin名安装的方式了,所以需要借助node.js和grunt。
安装参考:https://www.cnblogs.com/Onlywjy/p/Elasticsearch.html
坑一:在elasticsearch-head-master执行 npm install 命令的时候,下载文件失败或者很慢,应该跟镜像有关。
解决办法:
可以尝试国内镜像安装,
输入命令:npm install -g cnpm --registry=https://registry.npm.taobao.org
下载安装成功,命令grunt server启动。
访问http://10.10.0.153:9100,成功访问到界面,但是发现点连接之后没反应,F12看到报错了。
坑二:
Origin null is not allowed by Access-Control-Allow-Origin.
网上找到解决方法:
elasticsearch默认不允许跨域访问,同时也需要设置返回IP的参数。
在config/elasticsearch.yml 后面增加以下参数:
#开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/
保存再次启动,访问成功,连接不报错。