Linux安装elasticsearch单机版

时间:2024-07-08 14:37:54

一、检查内核

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

待完成.....................................