一个PHP程序员接入Elasticsearch并不是公司项目的需求,而是自己平时积累了很多项目信息、代码片段、解决问题的网站书签等等要反复用到的数据。每次使用前找到想要的数据都是个麻烦事,基于这个背景下接触到了分词检索,进而接触到了Elasticsearch。
安装前一定要注意版本号,IK分词器的版本往往慢于Elasticsearch的版本,所以最好先看一下IK分词器的版本再去下载对应的Elasticsearch(自己就出现了安装好Elasticsearch发现Ik分词器没有对应的版本问题)。
下面详细记录一下自己在腾讯云服务器(Linux)安装的全过程与遇到的问题与解决方案;
下载地址:https://github.com/medcl/elasticsearch-analysis-ik
点击链接打开页面后,点击全部发行版,选择想要的版本进行下载
这里下载了6.5.0的zip压缩文件(下面的包添加后不成功不知道什么原因):
下载地址:https://www.elastic.co/downloads/past-releases#elasticsearch
选择对应系统且与IK分词器对应版本的Elasticsearch下载
下载成功后将文件上传到linux服务器的/opt目录下
下载地址:https://www.elastic.co/downloads/past-releases#kibana
同样的要和Elasticsearch选择同样的版本以及对应系统的安装文件
下载成功后将文件上传到linux服务器的/opt目录下:
低版本的Elasticsearch安装文件中是没有JDK配置的需要自己安装与配置,Elastic6.5.0 需要 Java 8 环境(高版本请忽略)
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压在下的JDK文件,修改配置文件
tar -zxvf jdk-8u371-linux-x64.tar.gz
vim /etc/profile
在该文件末尾增加如下内容:
export JAVA_HOME=/opt/jdk1.8.0_371
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin
校验是否安装成功;
java -version
解压下载的Elasticsearch安装文件,注意替换文件名
tar -zxvf elasticsearch-6.5.0.tar.gz
将IK分词器的ZIP文件解压,然后进入Elasticsearch的插件目录,创建文件夹IK将解压的所有文件上传上来
由于Elasticsearch不能以root用户进行运行,需要添加独立用户esuser(用户名自定义),设置密码
useradd esuser
passwd esuser
将解压出来的Elasticsearch目录分配权限给新增的独立用户esuser
chown -R esuser:esuser elasticsearch-6.5.0
这个版本Elasticsearch配置文件中默认的内存大小是1G,由于购买的云服务器资源有限不能满足,所以要修改一下配置文件更改内存大小改为512m(服务器资源够的请忽略)
vim /opt/elasticsearch-6.5.0/config/jvm.options
vim /opt/elasticsearch-6.5.0/config/elasticsearch.yml
如图,注意宝塔和云服务器安全组开放9200端口:
使用esuser用户进入Elasticsearch目录启动es:
su esuser
cd /opt/elasticsearch-6.5.0/
./bin/elasticsearch
#后台运行命令:./bin/elasticsearch -d
使用root用户解压下载的Kibana压缩文件,注意替换文件名
tar -zxvf kibana-6.5.0-linux-x86_64.tar.gz
分配目录权限给esuser
chown -R esuser:esuser kibana-6.5.0-linux-x86_64
修改Kibana配置文件关联Elasticsearch、开启外网访问
vim /opt/kibana-6.5.0-linux-x86_64/config/kibana.yml
运行kibana
su esuser
cd /opt/kibana-8.7.0/
./bin/kibana
#后台运行命令: nohup kibana &
浏览器访问IP加端口号,如下则为成功(版本不同图片有差异,成功访问即可):
实际安装的过程中,由于不同的版本不同的系统遇到的问题也不同,此处记录我安装过程中遇到的问题以及解决办法
1. Elasticsearch启动后通过服务器IP+端口号无法访问到,同时日志报出以下错误:
处理办法:修改elasticsearch.yml文件将xpack.security.enabled:由true为false即可(这种很不安全,生产环境不要这样设置,临时设置校验一下是否安装成功);
重启Elasticsearch,再次执行命令即可
关闭Elasticsearch的浏览器访问,只开放给本机访问;修改elasticsearch的配置文件,将IP由0.0.0.0改为127.0.0.1即可;
vim /opt/elasticsearch-6.5.0/config/elasticsearch.yml
fuser -n tcp 5601