📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

node.name 配置项定义 Easysearch 节点的名称,用于在集群中唯一标识每个节点。节点名称出现在日志、监控和管理界面中,便于识别和管理节点。

配置项类型 #

该配置项为静态配置,需要在启动时设置,修改后需要重启节点才能生效。

默认值 #

机器名的主机名前 8 个字符 + 随机字符

例如:node-1es-prod-abc123

是否必需 #

可选配置项(但强烈建议为每个节点设置明确的名称)

命名规则 #

  1. 集群内唯一:同一集群内节点名称必须唯一
  2. 可读性强:建议使用有意义、易于识别的名称
  3. 避免特殊字符:使用字母、数字、连字符和下划线
  4. 长度限制:建议不超过 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: node-1
node.name: node-2
node.name: node-3

2. 角色+数字命名 #

适用于有明确角色分工的集群:

# 数据节点
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. 环境+位置+角色命名 #

适用于大型生产集群:

# 格式:{服务}-{环境}-{数据中心}-{机架}-{角色}-{序号}
node.name: es-prod-dc1-r1-data-01
node.name: es-prod-dc1-r1-data-02
node.name: es-prod-dc2-r1-data-01

实际部署示例 #

开发环境 #

cluster.name: dev-cluster
node.name: dev-node-1

生产环境(三节点) #

# 节点 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

跨数据中心部署 #

# 数据中心 1
node.name: prod-dc1-node1
node.attr.zone: dc1

# 数据中心 2
node.name: prod-dc2-node1
node.attr.zone: dc2

查看节点名称 #

# 通过 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):

node.name: my-node-name

命令行:

./bin/easysearch -Enode.name=my-node-name

环境变量:

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. 日志追踪:便于在日志和监控中追踪特定节点的问题