Elasticsearch安装的坑
在Azure中国版上,用CentOS 6.9安装elasticsearch 5.6,遇到两个几处坑的配置,在这里记录一下。
- 下载rpm包安装:
rpm --install elasticsearch-5.6.2.rpm
,一切正常。使用sudo service elasticsearch start
启动,提示找不到JDK。应对方案为:如果是手工安装的Oracle JDK,则添加一个Java执行程序的软连接到/usr/bin/
目录中:ln -s /usr/local/jdk1.8.0_144/bin/java /usr/bin/
。 - 启动后,使用:
curl -XGET '127.0.0.1:9200/?pretty'
可以返回正确的结果,但是无法从其他的机器上访问。修改配置文件:/etc/elasticsearch/elasticsearch.yml
:
network.host: 10.11.12.101 #服务器的内网IP地址
重启服务后,出现如下错误:
[1]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]
按照官方文档的说法,是要修改:/etc/security/limits.conf
,但是照做之后,发现是无效的。正确的配置文件为:/etc/security/limits.d/90-nproc.conf
:
\* soft nproc 10240 #前面的"\"要去掉,这个博客的编辑器有bug,转义后的星号多了一个反斜线。
- 经过上述修改后,启动elasticsearch依然报错:
[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
处理方法为:在/etc/elasticsearch/elasticsearch.yml
配置文件中添加一行:
bootstrap.system_call_filter: false
最后,记得关闭selinux。重启服务器后,运行:sudo service elasticsearch start
,elasticsearch正常启动,并且可以从其他的机器上进行访问了。