配置文件 #
可以在每个 Easysearch 节点上找到 easysearch.yml , 通常为 Easysearch 安装目录下 config/easysearch.yml 。
警告 #
切勿将未受保护的节点暴露在公共互联网上!
常用网络设置: #
Easysearch 默认只绑定到 localhost。
对于生产环境的集群,需要配置基本的网络设置。
| 参数名称 | 属性 | 功能说明 | 默认值 | 生产环境示例 |
|---|---|---|---|---|
| network.host | 静态 | 节点绑定的主机名或 IP 地址。 | _local_ | 192.168.1.10 |
| network.bind_host | 静态 | 节点监听传入请求的具体地址。可以配置为外网地址(例如 0.0.0.0 监听所有接口)或其他特定的地址。 | 随 network.host | 0.0.0.0 |
| network.publish_host | 静态 | 节点间通信的通告地址。在多网卡或多网络环境中,应显式设置 network.publish_host。 | 随 network.host | 192.168.1.10 |
| http.port | 静态 | HTTP 请求的绑定端口。支持单个值或范围。指定范围时,节点将绑定到该范围内的第一个可用端口。 | 9200-9300 | 9200 |
| transport.port | 静态 | 节点间通信 (TCP) 端口。支持单个值或范围。指定范围时,节点将绑定到该范围内第一个可用端口。在所有具有主节点资格(master-eligible)的节点上,请将此项设置为单个值。 | 9300-9400 | 9300 |
| discovery.seed_hosts | 静态 | 提供集群中有资格成为主节点的节点地址列表。也可以是一个包含多个以逗号分隔的地址的字符串。每个地址的格式为 host:port 或 host。端口按顺序检查以下设置来确定: transport.profiles.default.port,transport.port,未设置时默认9300。 | ["127.0.0.1", "[::1]"]。 | ["10.0.0.1", "10.0.0.2"] |
| discovery.type | 静态 | 指定 Easysearch 是否应形成一个多节点集群。如果将 discovery.type 设置为 single-node,Easysearch 将形成一个单节点集群。 | zen (默认形成多节点集群,无需设置) | single-node |
| cluster.initial_master_nodes | 静态 | 设置新集群中初始的主节点候选节点列表。默认情况下,此列表为空,意味着该节点期望加入已经引导好的集群。在生产环境中首次启动新的 Easysearch 集群时,必须配置 cluster.initial_master_nodes,以明确哪些节点有资格参与主节点的选举。 当集群完成了首次主节点选举,集群已经正常运行时,就不再需要此设置了。这时应该从每个节点的配置中移除这项设置。 | [] 默认为空 | ["node-1", "node-2"] |
| node.roles | 静态 | 定义节点的角色。节点默认具有右侧列出的角色。如果设置了 node.roles,则节点只会被分配指定的角色。 | [master, data, ingest, remote_cluster_client] | ["data", "ingest"] |
分布式集群模式 #
以下配置适用于 Easysearch 的分布式集群模式,确保各节点可以发现彼此并组成一个集群,分布式模式建议 3 个独立的 Master 节点,配置如下:
cluster.name: easysearch
node.roles: [ "master" ]
network.host: 0.0.0.0
http.port: 19201
transport.port: 19301
discovery.seed_hosts: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
cluster.initial_master_nodes: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
数据节点配置如下:
cluster.name: easysearch
node.roles: [ "data" ]
network.host: 0.0.0.0
http.port: 19200
transport.port: 19300
discovery.seed_hosts: ["192.168.101.5:19301", "192.168.101.6:19302", "192.168.101.7:19303"]
Master 使用 3 个就够了,数据节点可以根据动态增加。
单节点服务模式 #
如果希望单个 Easysearch 节点模拟集群,能监听所有网卡并提供对外服务供其他主机访问,也就是单节点模式,可以使用以下配置:
cluster.name: easysearch
network.host: 0.0.0.0
http.port: 13200
transport.port: 13300
cluster.initial_master_nodes: ["localhost:13300"]
了解更多,请查看 搭建集群