1. 下载Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz
2. 解压安装Elasticsearch
解压到当前目录
tar -zxvf elasticsearch-5.6.3.tar.gz
安装,将Elasticsearch移动到/usr/local/elasticsearch目录之中
mv elasticsearch-5.6.3 /usr/local/elasticsearch
3. 修改配置文件
- 进入/usr/local/elasticsearch/config目录,使用vi编辑器
vi elasticsearch.yml
- 修改host为当前主机地址:
network.host: 192.168.0.3
discovery.zen.ping.unicast.hosts: ["192.168.0.3"]
- 使用vi编辑器,修改/etc/sysctl.conf文件,添加如下代码(若无将会出现下面常见问题2):
vm.max_map_count=262144
- 退出保存后执行如下命令:
sysctl -p
目前生产用的yml的配置文件:
4.新建用户及用户组
[root@localhost ~]# groupadd elsearch
[root@localhost ~]# useradd elsearch -g elsearch -p elasticsearch
[root@localhost ~]# passwd elsearch # 设置密码
[root@localhost ~]# cd /usr/local/
[root@localhost /usr/local]# chown -R elsearch:elsearch elasticsearch-5.5.2/
使用vi编辑器,修改/etc/security/limits.conf文件,在文件末尾添加如下代码(若无将会出现下面常见问题3):
elsearch soft nofile 65536
elsearch hard nofile 65536
elsearch soft nproc 4096
elsearch hard nproc 4096
elsearch soft memlock unlimited
elsearch hard memlock unlimited
vim /etc/security/limits.d/90-nproc.conf
elsearch soft nproc 2048
注意: elsearch为登录的用户名,因为root在5.0.0之后是不能启动elasticsearch。需要退出重新登录,配置才能生效
5. 常见问题
1. can not run elasticsearch as root
Elasticsearch版本> = 5.0.0时,是不可用超级管理员运行Elasticsearch的,退出管理员账号即可
2. max virutal memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案,请看上面修改配置文件第3项
3. max number of threads [3750] for user [xxx] is too low, increase to at least [4096]
解决方案,请看上面修改配置文件第4项
4. memory locking requested for elasticsearch process but memory is not locked
- 解决办法如下:需要修改/etc/security/limits.conf
- 添加以下命令:
elsearch soft memlock unlimited
elsearch hard memlock unlimited
elsearch 为启动elasticsearch的用户名
- 修改:/etc/sysctl.conf 添加 -> vm.swappiness=0
6. 启动ElasticSearch及查看状态
- 启动ElasticSearch服务的命令,显示启动的log:
加上-d参数表示后台启动,一般我们都采用后台启动的方式:
webtest:/usr/local/elasticsearch/bin #./elasticsearch -d
ElasticSearch服务启动成功后,可看到如下进程信息:
ps -es |grep elasticsearch
查看ElasticSearch服务所监听的端口:
netstat -lntp |grep java
设置防火墙规则,开放ElasticSearch服务所监听的端口:
[elsearch@localhost elasticsearch-5.6.3]$ sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
success
[elsearch@localhost elasticsearch-5.6.3]$ sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent
success
[elsearch@localhost elasticsearch-5.6.3]$ sudo firewall-cmd --reload
success
开放了相应的端口(9200)后,从浏览器中访问,看看能否访问成功,如下则是访问成功的: