【安装前相关了解】:
①、x-pack适用于6.2.x或更早版本 6.3版本及更高版本中, x-pack 包含在 Elastic Stack 的默认发行版中,不需要额外安装
②、es 7.0版本及更高版本,需要jdk11
③、目前使用的是es 6.8.23版本,jdk 8 且无需额外安装x-pack
④、从 Elastic Stack 6.8 和 7.1 版本开始,Elasticsearch 的核心安全功能(TLS 加密、原生和基于文件的身份验证,以及基于角色的访问控制)将会免费提供,并且包含在默认安装包中
1、部署es之前系统需要先安装java(jdk8)
①、目前使用的是es 6.8.23版本,支持jdk 8 ,按照Linux中jdk的步骤进行安装即可;
②、对于centos系统无需对/usr/local/java目录进行授权;
而对于Ubuntu系统中进行测试时发现,需要对/usr/local/java授权 777,如下:(也可后期继续专门测试是否真的需要授权777)
root@ubuntu:/# chmod 777 /usr/local/java
2、下载安装包:以6.8.23版本为例(也可Windows下载tar包复制在部署路径)
root@ubuntu:/home# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.23.tar.gz
3、将tar.gz包移动到/opt目录下,并进行解压缩
root@ubuntu:~# sudo mv elasticsearch-6.8.23.tar.gz /opt
root@ubuntu:/opt# tar -zxvf elasticsearch-6.8.23.tar.gz
4、修改配置文件config/elasticsearch.yml
root@ubuntu:/opt# cd elasticsearch-6.8.23/config/
root@ubuntu:/opt/elasticsearch-6.8.23/config# cp elasticsearch.yml elasticsearch.yml_bak220325
root@ubuntu:/opt/elasticsearch-6.8.23/config# vim elasticsearch.yml
修改内容如下(单机es):
root@ubuntu:/opt/elasticsearch-6.8.23/config# more elasticsearch.yml|grep -v '#'|grep -v '^$'
cluster.name: my-application #集群名
node.name: node-1 #节点名称
path.data: /opt/es/data #数据存储路径
path.logs: /opt/es/logs #日志存储路径
network.host: 192.168.154.129 #本机IP,也可以写0.0.0.0
http.port: 9200 #访问端口
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9200"] #通信地址
#cluster.initial_master_nodes: ["node-1"] #master节点名称
#http.cors.enabled: true #是否支持跨域,默认为false
#http.cors.allow-origin: "*" #当设置允许跨域,默认为*,表示支持所有域名
#【注意】以下三行配置为es账号进行web登录密码的xpack配置,若web未设置账号登录密码可以注释掉
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
root@ubuntu:/opt/elasticsearch-6.8.23/config#
备注:
#上面配置文件中如下述三个配置是网上找到资料有(7.2.0版本),实际配置中并没有该三项配置,最后未配置也可运行。
cluster.initial_master_nodes: ["node-1"] #master节点名称
http.cors.enabled: true #是否支持跨域,默认为false
http.cors.allow-origin: "*" #当设置允许跨域,默认为*,表示支持所有域名
5、创建账号和相关目录文件夹及权限
root@ubuntu:/# mkdir -p /opt/es/data #创建data目录
root@ubuntu:/# mkdir -p /opt/es/logs #创建log目录
root@ubuntu:/# useradd es #创建es用户,也可是其他名称用户
root@ubuntu:/# passwd es #设置log密码,centos系统可使用如下语句修改
New password:
Retype new password:
passwd: password updated successfully
#centos系统可使用如下语句修改(Ubuntu无法使用):echo 123456|passwd --stdin es
root@ubuntu:/# chown -R es:es /opt/elasticsearch-6.8.23
root@ubuntu:/# chown -R es:es /opt/es/
6、分配系统资源
root@ubuntu:/# vim /etc/security/limits.conf
#在limits.conf末尾追加以下内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
vim /etc/sysctl.conf
#在sysctl.conf末尾追加以下内容:
vm.max_map_count=655360
7、刷新加载系统参数
root@ubuntu:/# sysctl -p #从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
8、启动es
系统需要使用es账号登录启动(不能使用root账号启动,否则会报错)
【法1】:直接bin/elasticsearch
root@ubuntu:/opt/elasticsearch-6.8.23/bin# su es
$ ./opt/elasticsearch-6.8.23/bin/elasticsearch -d #-d是让程序后台运行,否则Ctrl+C退出后,elasticsearch会退出
①、创建es-start.sh脚本编辑如下内容,(需要对其中的有关参数进行修改,( ー̀ωー́ )⊃⌒修改哪些你懂得)
#/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_301
export JRE_HOME=/usr/java/jdk1.8.0_301/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#以上四行export开头关于java的配置,在centos中执行该脚本无问题
#而Ubuntu中执行会报错could not find java; set JAVA_HOME,需将以上4行注释掉再执行
esid=$(ps -ef | grep elasticsearch | grep -v "grep" | awk '{print $2}')
if [ ! $esid ];then
/bin/bash /opt/elasticsearch-6.8.23/bin/elasticsearch -d && echo "|--$(date)-es启动成功--|" >> /opt/es/es-start.log
else
echo "|--$(date)--es运行中--pid:$esid--|"
fi
该脚本放在/opt/es路径下,若脚本所有者非es用户则需对权限进行修改
chown -R es:es /opt/es/
②、创建crontab定时任务(以es用户执行)
root@ubuntu:/opt/es# crontab -u es -e
在crontab中追加以下内容:
#每天每隔10分钟执行一次
#系统重启时启动
#分 时 天 月 星期
*/10 * * * * /home/es/es-start.sh
@reboot /opt/es/es-start.sh
9、验证是否启动成功,如下则启动成功:http://127.0.0.1:9200/
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "ykNgYptiRiC6KdQNxCcTHA",
"version" : {
"number" : "6.8.23",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "4f67856",
"build_date" : "2022-01-06T21:30:50.087716Z",
"build_snapshot" : false,
"lucene_version" : "7.7.3",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
========================================================================