配置文件
# ---------------------------------- Cluster ----------------------------------- cluster.name: my-cluster # 集群的名称 node.name: node-1 # 节点的名称 node.master: true # 是否允许节点成为主节点(默认为 true) node.data: true # 是否允许节点存储数据(默认为 true) # ----------------------------------- Paths ------------------------------------ path.data: /path/to/data # 数据文件的存储路径 path.logs: /path/to/logs # 日志文件的存储路径 # ---------------------------------- Network ----------------------------------- network.host: 0.0.0.0 # 监听的网络接口地址(默认为 0.0.0.0,即监听所有接口) http.port: 9200 # HTTP 通信使用的端口号(默认为 9200) transport.tcp.port: 9300 # 节点间通信使用的 TCP 端口号(默认为 9300) # --------------------------------- Discovery ---------------------------------- discovery.seed_hosts: [ "host1", "host2" ] # 发现初始主机节点的地址列表,用于集群自动发现 cluster.initial_master_nodes: [ "node-1", "node-2" ] # 初始主节点列表,用于集群自动发现 # ---------------------------------- Gateway ----------------------------------- gateway.recover_after_nodes: 3 # 节点数达到指定数量后,才开始恢复数据(默认为 3) gateway.expected_nodes: 5 # 预期的节点数量,用于恢复数据(默认为 5) # ---------------------------------- Memory ------------------------------------ bootstrap.memory_lock: true # 是否锁定 Elasticsearch 进程的内存(需要设置文件系统权限) # ---------------------------------- Various ----------------------------------- action.destructive_requires_name: true # 在执行危险操作(如删除索引)时,需要显式指定操作名称(默认为 true) # ---------------------------------- Security ---------------------------------- xpack.security.enabled: true # 是否启用 X-Pack 安全功能(默认为 false) xpack.security.authc.api_key.enabled: true # 是否启用 API 密钥认证(默认为 false) # ---------------------------------- Logging ---------------------------------- logger.org.elasticsearch.transport: debug # 日志级别设置(可选:trace, debug, info, warn, error, fatal)
cluster.name
cluster.name
是 Elasticsearch 配置文件中的一个重要选项,用于指定集群的名称。每个运行的 Elasticsearch 实例都必须具有相同的集群名称才能加入同一个集群。
cluster.name: my-cluster
cluster.name
是一个自定义的字符串,用于标识一个 Elasticsearch 集群。集群名称可以是任何合法的字符串,但最好选择一个具有描述性的名称,以便在多个集群之间区分。- 所有想要加入同一个集群的 Elasticsearch 节点都必须设置相同的
cluster.name
值。这样,它们才能相互发现并协同工作,共享数据和状态。 - 如果您在配置文件中更改了
cluster.name
选项的值,需要确保所有节点都使用相同的集群名称,并重新启动它们才能生效。 - 默认情况下,Elasticsearch 的集群名称为"elasticsearch"。但为了避免与其他集群发生冲突,建议将
cluster.name
设置为唯一的名称。 - 集群名称是 Elasticsearch 集群的重要标识,它还用于在集群中的节点之间进行发现、通信和协调。
确保在配置 Elasticsearch 集群时,将所有节点的cluster.name
选项设置为相同的值,以确保它们能够正常加入同一个集群并协同工作。
node.name
node.name
是 Elasticsearch 配置文件中的一个选项,用于指定节点的名称。每个运行的 Elasticsearch 节点都应该具有唯一的名称,以便在集群中进行识别和通信。
node.name: node-1
node.name
是一个自定义的字符串,用于标识一个 Elasticsearch 节点。节点名称可以是任何合法的字符串,但最好选择一个具有描述性的名称,以便在集群中识别和管理节点。- 每个 Elasticsearch 节点都应该具有唯一的
node.name
值,以避免与其他节点发生冲突。 - 节点名称对于集群中的节点之间的发现、通信和协调非常重要。节点名称用于在集群中识别和标识特定的节点。
- 如果您在配置文件中更改了
node.name
选项的值,需要确保每个节点都使用唯一的名称,并重新启动它们才能生效。 - 默认情况下,如果没有显式设置
node.name
选项,Elasticsearch 会自动生成一个随机的节点名称。
在配置 Elasticsearch 节点时,确保为每个节点设置唯一的node.name
值,以便在集群中正确识别和管理节点。这将有助于确保节点之间的正常通信和协作。
node.master: true
node.master
是 Elasticsearch 配置文件中的一个选项,用于指定节点是否可以成为主节点。主节点负责集群中的元数据管理和协调工作。
node.master: true
node.master
是一个布尔值选项,用于指定节点是否可以成为主节点。默认情况下,它的值为true
,表示节点可以担任主节点的角色。- 主节点负责集群级别的操作,如创建或删除索引、分配分片、维护节点拓扑结构等。通常情况下,一个集群中只有少数几个节点会被选为主节点。
- 如果您有多个节点运行在同一个集群中,并希望将某些节点排除在主节点的角色之外,可以将
node.master
选项设置为false
。 - 在配置节点时,根据集群的规模和需求,需要仔细选择主节点的数量和分布。通常建议在较大的集群中选择多个主节点,以提高冗余性和可用性。
- 如果集群中的主节点失败或不可用,Elasticsearch 会自动从剩余的节点中选举新的主节点。
确保在配置节点时,根据集群的需求和规模,正确设置node.master
选项,以确保主节点的角色分配和集群的正常运行。
node.data: true
node.data
是 Elasticsearch 配置文件中的一个选项,用于指定节点是否可以存储数据。数据节点负责存储和处理索引数据。
node.data: true
node.data
是一个布尔值选项,用于指定节点是否可以存储数据。默认情况下,它的值为true
,表示节点可以作为数据节点。- 数据节点负责存储索引的分片数据和执行与索引数据相关的操作,如索引和搜索。在一个 Elasticsearch 集群中,可以有多个数据节点来分担数据的存储和处理负载。
- 如果您希望某个节点只负责协调和管理集群,并不存储任何数据,则可以将
node.data
选项设置为false
。 - 在配置节点时,根据集群的需求和规模,需要仔细考虑数据节点的数量和分布。通常建议在大型集群中选择多个数据节点,以实现数据的冗余和高可用性。
- 数据节点会自动接收和管理分配给它们的分片,并与其他数据节点进行数据同步和复制,以确保数据的可靠性和一致性。
确保在配置节点时,根据集群的需求和规模,正确设置node.data
选项,以确保数据节点的角色分配和集群的正常运行。
path.data: /path/to/data
path.data
是 Elasticsearch 配置文件中的一个选项,用于指定数据文件的存储路径。
以下是对path.data
选项的详细解释:
path.data: /path/to/data
path.data
用于指定 Elasticsearch 存储索引数据的路径。这个路径可以是一个本地文件系统的目录,也可以是一个挂载的网络文件系统(NFS)路径。- 在配置文件中,将
/path/to/data
替换为实际的数据存储路径。 - 默认情况下,Elasticsearch 会在启动时自动创建一个名为
data
的子目录,并在该目录下存储索引数据。 - 如果您希望将索引数据存储在不同的位置,可以使用
path.data
选项来指定自定义的数据存储路径。确保目录具有适当的权限,以便 Elasticsearch 进程可以读取和写入数据。 - 如果您有多个数据节点运行在同一个集群中,那么所有数据节点的
path.data
配置应该指向相同的目录,以确保数据的共享和一致性。 - 对于高可用性和数据冗余,建议将数据存储在多个独立的磁盘驱动器上,以避免单点故障。
确保在配置 Elasticsearch 节点时,正确设置path.data
选项,以指定数据文件的存储路径,并确保路径的可用性和适当的权限设置。
path.logs: /path/to/logs
path.logs
是 Elasticsearch 配置文件中的一个选项,用于指定日志文件的存储路径。
以下是对path.logs
选项的详细解释:
path.logs: /path/to/logs
path.logs
用于指定 Elasticsearch 存储日志文件的路径。这个路径可以是一个本地文件系统的目录,也可以是一个挂载的网络文件系统(NFS)路径。- 在配置文件中,将
/path/to/logs
替换为实际的日志文件存储路径。 - 默认情况下,Elasticsearch 会在启动时自动创建一个名为
logs
的子目录,并在该目录下存储日志文件。 - 如果您希望将日志文件存储在不同的位置,可以使用
path.logs
选项来指定自定义的日志文件存储路径。确保目录具有适当的权限,以便 Elasticsearch 进程可以写入日志文件。 - 日志文件包含了 Elasticsearch 的运行日志、错误日志和其他日志信息,对于故障排除和监控非常重要。
- 确保为日志存储路径选择一个具有足够的磁盘空间和适当的文件系统性能的位置。
确保在配置 Elasticsearch 节点时,正确设置path.logs
选项,以指定日志文件的存储路径,并确保路径的可用性和适当的权限设置。
network.host
network.host
是 Elasticsearch 配置文件中的一个选项,用于指定 Elasticsearch 监听的网络接口地址。
以下是对network.host
选项的详细解释:
network.host: 192.168.0.1
network.host
用于指定 Elasticsearch 监听的网络接口地址。可以使用具体的 IP 地址或主机名来指定要监听的网络接口。- 默认情况下,
network.host
的值是localhost
,表示 Elasticsearch 只监听本地回环接口(127.0.0.1
),即只允许本地访问。 - 要使 Elasticsearch 对外可见并允许来自其他主机或网络的访问,可以将
network.host
设置为具体的 IP 地址或主机名。 - 可以指定一个具体的 IP 地址(如
192.168.0.1
)来监听特定的网络接口。也可以使用通配符地址(如0.0.0.0
)来监听所有可用的网络接口。 - 如果您的服务器有多个网络接口(如多个网卡),可以根据需求选择要监听的特定接口。
- 使用
network.host
选项时,需要注意安全性和访问控制,确保只允许受信任的主机或网络访问 Elasticsearch。
确保在配置 Elasticsearch 节点时,根据实际需求、网络环境和安全考虑,正确设置network.host
选项,以指定 Elasticsearch 监听的网络接口地址。
http.port
http.port
是 Elasticsearch 配置文件中的一个选项,用于指定 Elasticsearch HTTP 通信所使用的端口号。
以下是对http.port
选项的详细解释:
http.port: 9200
http.port
用于指定 Elasticsearch 监听的 HTTP 通信端口号。默认情况下,它的值是9200
。- 当客户端通过 HTTP 协议与 Elasticsearch 进行通信时,使用的是
http.port
指定的端口号。 - 如果您希望在访问 Elasticsearch 时使用不同的端口号,可以修改
http.port
的值为所需的端口号。 - 请确保所选的端口号在您的环境中是未被使用的,并且没有防火墙或其他网络设备阻止与该端口的通信。
- 如果您有多个 Elasticsearch 节点运行在同一个集群中,每个节点都应该使用不同的
http.port
来避免端口冲突。
确保在配置 Elasticsearch 节点时,根据实际需求和网络环境,正确设置http.port
选项,以指定 Elasticsearch HTTP 通信所使用的端口号。
transport.tcp.port
transport.tcp.port
是 Elasticsearch 配置文件中的一个选项,用于指定 Elasticsearch 节点间通信所使用的 TCP 端口号。
以下是对transport.tcp.port
选项的详细解释:
transport.tcp.port: 9300
transport.tcp.port
用于指定 Elasticsearch 节点间通信所使用的 TCP 端口号。默认情况下,它的值是9300
。- 当 Elasticsearch 节点之间进行通信时,使用的是
transport.tcp.port
指定的端口号。节点间的通信主要用于数据复制、协调和集群管理等操作。 - 如果您希望在访问 Elasticsearch 节点间通信时使用不同的端口号,可以修改
transport.tcp.port
的值为所需的端口号。 - 请确保所选的端口号在您的环境中是未被使用的,并且没有防火墙或其他网络设备阻止与该端口的通信。
- 如果您有多个 Elasticsearch 节点运行在同一个集群中,每个节点都应该使用不同的
transport.tcp.port
来避免端口冲突。 - 默认情况下,客户端与 Elasticsearch 节点之间的通信应该使用 HTTP 协议,而不是直接通过
transport.tcp.port
进行通信。
确保在配置 Elasticsearch 节点时,根据实际需求和网络环境,正确设置transport.tcp.port
选项,以指定 Elasticsearch 节点间通信所使用的 TCP 端口号。