一、检查内核
uname -a
uname -m
二、下载版本
下载版本选择自己服务器相同的内核版本 我这边是aaech64
ES下载地址
Kibana 下载地址
二、上传服务器解压
tar -xvf elasticsearch-8.14.1-linux-aarch64.tar.gz
三、安装ES
因为ES不能用root用户启动先创建用户
#新增 es 用户
useradd es
#为 es 用户设置密码
passwd es
#如果错了,可以删除再加
userdel -r es
#/usr/local下创建es文件夹
mkdir es
#文件夹所有者
chown -R es:es /usr/local/es
修改相关配置
1、修改/usr/local/es/elasticsearch-8.14.1/config下elasticsearch.yml文件。
#编辑文件
vim /usr/local/es/elasticsearch-8.14.1/config/elasticsearch.yml
# 加入如下配置
cluster.name: elasticsearch
#数据存放路径
path.data: ./data
#日志存放路径
path.logs: /usr/local/es/elasticsearch-8.14.1/data/logs
node.name: node-1
#本机IP地址(设置可以访问的ip地址)
network.host: 0.0.0.0
#es暴露对外的端口
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
2、解决es强依赖jdk问题
由于es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行,报错如下:
注:如果Linux服务本来没有配置JDK,则会直接使用ES目录下默认的JDK,反而不会报错。如果Linux安装了JDK,不指定JDK会报错。
修改/usr/local/es/elasticsearch-8.14.1/bin下elasticsearch文件。
本人安装用的是ES的JDK,也可以把JDK换成Linux安装的目录
vim elasticsearch
############## 添加配置解决jdk版本问题 ##############
# 将jdk修改为es中自带jdk的配置目录 /usr/local/es/elasticsearch-8.14.1
export JAVA_HOME=/usr/local/es/elasticsearch-8.14.1/jdk
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/es/elasticsearch-8.14.1/jdk/bin/java"
else
JAVA=`which java`
fi
3、解决内存不足问题
内存不足报错如下图所示:
解决方法
修改/usr/local/es/elasticsearch-8.14.1/config/jvm.options
#默认配置如下:
#-Xms4g
#-Xmx4g
#默认的配置占用内存太多了,调小一些:
-Xms256m
-Xmx256m
使用free -h 命令,查看系统内容情况,根据需要对es的虚拟机的内存进行设置。
root@VM-0-5-ubuntu:/usr/local/es/elasticsearch-8.14.1/config# free -h
total used free shared buff/cache available
Mem: 7.3G 4.8G 1.1G 7.6M 1.3G 2.2G
Swap: 0B 0B 0B
4、解决vm.max_map_count [65530] is too low问题
设置最大内存的分配
修改/etc/sysctl.conf配置文件
#执行
vi /etc/sysctl.conf
#在文件末尾添加
# 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536
vm.max_map_count=655360
#保存并退出文档
:wq!
#再执行 重新加载
sysctl -p
#以上:将参数写到文件中并重新加载 这种方式可以永久保存参数修改/etc/sysctl.conf文件,然后sysctl -p 刷新到内存中。格式:sysctl -p [file] //如果没有指定file,则默认从/etc/sysctl中加载变量
5、修改文件创建数量
#执行:
vi /etc/security/limits.conf
#在文件末尾插入
es soft nofile 65536
es hard nofile 65536
6、后台启动ES
#后台启动
bin/elasticsearch -d
四、设置密码
1、修改配置文件 config/elasticsearch.yml,写入以下配置:
xpack.security.enabled: true
discovery.type: single-node
xpack.security.transport.ssl.enabled: true
2、设置密码
cd usr/local/es/elasticsearch-8.14.1/bin
./elasticsearch-setup-passwords interactive
下面是执行结果复制别人的
[root@iZ2vc772r7963jijk5rxjlZ bin]# ./elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
会为4个用户设置密码:
elastic, kibana, logstash_system,beats_system
其中:
elastic 账号:内置的超级用户,拥有 superuser 角色。
kibana 账号:用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引,不能访问 index。
以下命令将 elastic 密码修改为 “123456”:
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'
五、卸载ES
六、安装Kibana
待完成.....................................