简介

ElasticSearh作为目前比较流行的全文搜索引擎。目前使用的公司以及个人比较多。其是基于RESTful web接口使用java语言开发,其能够达到实时搜索,稳定,可靠,快速,安装使用方便。本篇简单介绍下如何在linux系统上进行安装配置。

安装环境

1. 操作系统:CentOS 7.4
2. 安装Elasticsearch前提条件:JDK1.8及以上,我这里使用的版本是 jdk1.8.0_181
3. 目前Elasticsearch最新的版本是 7.5.1,我这里使用的版本是 5.2.2

安装及配置

说明:ElasticSearch的运行不能用root执行,必须普通用户来启动。


一、jdk 安装
JDK安装
二、elasticsearch安装

1.创建用户
[root@test-01 ~]# groupadd elastic
[root@test-01 ~]# useradd elastic -g elastic -m
2.下载安装
[root@test-01 ~]# wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz
[root@test-01 ~]# tar zxvf  elasticsearch-5.2.2.tar.gz
[root@test-01 ~]# mv  elasticsearch-5.2.2  /usr/loca/elasticsearch
//创建数据及日志目录
[root@test-01 ~]# mkdir -p /data/elasticsearch/data
[root@test-01 ~]# mkdir -p /data/elasticsearch/logs
//添加权限
[root@test-01 ~]# chown elastic:elastic elasticsearch   /usr/loca/elasticsearch  -R
[root@test-01 ~]# chown elastic:elastic elasticsearch   /data/elasticsearch/logs  -R
[root@test-01 ~]# chown elastic:elastic elasticsearch   /data/elasticsearch/data  -R
3.修改配置文件(修改方法参考如下:)集群配置文件略同
[root@test-01 ~]# cat /usr/local/elasticsearch/config/elasticsearch.ym l egrep -v '^(#|$)'
cluster.name: es_cluster
node.name: node-01  //随机定义
node.master: true      //主true 从false
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 192.168.0.164
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.0.165", "192.168.0.164"]
discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,Content-Type
xpack.security.authc:
accept_default_password: true
解释说明:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false 一看就知道是关于内用访问的方面的配置
cluster.name 集群名字,同一个集群中使用相同名字,单机就随意
node.name: node-01 节点名字
node.master: 是否为集群的master机器
node.data: true 是否作为数据节点
network.host: 192.168.0.164 这个不用自然是配置ip地址的,也可以配置成0.0.0.0
http.port: 9200 端口号,不配置的话默认9200
discovery.zen.ping.unicast.hosts: [“192.168.0.165”,”192.168.0.164”] 这个就是配置集群的时候要用的到了,[]中填上集群中其他集群的ip的地址,如果是master的话请把所有salve的机器地址填上
discovery.zen.minimum_master_nodes: 1 关于这个值配置多少合适的话大家去搜一下,自己权衡一下集群,这里我用了3台机器模拟集群,所以填上2。
http.cors.enabled: true 这个参数的设置和下面一个配置就关于ip的访问策略了,如果你发现其他ip地址访问不了就有可以这参数没有配置
4.调整系统参数
[root@test-01 ~]# vim /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048

[root@test-01 ~]# vim /etc/sysctl.conf
vm.max_map_count=662144
vm.overcommit_memory = 1
执行命令,使配置文件生效
[root@test-01 ~]# sysctl –p
5.启动与停止
[root@test-01 ~]# su elastic -c "/usr/local/elasticsearch/bin/elasticsearch -d"
[root@test-01 ~]# kill -9 `ps aux|grep [e]lasticsearch |grep -v tail|awk '{print $2}'`
三、安装head插件
一般安装在/usr/local/elasticsearch/elasticsearch-head路径下
1.安装node
源码安装方法如下:
[root@test-01 ~]# yum -y install gcc make gcc-c++ openssl-devel
下载源码及解压:
[root@test-01 ~]# wget  http://nodejs.org/dist/v4.4.7/node-v4.4.7-linux-x64.tar.gz
[root@test-01 ~]# tar zxvf  node-v4.4.7-linux-x64.tar.gz
[root@test-01 ~]# mv node-v4.4.7-linux-x64 /usr/local/node
[root@test-01 ~]# ln -s  /usr/local/node/bin/node  /usr/local/bin/node
[root@test-01 ~]# ln -s  /usr/local/node/bin/npm  /usr/local/bin/npm
[root@test-01 ~]# node -v
2.安装grunt
grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.2里的head插件就是通过grunt启动的。因此需要安装一下grunt:
[root@test-01 ~]# git clone git://github.com/mobz/elasticsearch-head.git
[root@test-01 ~]# cd elasticsearch-head
[root@test-01 ~]# npm install -g grunt-cli  //执行后会生成node_modules文件夹
[root@test-01 ~]# npm install
注意:5.0以上,elasticsearch-head 不能放在elasticsearch的 plugins、modules 目录下,否则elasticsearch启动会报错。
修改vim Gruntfile.js文件:增加hostname属性,设置为*

ElasticSearch5.2.2版本的集群安装部署及插件head安装_第1张图片

3.启动grunt
[root@test-01 ~]# grunt server &
不安装 grunt 也可以启动:
[root@test-01 ~]# npm run start &

ElasticSearch5.2.2版本的集群安装部署及插件head安装_第2张图片
ElasticSearch5.2.2版本的集群安装部署及插件head安装_第3张图片