linux搭建elasticsearch7.11.1

Scroll Down

一、安装elasticSearch

elasticsearch 7.x自带JDK,无需额外安装。如果服务器中安装了JDK,版本必须在11以上,否则就要在环境变量中去掉JAVA_HOME,让elasticsearch使用自带的JDK。

1.下载安装包

[root@localhost opt]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-linux-x86_64.tar.gz

个人感觉去官网下载tar包,速度比linux里快一些

官网下载链接 https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-11-1

2.解压

[root@localhost opt]# tar -xvzf elasticsearch-7.11.1.tar.gz

3.创建一个普通用户,elasticsearch-2.x版本以后就不允许使用root账户启动

#创建账号
[root@localhost opt]# useradd dd
#设置密码
[root@localhost opt]# passwd dd

4.给用户设置文件夹的权限,不然切换用户后运行会提示权限不足

[root@localhost opt]# chown -R dd:dd elasticsearch-7.11.1/

5.打开端口:

[root@localhost opt]# firewall-cmd --add-port=9100/tcp
success
[root@localhost opt]# firewall-cmd --add-port=9200/tcp
success
[root@localhost opt]# firewall-cmd --add-port=9300/tcp
success

7.x版本,head插件的访问端口是9100,9200是http访问elastic的端口,9300是节点通信的端口

6.修改config/elasticsearch.yml配置文件

 #修改es监听地址,让别的机器可以访问,不然只能在linux内部访问
 network.host: 0.0.0.0
 #让head插件可以访问es,在5.3,head插件需要手动安装,在1.x和2.x中,head插件可以使用es内部的脚本安装,所以无需设置此参数
 http.cors.enabled: true  		#开启跨域访问支持
 http.cors.allow-origin: "*"	#跨域访问允许的域名地址,使用正则表达式
 #注意冒号后要加空格,否则会报错

端口可以手动指定,也可以不指定,使用默认端口。

http.port: 9200
transport.port: 9300
  • V6.7起,transport.tcp.port改为了transport.port。

elasticsearch 7.5.2中,集群为单节点时,必须指定master节点,或指定节点类型为单节点,两种配置互斥。
配置一:指定节点类型为单节点

discovery.type: single-node

配置二:指定master节点

#一个节点时指定master
cluster.initial_master_nodes: ["node-1"]

指定master节点时,必须指定节点名,否则会找不到master节点。

node.name: node-1

7.修改系统参数
修改/etc/security/limits.conf

[root@localhost opt]# vim /etc/security/limits.conf
    dd               soft    nproc           65536  
    dd               hard    nproc           65536  
    dd               soft    nofile          65536  
    dd               hard    nofile          65536

修改sysctl.conf配置文件

[root@localhost opt]# vim /etc/sysctl.conf 
vm.max_map_count= 262144
[root@localhost opt]# sysctl -p

8.进入bin目录,运行es,注意要非root用户

[dd@localhost bin]$ ./elasticsearch -d
[dd@localhost bin]$ jps
9617 Jps
9597 Elasticsearch

如果es目录下,有root权限的文件,重新用root修改文件夹权限再运行

浏览器输入地址,访问es
http://192.168.195.132:9200/
会显示es相关信息,说明启动成功

{
  "name" : "local",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "3zKH2JOeTJuX7AYLGcA7lA",
  "version" : {
    "number" : "7.11.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a",
    "build_date" : "2021-02-15T13:44:09.394032Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

二、安装head插件

1.下载并配置nodejs

[root@localhost opt]# wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz && xz -d node-v6.9.5-linux-x64.tar.xz
[root@localhost opt]# tar -xvf node-v6.9.5-linux-x64.tar -C /usr/local/
[root@localhost opt]# ln -s /usr/local/node-v6.9.5-linux-x64/bin/node /usr/bin/node
[root@localhost opt]# ln -s /usr/local/node-v6.9.5-linux-x64/bin/npm /usr/bin/npm
[root@localhost opt]# node -v && npm -v
v6.9.5
3.10.10

curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

2.安装grunt

[root@localhost opt]# npm install -g grunt-cli
[root@localhost elasticsearch-head]# ln -s /usr/local/node-v6.9.5-linux-x64/lib/node_modules/grunt-cli/bin/grunt /usr/bin/grunt

3.下载head,去git克隆,再放到es目录下

git clone git://github.com/mobz/elasticsearch-head.git

4.更改文件夹权限

[root@localhost elasticsearch-7.11.1]# chown -R dd:dd elasticsearch-head/

5.下载phantomjs-2.1.1-linux-x86_64.tar.bz2,放到/tmp/phantomjs/目录下
head中不包含这个包,但又依赖这个包,且被墙,如果挂着科学上网,可以直接跳过这步,会自动下载,不然只能手动下载。或者用cnpm安装,可以不用手动放包。

这个包官网没法下载,下载到一半速度会降到0,可以去csdn下载,3个积分

推荐本站下载(下载完修改文件名为phantomjs-2.1.1-linux-x86_64.tar.bz2)http://119.45.158.221/upload/2020/08/phantomjs-2.1.1-linux-x86_64.tar-9002a7da3b80464292e82d99615c4b77.bz2

6.在elasticSearch-head目录下执行npm install

[root@localhost elasticsearch-head]# npm install

7.配置head文件
修改elasticsearch-head/_site/app.js文件

[root@localhost elasticsearch-head]# vim _site/app.js

搜索this.config.base_uri ||
找到这一行

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";

修改为自己的ip

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.195.132:9200";

修改elasticsearch-head/Gruntfile.js文件

[root@localhost elasticsearch-head]# vim Gruntfile.js

搜索port,在上面加上hostname: “0.0.0.0”,

connect: {
          server: {
                 options: {
                          hostname: "0.0.0.0",
                          port: 9100,
                          base: '.',
                          keepalive: true
                 }
          }
}

8.启动head插件

[root@localhost elasticsearch-head]# grunt server &
[1] 10752
[root@localhost elasticsearch-head]# Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

[root@localhost elasticsearch-head]# 

启动head后,关闭ssh,head就关闭的问题,可以在执行完grunt server &,再exit推出ssh。

9.访问服务
http://192.168.195.132:9100/
如果集群健康值为未连接,重启下es

安装过程中出现过的问题

jvm出现Cannot allocate memory问题

npm install报错:phantomjs-prebuilt@2.1.16 install: node install.js

安装其他版本

linux搭建elasticsearch2.2.1
linux搭建elasticsearch5.3.3