Linux云服务器安装Elasticsearch
安装Elasticsearch
注:本人服务器为CentOS7.3镜像
1、下载JDK
在安装JDK之前需要检查是否已存在其他版本JDK。
采用如下命令可查看当前已存在JDK版本:java -version
安装新的JDK之前需卸载原有JDK,具体操作可baidu。
这里给一个链接:https://www.cnblogs.com/xinjie10001/p/6287124.html
注:由于我的服务器是pure 镜像,所以不存在JDK,因此没有卸载JDK这一步操作。
JDK下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载之后上传到服务器某一目录,本人放置在/opt目录。
使用tar命令进行解压:tar zxf jdk-8u161-linux-x64.tar.gz
接下来配置JAVA环境变量,先使用如下命令打开环境变量配置文件:vim /etc/profile
在打开后的profile中,输入字符i对文档进行编辑,在文件末尾插入如下内容:
export JAVA_HOME=/opt/jdk1.8.0_161
export JAVA_BIN=/opt/jdk1.8.0_161/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
插入完成后按ESC
键再输入:wq
或:x
保存文件并退出。
注:/opt/jdk1.8.0_161
为JDK解压后的文件所放置的目录
2、下载Elasticsearch
Linux系统下直接可采用如下命令进行下载:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
另外,也可直接在官网下载后上传到服务器某一目录。
下载Elasticsearch后使用如下命令进行解压:tar zxf elasticsearch-6.2.3.tar.gz
进入elasticsearch-6.2.3的bin
目录,使用如下命令执行脚本elasticsearch
:./elasticsearch
3、内存不足问题
按上述操作此时会出现如下问题:
此时应该是表示内存不足
解决方法:
进入elasticsearch-6.2.3的config
目录,使用如下命令进入jvm.options
配置文件:vim ./jvm.options
将文件中下图所示的-Xms1g和-Xmx1g改为-Xms200m和-Xmx200m
4、root用户不能执行elasticsearch脚本问题
此时返回bin
目录重新运行脚本elasticsearch
会出现如下问题:
该问题表示不能使用root用户运行该脚本,为此我们可以为elasticsearch新建一个用户ES。
具体操作见下图:
使用如下命令为该用户获取访问/opt目录的权限:chown ES /opt -R
切换到用户ES,执行bin目录下的elasticsearch脚本,具体操作见下图:
这说明elasticsearch启动成功,但不要激动得太早,我们需要通过9200
端口访问elasticsearch服务,具体操作见下图:
如果出现上图所示的JSON信息,说明Elasticsearch启动成功。
5、外网访问云服务器的Elasticsearch
进入config目录将elasticsearch.yml
配置文件中的network.host
修改为0.0.0.0
并去掉其前面的#号,命令为:vim ./elasticsearch.yml
具体修改操作如下图所示:
返回bin目录重新运行elasticsearch脚本,此时会出现如下问题:
针对问题1:
解决方法:
使用如下命令打开/etc/security/limits.conf:vim /etc/security/limits.conf
在该配置文件中添加如下内容:\* soft nproc 4096 \* hard nproc 4096
具体见下图:
注:这里文件的打开需要切换到root用户,因为ES用户不能改变该配置文件。
针对问题2:
解决方法:
使用如下命令打开/etc/sysctl.conf:vim /etc/sysctl.conf
增加配置vm.max_map_count=262144
具体见下图:
执行命令sysctl -p
生效。
重新启动服务器,再运行elasticsearch脚本,此时便没有错误了。
本地访问9200端口:
在云服务器安全组打开9200端口:
外网浏览器访问服务器9200端口:
此外,还可能遇到问题3:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决方法:
使用如下命令打开/etc/security/limits.conf:vim /etc/security/limits.conf
在该配置文件中添加如下内容:\* soft nofile 65536 \* hard nofile 65536
后台运行Elasticsearch命令:
./elasticsearch -d
Reference
[1]. https://www.jianshu.com/p/658961f707d8
[2]. http://kael-aiur.com/elk/ES%E9%85%8D%E7%BD%AE%E7%BB%99%E5%A4%96%E9%83%A8%E6%9C%BA%E5%99%A8%E9%80%9A%E8%BF%87ip%E8%AE%BF%E9%97%AE.html
[3]. https://www.cnblogs.com/zhi-leaf/p/8484337.html