上篇博客讲解了下windows下的es及插件安装,总体而言还是挺简单的.公司服务器的系统是centos6.x,之前的es搭配都是由老大哥给处理的,现在完全交给我,对我这linux小白来说还是废了很大一番功夫的。现在记录下安装及配置的过程,方便日后查阅。中间有其他插件安装的话也会不定时更新到这里.
一、安装jdk1.8
1.yum查找java相关列表
2.yum安装
根据自己的情况选择不同的jdk版本,必须使用root用户安装.
yum -y install java-1.8.0-openjdk.x86_64
3.查看是否安装
使用java -version查看安装结果
二、安装ES
1、下载es
官网下载地址
红色区域上方有提示写的“.zip和.tar.gz的安装方式在任何系统上都是最简单的。”那咱们就采用这种形式呗.点击红色区域连接进入教程页面。在教程界面里讲明了如何获取压缩包及解压方式。这里我采用了.tar.gz的压缩包进行安装.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.tar.gz
sha1sum elasticsearch-5.6.3.tar.gz
tar -xzf elasticsearch-5.6.3.tar.gz
下载成功后使用后面的方法解压即可.
2、配置
按照官网的教程到这步就已经可以启动服务了,那是不是安装成功了呢?让我们来试一下吧。
cd elasticsearch-5.6.3/
./bin/elasticsearch
报错的原因是ES不可以用root用户运行,需要增加用户运行。创建一个用户组为elastic的用户es。
groupadd elastic
useradd es -g elastic
使用su es进入es用户后运行./bin/elasticsearch,出现新的错误,提示权限不足.
解决方法: 将elasticsearch所属用户和组修改为es和elasticsearch.
(11月12日更新:服务启动时会有提示请使用elasticsearch用户和组运行程序。否则可能出现日志无法正常写入状况.)
ls -al elasticsearch-5.6.3
chown -R es elasticsearch-5.6.3
chgrp -R elastic elasticsearch-5.6.3
再次进入es用户下启动程序.
虽然这次启动显示成功了,本机上使用curl ‘localhost:9200’也可以访问到,但是使用ip访问9200端口依然无法连接。注意红圈处的内容,下面还会碰到。
解决方法: 修改elasticsearch\config\elasticsearch.yml文件
再次启动ES,你会发现这次ES自己自动关闭了。
无法启动的原因即红色圈内的问题,需要修改几个配置文件。切换至root用户。
1.vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
2.vi /etc/security/limits.d/90-nproc.conf
将* soft nproc 1024 修改为 * soft nproc 2048
3.vi /etc/sysctl.conf
添加 vm.max_map_count=655360 然后执行 sysctl -p
重新登录xshell在启动es。–这里保存后必须重新登录修改才能生效.
这次成功启动.
三、head插件的安装
1、安装git,下载head
yum -y install git
git clone git://github.com/mobz/elasticsearch-head.git
因为是独立启动服务,所以路径按个人喜好放置即可,这里我放在了与es在同一位置下的目录。稍后修改成775权限.
chmod -R 775 路径
2、安装node.js
下载地址
下载下来的是.tar.xz格式文件,有些linux系统可能不能识别,需要安装xz,之后进行解压.
yum -y install xz
xz -d node-v8.9.0-linux-x64.tar.xz
tar -xvf node-v8.9.0-linux-x64.tar
配置环境变量,编辑/etc/profile,添加下面的内容:
export NODE_HOME=/ssd/elastic/node-v8.9.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
保存后执行下面命令:
source /etc/profile
测试node是否生效:
echo $NODE_HOME
node -v
npm -v
3、安装grunt
执行如下命令:
npm install -g grunt-cli
如果提示需要用root/Administrator运行,前面加上 sudo。安装后查看版本:
grunt -version
进入head插件目录,运行如下命令:
npm install grunt --save-dev
再次查看grunt版本,会发现多了一条信息
4、修改head配置文件
修改head/Gruntfile.js,下面代码中增加了hostname: ‘*’。
connect: {
server: {
options: {
port: 9100,
hostname: '*',
base: '.',
keepalive: true
}
}
}
修改head的连接地址:
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
把localhost修改成你es的服务器地址。
5、运行head
在head目录下执行命令:
npm install
嗯,不出意外安装出问题了,在上篇文章讲过,npm安装依赖时速度特别慢可能是因为链接的服务器在国外,安装时手动指定从哪个服务器获取资源可以大大加快速度,推荐使用阿里巴巴的镜像服务器.命令如下
npm install -gd express --registry=http://registry.npm.taobao.org
运行es服务,最后启动node.js
grunt server
稍后访问localhose:ip:9100查看下head是否正常启动.
四、ik分词器的安装
下载地址
github上的安装方式有两种,windows下我采用了下载zip解压的方式即图中的optional 1。本想在linux下尝试使用第二种方式,但是几次执行后都出现connection reset,无法正常安装.最终还是采用了第一套方案.
将解压后的文件夹更名为ik,上传到es的plugins路径下重启es,通过head即可在插件里看到ik。