By: suking @ 2020-12-14
下载JDK11(官方推荐)
ES7要求JDK版本8+,未来要求11+
如果系统中使用了JDK8,配置完成后,启动ES的时候会提示,
future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/nlp/java/jdk1.8.0_162/jre] does not meet this requirement
所以,这里推荐使用JDK11。
如果服务器中必须要用JDK8或其他版本,可以通过修改配置文件,使ES可以单独使用JDK11。
配置方法如下(使用ES自带的JDK):
#进入ES的bin目录
vi /usr/local/software/elasticsearch-7.10.1/bin/elasticsearch
#配置为指定的JDK
export JAVA_HOME=/usr/local/software/elasticsearch-7.10.1/jdk
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/software/elasticsearch-7.10.1/jdk/bin/java"
else
JAVA=`which java`
fi
mkdir /usr/local/software/
cd /usr/local/software/
方式一:下载安装文件到本地,然后传到Linux服务器上。下载地址
方式二:在服务器上直接下载。
cd /root/
wget http://117.78.24.34/elasticsearch-7.10.1-linux-x86_64.tar.gz?fid=fFFDdNwWA8jOUq*hy3TMh214dQt9hQATAAAAABAMf8o2lgHYi2MbegjqnqFDInR8&mid=666&threshold=150&tid=CAD91DF3C8418FFC7003DEE194647E42&srcid=119&verno=1
cd /usr/local/software
tar -zxvf /root/elasticsearch-7.10.1 -C /usr/local/software
# 1、创建新的用户
adduser elasticsearch
# 2、设置用户密码
passwd elasticsearch
# 3、授权给新建用户es文件夹的权限
chown -R elasticsearch /usr/local/software/elasticsearch-7.10.1
# 4、切换用户
su elasticsearch
本例为单节点模式
cd /usr/local/software/elasticsearch-7.10.1/config
vi elasticsearch.yml
a、集群名称,需确保不同的环境中集群的名称不重复,否则节点可能会连接到错误的集群上
cluster.name: suking-es-app
b、节点名称,默认情况下当节点启动时Elasticsearch将随机在一份3000个名字的列表中随机指定一个。如果机器上只允许运行一个集群Elasticsearch节点,可以用${HOSTNAME}设置节点的名称为主机节点。节点默认名称为机器的主机名。
node.name: node-sk-1
c、网络设置,绑定服务到指定IP(提供服务的网口)
network.host: 192.168.188.80
http.port: 9200
d、集群主节点信息
cluster.initial_master_nodes: [“node-sk-1”]
Elasticsearch mmapfs默认使用目录来存储其索引。默认的操作系统对mmap计数的限制可能太低,这可能会导致内存不足异常。
vi /etc/sysctl.conf
sysctl -p #执行命令sysctl -p生效
vm.max_map_count=262144
切换到root用户
#查看硬限制
ulimit -Hn
ulimit -Sn
通常情况下如果值是4096启动ES时会报如下错误
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改配置文件
vi /etc/security/limits.conf
sysctl -p
添加如下内容
es_starter hard nofile 65537
es_starter soft nofile 65536
上面两行语句表示,es_starter 用户的软限制为65536,硬限制为65536,即表示es_starter 用户不管它开启多少个shell能打开的最大文件数量为65536。
其中 es_starter 表示启动ElasticSearch的用户。
在设定上,通常soft会比hard小,举例来说,sofr可以设定为80,而hard设定为100,那么你可以使用到90(因为没有超过100),但介于80~100之间时,系统会有警告信息。
修改了limits.conf,不需要重启,重新登录即生效。
注意:启动需要使用专门用户,本例启动es的用户为 “elasticsearch”,如果使用root启动会报错,会生成一些只有root用户才能操作的文件,这会导致即使正确启动仍然会报错。
解决方法是将这些root用户才能操作的文件改为elasticsearch可操作。
#使用elasticsearch用户
su elasticsearch
#进入ES启动脚本目录
cd /usr/local/software/elasticsearch-7.10.1/bin
#启动ES, -d参数是为了让ES服务在后台运行
./elasticsearch -d
#查看防火墙状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#查看当前firewall状态
firewall-cmd --state
#重启firewall
firewall-cmd --reload
#禁止开机启动
systemctl disable firewalld.service
#查看打开的端口
firewall-cmd --list-ports
#打开9200端口
firewall-cmd --zone=public --add-port=9200/tcp --permanent
防火墙可以通过打开9200端口或者关闭防火墙,让外部客户端可以访问。
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
设置完毕后需要重启防火墙。
通过如下命令或通过浏览器打开http://192.168.1.102:9200
curl http://192.168.1.102:9200
返回结果:
{
"name" : "node-sk-1",
"cluster_name" : "suking-es-app",
"cluster_uuid" : "L-r50kboQhW8tSWmufF2Xw",
"version" : {
"number" : "7.10.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date" : "2020-12-05T01:00:33.671820Z",
"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"
}
ES关闭使用 kill指令
#查询ES的进程信息,获取进程ID
ps -ef | grep elasticsearch
#杀掉ES进程
kill -9 1234 #1234为ES的进程ID
拷贝安装包到服务器的 /root/目录, 解压到/usr/local/software/
tar -zxvf /root/kibana-7.10.1-linux-x86_64.tar.gz -C /usr/local/software/
#进入kibana配置文件目录
cd /usr/local/software/kibana-7.10.1/config
#编辑配置文件kibana.yml
vi kibana.yml
服务端口
server.port: 5601
服务IP地址
server.host: “0.0.0.0”
服务名称
server.name: “my_kibana”
ElasticSearch实例地址
elasticsearch.hosts: [“http://127.0.0.1:9200”]
打开5601端口,重启防火墙
#打开9200端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
#重启防火墙
firewall-cmd --reload
#切换到elasticsearch用户
su elasticsearch
#启动Kibana
nohup /usr/local/software/kibana-7.10.1/bin/kibana &