# 参考:[CSND博客](https://blog.csdn.net/chj_1224365967) ### 简介 > 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安装](https://blog.51cto.com/13696145/2465759) > 二、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属性,设置为* > ``` ![](https://s1.51cto.com/images/blog/202001/09/92973fe187a3f7cf15f5999792e6f98b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) > ``` 3.启动grunt > [root@test-01 ~]# grunt server & > 不安装 grunt 也可以启动: > [root@test-01 ~]# npm run start & > ``` ![](https://s1.51cto.com/images/blog/202001/09/5d215b31df65553cdaa1247cab760c64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) ![](https://s1.51cto.com/images/blog/202001/09/0cdb7eaf6b6438f59a5dc8bdfc1cc434.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)