下载Elasticsearch
选择下载elasticsearch,根据需要选择对应的安装包,这里选择5.0版本,下载完后得到 elasticsearch-5.0.0.tar.gz
解压安装
将 elasticsearch-5.0.0.tar.gz 拷贝到 /opt 目录下。
在Linux中,/opt这个目录主要存放那些可选的程序。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。要删除某一程序的时候,你只需删除/opt/(安装的软件)目录即可,而不影响系统其他任何设置,非常简单。
解压到当前目录,使用命令 tar -zxvf elasticsearch-5.0.0.tar.gz
删除压缩文件,使用命令 rm -f elasticsearch-5.0.0.tar.gz
至此,elasticsearch安装完成
修改配置文件
上面解压完成后,在 /opt 目录下得到一个 /elasticsearch-5.0.0 目录
进入该目录,使用命令 cd elasticsearch-5.0.0
可以看到有多个目录和文件,进入其中的config目录(使用命令 cd config)
我们需要编辑其中的 elasticsearch.yml 这一文件,使用命令 vim elasticsearch.yml
修改network.host和discovery.zen.ping.unicast.hosts的IP,改成当前ip地址(通过 ifconfig 命令查看)。如果不修改,则只能本地访问(localhost或127.0.0.1)
修改系统参数
使用命令 vim /etc/security/limits.conf 在最后添加数据如下:(soft nproc和hard nproc也可以设置成65536)
使用命令 vim /etc/security/limits.d/90-nproc.conf 将下图中红框所示位置的值从 1024 改成 2048
使用命令 vim /etc/sysctl.conf 在最后添加一行数据如下: vm.max_map_count=262144
修改完后,执行如下命令 sysctl -p
启动Elasticsearch
建立用户els 设置密码els
设置文件权限
切换到els用户下
su - els
启动elasticsearch首先进入其安装目录,使用命令 cd /opt/elasticsearch-5.0.0/
然后使用命令 bin/elasticsearch -d
即启动了Elasticsearch
部署集群
如果需要部署集群,这里以使用三台虚拟机为例,首先每个虚拟机系统都作如上安装和配置,其中,有几个地方要额外配置一下。
编辑 elasticsearch.yml 文件,设置集群名和每个节点的名字,以及写入每个节点的IP地址,使用命令 vim elasticsearch.yml
注意每个节点的network.host要改成当前节点的IP
若没安装tomcat
前台启动:
后台启动:
外网无法访问问题解决
1.首先检查elasticsearch.yml配置文件,其中的 network.host 和 discovery.zen.ping.unicast.hosts 是否正确输入了当前服务器的IP地址
2.虚拟机和物理机以及其他主机的IP地址需要在一个网段
如果不在同一个网段,将虚拟机的联网方式改为Bridge模式
3.物理机ping虚拟机,虚拟机ping物理机能否通,如果不通,关闭物理机和虚拟机的防火墙
Linux下关闭防火墙使用指令
_________________________________________
可能问题
报错:
ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
原因:
这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
解决:
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
head安装
测试centos6和7 红帽6和7可用
1、安装好es5.x并启动
2、安装好nodejs并设置好环境变量
①由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。(npm可以理解为maven)
下载下来的jar包是xz格式的,一般的linux可能不识别,还需要安装xz.(前面已经安装)
备注:我现在的安装包 node-v6.10.1-linux-x64.tar.xz 我的习惯是安装在/usr/local/目录下
②然后解压nodejs的安装包:
xz -d node-v6.10.1-linux-x64.tar.xz
tar -xvf node-v6.10.1-linux-x64.tar -C /usr/local/
③解压完node的安装文件后,需要配置下环境变量
# set node environmentexport
export NODE_HOME=/usr/local/node-v6.10.1-linux-x64
export PATH=$PATH:$NODE_HOME/bin
END
④别忘记立即执行以下
source /etc/profile
⑤这个时候可以测试一下node是否生效:
/usr/local/node-v6.10.1-linux-x64
[[email protected] node-v6.10.1-linux-x64]# /usr/local/node-v6.10.1-linux-x64/bin/node -v
v6.9.4
[[email protected] node-v6.10.1-linux-x64]#/usr/local/node-v6.10.1-linux-x64/bin/npm -v
3.10.10
ln -s /usr/local/node-v6.11.5-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node-v6.11.5-linux-x64/bin/npm /usr/bin/npm
3、将 /home/elasticsearch-head.tar.gz(这个是我已经安装好了各种npm、grunt的) 解压 并启动
cd /usr/local/elasticsearch-head/node_modules/grunt/bin/
nohup ./grunt server &
4、访问即可http://IP:9100/
===========================================
安装head 插件
5.1 下载head安装包,下载地址:https://github.com/mobz/elasticsearch-head/archive/master.zip 这是接从git 上下载下来 ,然后上传到虚拟机上的;由于head 插件不能放在elasticsearch-5.6.3 文件夹里,head 插件需要单独放,单独去执行; 所 以在elasticsearch-5.6.3 同级目录下解压了 head 插件;解压出来的文件名字,如图

5.2 执行head 插件,需要node.js 的支持,所以,下面先安装一node.js
5.2.1 执行命令一:curl -sL https://rpm.nodesource.com/setup_8.x | bash -
命令二:yum install -y nodejs

OK,执行完成后,可以使用命令 node -v 验证是否安装成功,同时npm 也安装成功了;执行命令 npm -v 也是可以验证的。

5.3 安装grunt ,由于head 插件的执行文件是有grunt 命令来执行的,所以这个命令必须安装
5.3.1 安装命令一:npm install grunt --save-dev
命令二:npm install

5.3.2 修改配置文件,cd 进入elasticsearch-head-master 文件夹下,执行命令vim Gruntfile.js文件:增加hostname属性,设置为*;如图:

5.3.3 修改 vim _site/app.js 文件:修改head的连接地址:,如图所示:

5.3.4 最后一个命令: grunt server & 执行完成后就OK了
5.3.5 涉及到的问题,在网页上无法正常访问;查看防火墙是否关闭
5.3.5.1 执行命令service iptables status 查看状态 ;直接将防火墙关闭就好了 执行命令service iptables stop
最后执行的结果是这样的,我没有配置集群: 注意下面使用的端口号,不在是9200 了 而是head 插件中的 9100 了

看到上面的出现的健康值了吗,说明的连接还是有问题的,解决方案是修改 cd 命令进入到elasticsearch-5.6.3 /config 文件中 vi elasticsearch.yml
文件下添加 :
http.cors.enabled: true
http.cors.allow-origin: "*"

然后重新执行ES ./elasticsearch 成功起来就可以了,执行结果就是这样的
