在 elasticsearch.yml 配置文件中使用 env 时如何设置默认值?
Posted
技术标签:
【中文标题】在 elasticsearch.yml 配置文件中使用 env 时如何设置默认值?【英文标题】:How to set default value while using env in elasticsearch.yml config file? 【发布时间】:2021-08-28 08:47:31 【问题描述】:我在配置文件(即elasticsearch.yml)中使用环境变量来配置节点角色。
例如:
elasticsearch.yml:
node.roles: '$NODE_ROLES'
什么时候,我设置了NODE_ROLES="master"
、NODE_ROLES="ml, remote_cluster_client"
等。它们按预期工作。
但是,当我尝试通过设置NODE_ROLES=""
创建一个协调 节点时,它似乎不起作用。显示所有节点角色都分配给协调节点。
$ curl -XGET -k -u 'elastic:XpBr*PVVgPa&zK5M' "https://localhost:9200/_cat/nodes?v"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.2.2.23 59 74 42 2.40 1.83 1.23 m - es-master-0
... ... ..
10.2.0.18 69 2 19 0.78 0.48 0.33 cdfhilmrstw - es-coordinating-0
我也试过像下面这样设置默认值,它们也没有用。
node.roles: '$NODE_ROLES:""'
or
node.roles: '$NODE_ROLES:[]'
【问题讨论】:
【参考方案1】:两种方式:
node.roles: []
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#coordinating-node
或者您可以按名称手动禁用每个角色。
node.data: false
node.injest: false
node.master: false
// etc..
node.role、r、角色、nodeRole (默认)节点的角色。返回值包括c(冷节点)、d(数据节点)、f(冻结节点)、h(热节点)、i(摄取节点)、l(机器学习节点)、m(主节点)、r(远程集群客户端节点)、s(内容节点)、t(转换节点)、v(仅投票节点)、w(温节点)和 -(仅协调节点)。
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html
【讨论】:
node.data: true/false
已被弃用,在 > 7.13 版本中不受支持。
我需要通过 ENV 配置node.roles: []
。请告诉我,我该如何实现它。以上是关于在 elasticsearch.yml 配置文件中使用 env 时如何设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章