Elasticsearch 是一个强大的开源搜索和分析引擎,它允许用户快速地存储、搜索和分析大量数据。Elasticsearch 的配置文件是设置和调整其行为的关键部分。这些配置文件包括 elasticsearch.yml、jvm.options 和 log4j2.properties,通常位于 Elasticsearch 的 config 目录下。
elasticsearch.yml 配置文件
elasticsearch.yml 是 Elasticsearch 的主配置文件,用于配置 Elasticsearch 本身的各种参数。这个文件包含了一系列的设置项,例如集群名称 (cluster.name)、节点名称 (node.name)、数据和日志路径 (path.data 和 path.logs)、网络设置 (network.host)、HTTP 和 TCP 端口 (http.port 和 transport.tcp.port) 等。
基础参数设置
数据和日志目录:可以自定义数据和日志的存储位置,以便更好地管理和优化性能。
内存锁定:通过 bootstrap.memory_lock 参数,可以锁定物理内存,防止 Elasticsearch 使用交换分区,从而提高性能。
跨域设置:通过 http.cors.enabled 和 http.cors.allow-origin 参数,可以配置跨域访问的权限。
集群和节点设置
集群名称:定义集群的名称,确保集群中所有节点的集群名称一致。
节点名称:为集群中的每个节点指定一个唯一的名称。
主节点资格:通过 node.master 参数,可以控制节点是否有资格成为主节点。
安全性和认证
X-Pack 安全认证:Elasticsearch 提供了 X-Pack 安全认证功能,可以通过 xpack.security.enabled 参数启用或禁用安全验证功能。
jvm.options 配置文件
jvm.options 文件用于配置 Elasticsearch 所依赖的 JVM(Java Virtual Machine)的设置。这包括设置 JVM 的初始和最大堆大小 (-Xms 和 -Xmx)、垃圾收集器选项 (-XX:+UseConcMarkSweepGC) 和其他 JVM 性能相关的参数。
JVM 参数设置
堆内存大小:通过 -Xms 和 -Xmx 参数,可以控制 JVM 的堆内存使用量。
垃圾收集器:可以指定使用特定的垃圾收集器,例如 G1 垃圾收集器 (-XX:+UseG1GC)。
log4j2.properties 配置文件
log4j2.properties 文件用于配置 Elasticsearch 的日志记录属性。这包括日志的输出格式、滚动策略和删除策略。
日志配置
日志输出路径:可以指定日志文件的输出路径和格式。
日志滚动策略:可以设置基于时间或文件大小的日志滚动策略。
日志删除策略:可以配置在特定条件下自动删除旧的日志文件。
调试和错误处理
在配置和使用 Elasticsearch 时,可能会遇到各种调试和错误处理的情况。例如,可能需要调整默认的虚拟内存大小或文件描述符大小,处理 UUID 不一致的问题,或解决客户端不信任证书的问题。
调试报错积累
虚拟内存大小:系统的虚拟内存映射数可能需要调整以满足 Elasticsearch 的要求。
文件描述符大小:Elasticsearch 需要的最小文件描述符值可能大于系统默认值,需要进行调整。