--- title: "节点名称配置" date: 2026-02-25 lastmod: 2026-02-25 description: "定义 Easysearch 节点名称的配置项说明" tags: ["节点配置", "集群管理", "基础配置"] summary: "配置项作用 # node.name 配置项定义 Easysearch 节点的名称,用于在集群中唯一标识每个节点。节点名称出现在日志、监控和管理界面中,便于识别和管理节点。 配置项类型 # 该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。 默认值 # 机器名的主机名前 8 个字符 + 随机字符 例如:node-1、es-prod-abc123 等 是否必需 # 可选配置项(但强烈建议为每个节点设置明确的名称) 命名规则 # 集群内唯一:同一集群内节点名称必须唯一 可读性强:建议使用有意义、易于识别的名称 避免特殊字符:使用字母、数字、连字符和下划线 长度限制:建议不超过 50 个字符 使用示例 # # 简单命名 node.name: node-1 # 按角色命名 node.name: data-node-1 node.name: master-node-1 node.name: coordinating-node-1 # 按位置命名 node.name: es-prod-dc1-rack1-node1 node.name: es-prod-dc2-rack2-node1 # 按环境命名 node.name: es-dev-node1 node.name: es-test-node1 node.name: es-prod-node1 # 描述性命名 node.name: easysearch-prod-data-01 推荐命名规范 # 1." --- ## 配置项作用 `node.name` 配置项定义 Easysearch 节点的名称,用于在集群中唯一标识每个节点。节点名称出现在日志、监控和管理界面中,便于识别和管理节点。 ## 配置项类型 该配置项为**静态配置**,需要在启动时设置,修改后需要重启节点才能生效。 ## 默认值 ``` 机器名的主机名前 8 个字符 + 随机字符 ``` 例如:`node-1`、`es-prod-abc123` 等 ## 是否必需 **可选配置项**(但强烈建议为每个节点设置明确的名称) ## 命名规则 1. **集群内唯一**:同一集群内节点名称必须唯一 2. **可读性强**:建议使用有意义、易于识别的名称 3. **避免特殊字符**:使用字母、数字、连字符和下划线 4. **长度限制**:建议不超过 50 个字符 ## 使用示例 ```yaml # 简单命名 node.name: node-1 # 按角色命名 node.name: data-node-1 node.name: master-node-1 node.name: coordinating-node-1 # 按位置命名 node.name: es-prod-dc1-rack1-node1 node.name: es-prod-dc2-rack2-node1 # 按环境命名 node.name: es-dev-node1 node.name: es-test-node1 node.name: es-prod-node1 # 描述性命名 node.name: easysearch-prod-data-01 ``` ## 推荐命名规范 ### 1. 简单数字命名 适用于小型集群: ```yaml # 集群中的三个节点 node.name: node-1 node.name: node-2 node.name: node-3 ``` ### 2. 角色+数字命名 适用于有明确角色分工的集群: ```yaml # 数据节点 node.name: data-01 node.name: data-02 node.name: data-03 # 主节点 node.name: master-01 node.name: master-02 node.name: master-03 # 协调节点 node.name: coord-01 node.name: coord-02 ``` ### 3. 环境+位置+角色命名 适用于大型生产集群: ```yaml # 格式:{服务}-{环境}-{数据中心}-{机架}-{角色}-{序号} node.name: es-prod-dc1-r1-data-01 node.name: es-prod-dc1-r1-data-02 node.name: es-prod-dc2-r1-data-01 ``` ## 实际部署示例 ### 开发环境 ```yaml cluster.name: dev-cluster node.name: dev-node-1 ``` ### 生产环境(三节点) ```yaml # 节点 1 cluster.name: prod-cluster node.name: prod-es-01 network.host: 192.168.1.10 # 节点 2 cluster.name: prod-cluster node.name: prod-es-02 network.host: 192.168.1.11 # 节点 3 cluster.name: prod-cluster node.name: prod-es-03 network.host: 192.168.1.12 ``` ### 跨数据中心部署 ```yaml # 数据中心 1 node.name: prod-dc1-node1 node.attr.zone: dc1 # 数据中心 2 node.name: prod-dc2-node1 node.attr.zone: dc2 ``` ## 查看节点名称 ```bash # 通过 API 查看所有节点 GET /_cat/nodes?v # 输出示例 name ip node.role prod-es-01 192.168.1.10 master,data prod-es-02 192.168.1.11 master,data prod-es-03 192.168.1.12 master,data # 查看节点详细信息 GET /_nodes/node-name # 查看所有节点 GET /_nodes ``` ## 在日志中识别节点 节点名称会出现在所有日志条目中: ``` [prod-es-01] [cluster.name] ... log message here ``` 便于快速定位问题来源。 ## 命名最佳实践 1. **保持一致**:使用统一的命名规范 2. **包含环境**:明确标识环境(dev/test/prod) 3. **包含位置**:标识数据中心或机架位置 4. **包含角色**:标识节点的主要角色 5. **易于识别**:名称应该能直观反映节点特征 6. **避免重复**:确保集群内名称唯一 ## 配置位置 **配置文件(easysearch.yml):** ```yaml node.name: my-node-name ``` **命令行:** ```bash ./bin/easysearch -Enode.name=my-node-name ``` **环境变量:** ```bash export ES_JAVA_OPTS="-Enode.name=my-node-name" ``` ## 常见问题 **问题 1:节点名称冲突** ``` IllegalArgumentException: can't add same node twice ``` **解决方案:** 确保每个节点的 `node.name` 唯一 **问题 2:难以识别节点** 使用描述性名称替代默认生成的名称。 **问题 3:修改节点名称** 节点名称是静态配置,修改后需要重启节点。如果集群已经运行,修改节点名称会导致该节点被识别为新节点。 ## 相关配置项 | 配置项 | 作用 | 默认值 | |-------|------|-------| | `cluster.name` | 集群名称 | easysearch | | `node.roles` | 节点角色列表 | master,data,ingest | | `node.attr.*` | 节点属性 | - | ## 注意事项 1. **静态配置**:修改节点名称需要重启节点 2. **唯一性要求**:集群内节点名称必须唯一 3. **初始主节点**:首次启动集群时,`node.name` 用于 `cluster.initial_master_nodes` 配置 4. **监控集成**:节点名称是监控系统识别节点的关键标识 5. **日志追踪**:便于在日志和监控中追踪特定节点的问题