elassticsearch8.x基础配置

2025-05-06 21:46

ES基础

ES基础配置

**cluster.name:**集群名称,节点根据集群名称确定是否是同一个集群。默认名称为elasticsearch,但应将其更改为描述集群用途的适当名称。不在不同的环境中重用相同的集群名称。否则,节点可能会加入错误的集群

**node.name:**节点名称,集群内唯一,默认为主机名。,但可以在配置文件中显式配置

**network.host:**节点对外提供服务的地址以及集群内通信的ip地址,例如127.0.0.1和[:1]。

**http.port:**对外提供服务的端口号,默认9200

**transport.port:**节点通信端口号,默认9300

基于Elasticsearch 8.15版本的elasticsearch.yml

# 集群名称,确保不同环境下的集群不会因为名称相同而意外加入
cluster.name: my-es-cluster

# 节点名称,建议设置为有意义的名称,以便于集群管理
node.name: node-1

# 节点角色,可以指定节点是数据节点、主节点还是协调节点
node.roles: [data, master, remote_cluster_client]

# 网络设置,指定节点绑定的IP地址和端口
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300

# 发现设置,用于节点发现和集群形成
discovery.seed_hosts: ["127.0.0.1:9300", "localhost:9300"]
cluster.initial_master_nodes: ["node-1"]

# 路径设置,指定数据和日志的存储路径
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

# 内存设置,确保JVM不进行内存交换,提高性能
bootstrap.memory_lock: true

# JVM堆内存设置,建议不超过物理内存的50%
# 根据服务器实际情况调整,不要超过物理内存的50%
# 生产环境中,JVM堆内存大小通常设置为31.5G以下
# -Xms 和 -Xmx 设置为相同的值,以避免JVM堆内存大小调整带来的性能影响
#heap size defaults to 1/2 ram but no more than 31.5g
#-Xms2g
#-Xmx2g
# Elasticsearch also allows you to set heap size using the ES_HEAP_SIZE
# environment variable, but that is NOT recommended.
#java opts
#-Xms2g
#-Xmx2g

# 其他设置,如线程池和索引缓冲区大小
#indices.memory.index_buffer_size: 10%

# X-Pack安全设置,启用或禁用安全功能
xpack.security.enabled: true

# X-Pack监控设置,启用或禁用监控功能
#xpack.monitoring.collection.enabled: true

# X-Pack快照和恢复设置
#xpack.snapshot.repositories: ["my_backup"]

# 额外的设置,如自定义日志级别
#logging.level: info

# 这个配置文件包含了Elasticsearch的基本配置项
# 更多的配置项和详细说明可以在Elasticsearch官方文档中找到

​ 在修改配置文件后,需要重新启动Elasticsearch服务以使配置生效。此外,Elasticsearch的配置文件可能包含敏感信息,因此应该确保配置文件的安全性和适当的权限设置。

开发模式和生产模式

开发模式: 开发模式是默认配置(未配置集群发现设置),如果用户只是出于学习目的,而引导检查会把很多用户挡在门外,所以ES提供了一个设置项discovery, type=single-node。此项配置为指定节点为单节点发现以绕过引导检查。

​ **生产模式:**当用户修改了有关集群的相关配置会触发生产模式,在生产模式下,服务启动会触发ES的引导检查或者叫启动检査(bootstrap checks),所谓引导检査就是在服务启动之前对一些重要的配置项进行检查,检査其配置值是否是合理的。引导检查包括对JVM大小、内存锁、虚拟内存、最大线程数、集群发现相关配置等相关的检查,如果某一项或者几项的配置不合理,ES会拒绝启动服务,并且在开发模式下的某些警告信息会升级成错误信息输出。引导检查十分严格,之所以宁可拒绝服务也要阻止用户启动服务是为了防止用户在对ES的基本使用不了解的前提下启劢服务而导致的后期性能问题无法解决或者解决起来很麻烦。因为一旦服务以某种不合理的配置启动,时间久了之后可能会产生较大的性能问题,但此时集群已经变得难以维护和扩展,ES为了避免这种情况而做出了引导检查的设置,本来在开发模式下为警告的启动日志会升级为报错(Error)。这种设定虽然增加了用户的使用门槛,但是避免了日后产生更大的问题。

服务的安装和启动(基于Security开启)

注意

​ ES8默认启动Security,这对新手学习很不友好,实际上违背了Elastic官方设置开发模式的初衷,安全固然重要,但是没必要把门槛设置这么高,建议官方在后续更新中,把Security在开发模式中默认关闭,在生产模式下,默认开启。这样更加合理。

创建ES服务账号

	ES不允许使用 root 账号启动服务,如果你当前账号是 root ,则需要创建一个专有账户(以下命令均在root账户下执行,windows系统在power shell下执行)。

单节点集群

启动命令


Windows

MacOS

Linux

命令行

# cd elasticsearch\bin

# cd elasticsearch/bin

# cd elasticsearch/bin & ./elasticsearch -d

命令行

# .\elasticsearch -d

# ./elasticsearch -d

--

图形界面

在bin目录下双击elasticsearch.bat

在bin目录下双击elasticsearch

--

Shell

start \bin\elasticsearch.bat

open bin/elasticsearch

--

启动日志

​ ES在7.x版本时,控制台输出started时代表服务启动成功,和7.x版本不同,

​ ES 8.x启动之后会输出以下信息,此时服务已经启动成功了。

image.png

首次启动Elasticsearch时,会自动进行以下安全配置:

​ 为传输层和HTTP层生成TLS证书和密钥。

​ TLS配置设置被写入elasticsearch.yml。

​ 为elastic用户生成密码。

​ 为Kibana生成一个注册令牌。

关闭 Security

开发环境修改器配置文件使其关闭 Security。打开 Config 目录,修改 elasticsearch.yml 文件,删除文件内所有内容,配置以下信息:

xpack.security.enabled: false

生产环境一定需要打开该配置项

注意:

elasticsearch8.15 需要采用以下命令设置

./elasticsearch-setup-passwords  interactive #设置用户密码
elasticsearch-reset-password -u elastic  #重置用户密码
elasticsearch-reset-password -u kibana_system

image.png

http://127.0.0.1:9200/

image.png

基于Security默认开启:搭建本地3个节点集群

首先在当前节点执行

将xpack.security.enrollment.enabled设置true

执行以下命令

elasticsearch-create-enrollment-token -s node
elasticsearch --enrollment-token <token> //以生成的注册令牌进行启动

查看加入节点:https://127.0.0.1:9200/_cat/nodes/v

相关新闻
热点
视频
投票
查看结果
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量:

© 2025 个人网站 版权所有

备案号:苏ICP备2024108837号

苏公网安备32011302322151号