Elasticsearch参数配置汇总

这篇具有很好参考价值的文章主要介绍了Elasticsearch参数配置汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、配置文件位置

Elasticsearch 有三个配置文件:

  • elasticsearch.yml用于配置 Elasticsearch

  • jvm.options用于配置 Elasticsearch JVM 设置

  • log4j2.properties用于配置 Elasticsearch 日志记录

这些文件位于配置目录中,其默认位置取决于 关于安装是否来自归档发行版(或)或软件包发行版(Debian 或 RPM 软件包)。tar.gzzip

对于归档分发,配置目录位置默认为 。配置目录的位置可以通过环境变量更改,如下所示:$ES_HOME/configES_PATH_CONF

ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch

或者,您可以通过 命令行或通过您的 shell 配置文件。exportES_PATH_CONF

对于软件包分发,配置目录位置默认为 .配置目录的位置也可以更改 通过环境变量,但请注意,在您的 外壳是不够的。相反,这个变量来源于(对于 Debian 软件包)和(对于 RPM 软件包)。您需要相应地编辑其中一个文件中的条目 更改配置目录位置。/etc/elasticsearchES_PATH_CONF/etc/default/elasticsearch/etc/sysconfig/elasticsearchES_PATH_CONF=/etc/elasticsearch

二、配置文件格式编辑

配置格式为 YAML。这是一个 更改数据和日志目录路径的示例:

path:
    data: /var/lib/elasticsearch
    logs: /var/log/elasticsearch

还可以按如下方式拼合设置:

path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

在 YAML 中,可以将非标量值的格式设置为序列:

discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11
   - seeds.mydomain.com

虽然不太常见,但您也可以将非标量值格式化为数组:

discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]

三、环境变量替换编辑

使用符号引用的环境变量 配置文件将替换为环境的值 变量。例如:${...}

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

环境变量的值必须是简单字符串。使用逗号分隔的字符串提供 Elasticsearch 将解析为列表的值。例如,Elasticsearch 会将以下字符串拆分为环境变量的值列表:${HOSTNAME}

export HOSTNAME="host1,host2"

四、群集和节点设置类型编辑

群集和节点设置可以根据其配置方式进行分类:

动态

您可以使用群集更新设置 API 在正在运行的群集上配置和更新动态设置。 您还可以在未启动或关闭时本地配置动态设置 节点使用 .elasticsearch.yml

使用群集更新设置 API 进行的更新可以是永久性的,这 在群集重新启动期间应用,或在群集后重置的暂时性应用。 重新启动。您还可以通过分配暂时性或持久性设置来重置它们 使用 API 的值。null

如果使用多种方法配置相同的设置,则 Elasticsearch 将应用 按以下优先级顺序排列的设置:

  1. 瞬态设置

  1. 持久设置

  1. elasticsearch.yml设置

  1. 默认设置值

例如,您可以应用暂时性设置来覆盖持久性设置 或设置。但是,对设置的更改不会覆盖定义的暂时性或持久性设置。elasticsearch.yml

如果使用 Elasticsearch 服务,请使用用户设置功能配置所有集群设置。此方法允许 Elasticsearch Service 自动 拒绝可能破坏群集的不安全设置。

如果您在自己的硬件上运行 Elasticsearch,请使用集群更新设置 API 来配置动态集群设置。仅用于静态 群集设置和节点设置。API 不需要重启,并且 确保设置的值在所有节点上都相同。elasticsearch.yml

不再建议使用瞬态群集设置。使用持久集群 改为设置。如果群集变得不稳定,可以清除瞬态设置 意外,导致可能不需要的群集配置。看 瞬态设置迁移指南。

静态的

静态设置只能在未启动或关闭的节点上使用 进行配置。elasticsearch.yml

必须在群集中的每个相关节点上设置静态设置。

五、安全设置编辑

某些设置是敏感的,并且依赖于文件系统权限来保护 他们的价值是不够的。对于这个用例,Elasticsearch 提供了一个 密钥库和 elasticsearch-keystore 工具 管理密钥库中的设置。

只有某些设置设计为从密钥库中读取。然而 密钥库没有用于阻止不受支持的设置的验证。添加不支持的 密钥库的设置会导致 Elasticsearch 无法启动。查看设置是否 在密钥库中受支持,请查找“安全”限定符设置 参考。

对密钥库的所有修改只有在重新启动 Elasticsearch 后才会生效。

这些设置,就像配置文件中的常规设置一样, 需要在群集中的每个节点上指定。目前,所有安全设置 是特定于节点的设置,每个节点上必须具有相同的值。elasticsearch.yml

1、可重新加载的安全设置编辑

就像 中的设置值一样,对密钥库的更改 内容不会自动应用于正在运行的 Elasticsearch 节点。重读 设置需要重新启动节点。但是,某些安全设置被标记为可重新加载。此类设置可以重新读取并应用于正在运行的节点。elasticsearch.yml

所有安全设置的值,无论是否可重新加载,都必须相同 跨所有群集节点。进行所需的安全设置更改后, 使用命令,调用:bin/elasticsearch-keystore add

POST _nodes/reload_secure_settings
{
  "secure_settings_password": "keystore-password" 
}

用于加密 Elasticsearch 密钥库的密码。

此 API 解密并重新读取每个集群节点上的整个密钥库, 但仅应用可重新加载的安全设置。对其他的更改 设置在下次重新启动之前不会生效。呼叫返回后, 重新加载已完成,这意味着所有内部数据结构 根据这些设置已更改。一切看起来都好像 设置从一开始就具有新值。

更改多个可重新加载的安全设置时,请在每个设置上修改所有设置 群集节点,然后在每次修改后发出reload_secure_settings调用,而不是重新加载。

六、集群级分片分配设置编辑

您可以使用以下设置来控制分片分配和恢复:

cluster.routing.allocation.enable

(动态) 启用或禁用特定类型分片的分配:

  • all-(默认值)允许为所有类型的分片分配分片。

  • primaries- 仅允许为主分片分配分片。

  • new_primaries- 仅允许为新索引的主分片分配分片。

  • none- 不允许对任何索引进行任何类型的分片分配。

在以下情况下,此设置不会影响本地主分片的恢复 重新启动节点。具有未分配的主节点副本的重新启动节点 分片将立即恢复该主数据库,假设其分配 ID 匹配 处于群集状态的活动分配 ID 之一。

cluster.routing.allocation.node_concurrent_incoming_recoveries

(动态) 允许在节点上发生多少个并发传入分片恢复。传入恢复是恢复 在节点上分配目标分片(除非分片正在重新定位,否则很可能是副本)的位置。默认值为 。2

cluster.routing.allocation.node_concurrent_outgoing_recoveries

(动态) 一个节点上允许发生多少个并发传出分片恢复。传出恢复是恢复 在节点上分配源分片(很可能是主分片,除非分片正在重新定位)的位置。默认值为 。2

cluster.routing.allocation.node_concurrent_recoveries

(动态) 用于同时设置 和 的快捷方式。默认值为 2。cluster.routing.allocation.node_concurrent_incoming_recoveriescluster.routing.allocation.node_concurrent_outgoing_recoveries

cluster.routing.allocation.node_initial_primaries_recoveries

(动态) 当副本的恢复通过网络进行时,恢复 节点重新启动后未分配的主节点使用本地磁盘中的数据。 这些应该很快,因此可以在 在同一节点上并行。默认值为 。4

cluster.routing.allocation.same_shard.host

(动态) 如果 ,则禁止将分片的多个副本分配给 同一主机上的不同节点,即具有相同网络的节点 地址。默认为 ,表示分片的副本可以 有时分配给同一主机上的节点。此设置仅为 如果在每个主机上运行多个节点,则相关。truefalse

1、分片重新平衡设置编辑

当集群在每个节点上具有相同数量的分片时,它是平衡的,并且 所有节点都需要相同的资源,而不会集中来自 任何节点上的任何索引。Elasticsearch运行一个称为重新平衡的自动过程,该过程 在集群中的节点之间移动分片以改善其平衡。 重新平衡遵守所有其他分片分配规则,例如分配过滤和强制感知,这可能会阻止它完全 平衡群集。在这种情况下,再平衡努力实现最大目标 可在已配置的规则内实现平衡群集。如果您使用的是数据层,则 Elasticsearch 会自动应用分配过滤 将每个分片放置在适当层中的规则。这些规则意味着 平衡器在每个层中独立工作。

您可以使用以下设置来控制分片的重新平衡 集群:

cluster.routing.rebalance.enable

(动态) 启用或禁用特定类型的分片的重新平衡:

  • all-(默认)允许对所有类型的分片进行分片平衡。

  • primaries- 仅允许主分片的分片平衡。

  • replicas- 仅允许副本分片的分片平衡。

  • none- 不允许对任何指数进行任何形式的分片平衡。

cluster.routing.allocation.allow_rebalance

(动态) 指定何时允许分片重新平衡:

  • always- 始终允许重新平衡。

  • indices_primaries_active- 仅当分配了群集中的所有主节点时。

  • indices_all_active-(默认值)仅当分配了集群中的所有分片(主分片和副本分片)时。

cluster.routing.allocation.cluster_concurrent_rebalance

(动态) 定义整个过程中允许的并发分片重新平衡数 簇。默认值为 。请注意,此设置仅控制 由于集群中的不平衡而导致的并发分片重定位。此设置执行 不因分配筛选或强制感知而限制分片重定位。2

cluster.routing.allocation.type

选择用于计算集群余额的算法。选择所需余额分配器的默认值。此分配器 运行一个后台任务,该任务计算所需的分片平衡 簇。一旦这个后台任务完成,Elasticsearch 就会将分片移动到他们的 所需位置。desired_balance

也可以设置为 以选择旧版平衡分配器。这 allocator 是 8.6.0 之前的 Elasticsearch 版本中的默认分配器。它运行 在前台,防止主节点并行执行其他工作。它 通过选择少量分片移动来工作,这些移动会立即改善 集群的平衡,当这些分片移动完成时,它会运行 并再次选择另外几个碎片进行移动。由于这个分配器使其 仅根据集群的当前状态做出决策,有时会 在平衡集群时多次移动分片。balanced

1、分片平衡启发式设置编辑

重新平衡的工作原理是根据每个节点的分配计算其权重 的分片,然后在节点之间移动分片以减轻 较重的节点并增加较轻节点的重量。群集是 当没有可能的碎片移动时平衡,可以带来重量 任何节点的权重都接近任何其他节点,超过可配置的 门槛。

节点的权重取决于它持有的分片数量和总数 这些分片的估计资源使用情况以 磁盘上的分片以及支持写入流量所需的线程数 碎片。Elasticsearch 估计属于数据流的分片的资源使用情况 当它们由翻转创建时。新分片的估计磁盘大小 是数据流中其他分片的平均大小。估计写入 新分片的负载是最近实际写入负载的加权平均值 数据流中的分片。不属于 的写入索引的分片 数据流的估计写入负载为零。

以下设置控制 Elasticsearch 如何将这些值组合成一个整体 测量每个节点的权重。

cluster.routing.allocation.balance.shard

(浮动,动态) 定义分配给每个节点的分片总数的权重因子。 默认值为 。提高这个值会增加 Elasticsearch 的趋势 在另一个平衡之前均衡节点之间的分片总数 变量。0.45f

cluster.routing.allocation.balance.index

(浮动,动态) 定义分配给每个索引的每个索引的分片数的权重因子 节点。默认值为 。提高这个值会增加 Elasticsearch 的趋势 在节点上均衡每个索引的分片数 平衡变量。0.55f

cluster.routing.allocation.balance.disk_usage

(浮动,动态) 根据预测磁盘定义平衡分片的权重因子 大小(以字节为单位)。默认值为 。提高此值会增加趋势 的 Elasticsearch 来平衡节点之间的总磁盘使用量,领先于其他节点 平衡变量。2e-11f

cluster.routing.allocation.balance.write_load

(浮动,动态) 定义每个分片的写入负载的权重因子,根据 分片所需的估计索引线程数。默认值为 。 提高此值会增加 Elasticsearch 均衡总写入的趋势。 在其他平衡变量之前跨节点加载。10.0f

cluster.routing.allocation.balance.threshold

(浮动,动态) 触发重新平衡分片移动的重量最小改进。 默认值为 。提高此值将导致 Elasticsearch 停止重新平衡 更快地分片,使集群处于更加不平衡的状态。1.0f

无论平衡算法的结果如何,重新平衡都可能 由于强制意识和分配等分配规则而不允许 滤波。

2、基于磁盘的分片分配设置

基于磁盘的分片分配器确保所有节点都有足够的磁盘空间 无需执行不必要的分片移动。它分配分片 基于一对称为低水位线和高水位线的阈值 水印。其主要目标是确保没有节点超过高点 水印,或者至少任何此类超额只是暂时的。如果节点 超过高水位线,那么 Elasticsearch 将通过移动一些 分片到集群中的其他节点上。

节点暂时超过高水位线是正常的 到时间。

分配器还尝试通过以下方式清除节点的高水位线 禁止向超过低值的节点分配更多分片 水印。重要的是,如果您的所有节点都超过了低水位线 那么就不能分配新的分片,Elasticsearch将无法移动任何分片。 节点之间的分片,以保持磁盘使用率低于高水位线。 必须确保群集总共有足够的磁盘空间,并且 始终是低于低水位线的一些节点。

由基于磁盘的分片分配器触发的分片移动还必须满足 所有其他分片分配规则,例如分配过滤和强制感知。如果这些规则太严格,那么它们 还可以防止将节点的磁盘使用率保持在以下所需的分片移动 控制。如果您使用的是数据层,则自动使用Elasticsearch。 配置分配筛选规则以将分片放置在适当的 层,这意味着基于磁盘的分片分配器独立工作 在每个层中。

如果一个节点填满其磁盘的速度比 Elasticsearch 将分片移动到其他地方的速度快 那么就有磁盘完全填满的风险。为了防止这种情况,作为 最后的手段,一旦磁盘使用量达到洪水阶段水位线 Elasticsearch 将阻止对受影响节点上具有分片的索引的写入。它还将 继续将分片移动到集群中的其他节点上。当磁盘使用情况时 在受影响的节点下降到高水位线以下时,Elasticsearch 会自动删除 写入块。

群集中的节点使用非常不同的数量是正常的 的磁盘空间。集群的余额 仅取决于每个节点上的分片数量以及索引 这些碎片属于。它既不考虑这些分片的大小,也不考虑 每个节点上的可用磁盘空间,原因如下:

  • 磁盘使用情况随时间而变化。平衡各个节点的磁盘使用情况 需要更多的分片移动,甚至可能浪费地撤消 早期的运动。移动分片会消耗 I/O 和网络等资源 带宽,并可能从文件系统缓存中逐出数据。这些资源是 在可能的情况下,最好将处理搜索和索引。

  • 每个节点上磁盘使用率相等的群集通常不会表现得更好 比磁盘使用率不相等的磁盘,只要没有磁盘太满。

可以使用以下设置来控制基于磁盘的分配:

cluster.routing.allocation.disk.threshold_enabled

(动态) 默认值为 。设置为 以禁用磁盘分配决策程序。禁用后,它还将删除任何现有的索引块。truefalseindex.blocks.read_only_allow_delete

cluster.routing.allocation.disk.watermark.low

(动态) 控制磁盘使用情况的低水位线。它默认为 ,这意味着 Elasticsearch 不会将分片分配给磁盘使用率超过 85% 的节点。也可以将其设置为比率值,例如 .它也可以设置为绝对字节值(如),以防止 Elasticsearch 在可用空间少于指定量时分配分片。此设置对新创建的索引的主分片没有影响,但会阻止分配其副本。85%0.85500mb

cluster.routing.allocation.disk.watermark.low.max_headroom

(动态)控制低水位线的最大净空(如果是百分比/比率值)。 未显式设置时默认为 200GB。 这限制了所需的可用空间量。cluster.routing.allocation.disk.watermark.low

cluster.routing.allocation.disk.watermark.high

(动态) 控制高水位线。它默认为 ,这意味着 Elasticsearch 将尝试将分片从磁盘使用率高于 90% 的节点中重新定位。也可以将其设置为比率值,例如 .也可以将其设置为绝对字节值(类似于低水位线),以便在节点的可用空间量小于指定量时将分片重新定位到远离节点的位置。此设置会影响所有分片的分配,无论之前是否分配。90%0.9

cluster.routing.allocation.disk.watermark.high.max_headroom

(动态)控制高水位线的最大净空(如果是百分比/比率值)。 未显式设置时默认为 150GB。 这限制了所需的可用空间量。cluster.routing.allocation.disk.watermark.high

cluster.routing.allocation.disk.watermark.enable_for_single_data_node

(静态) 在早期版本中,默认行为是忽略单个磁盘水印 做出分配决策时的数据节点群集。这是已弃用的行为 自 7.14 起,并在 8.0 中删除。此设置的唯一有效值 现在是.该设置将在将来的版本中删除。true

cluster.routing.allocation.disk.watermark.flood_stage

(动态) 控制泛洪阶段水印,默认为 95%。Elasticsearch 在节点上分配了一个或多个分片且至少有一个磁盘超过泛洪阶段的每个索引上强制实施只读索引块 ()。此设置是防止节点磁盘空间不足的最后手段。当磁盘利用率低于高水位线时,将自动释放索引块。与低水位线值和高水位线值类似,也可以将其设置为比率值,例如,或绝对字节值。

重置索引上的只读索引块的示例:my-index-000001

PUT /my-index-000001/_settings
{
  "index.blocks.read_only_allow_delete": null
}

cluster.routing.allocation.disk.watermark.flood_stage.max_headroom

(动态)控制洪水阶段水印的最大裕量(如果是百分比/比率值)。 未显式设置时默认为 100GB。 这限制了所需的可用空间量。cluster.routing.allocation.disk.watermark.flood_stage

不能混合使用百分比/比率值和字节值 这 和设置。所有值 设置为百分比/比率值,或全部设置为字节值。此强制执行是 以便 Elasticsearch 可以验证设置是否内部一致,从而确保 磁盘低阈值小于磁盘高阈值,磁盘高阈值为 小于洪水阶段阈值。对最大值进行了类似的比较检查 净空值。cluster.routing.allocation.disk.watermark.lowcluster.routing.allocation.disk.watermark.highcluster.routing.allocation.disk.watermark.flood_stage

cluster.routing.allocation.disk.watermark.flood_stage.frozen

(动态) 控制专用冻结节点的泛洪阶段水印,默认为 95%.

cluster.routing.allocation.disk.watermark.flood_stage.frozen.max_headroom

(动态) 控制洪水阶段水印的最大净空(在 百分比/比率值),用于专用冻结节点。未明确表示时默认为 20GB 设置。这限制了专用冻结节点上所需的可用空间量。cluster.routing.allocation.disk.watermark.flood_stage.frozen

cluster.info.update.interval

(动态) Elasticsearch 应该多久检查一次 簇。默认值为 。30s

百分比值是指已用磁盘空间,而字节值是指 可用磁盘空间。这可能会令人困惑,因为它颠倒了高和 低。例如,将低水位线设置为 10gb 并将高水位线设置为 5gb 是有意义的 水印到 <>GB,但不是相反。

将低水位线更新为至少 100 GB 可用的示例,高 可用水位至少为 50 GB 的水印,以及 10 的洪水阶段水印 千兆字节可用,并且每分钟更新有关群集的信息:

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.disk.watermark.low": "100gb",
    "cluster.routing.allocation.disk.watermark.high": "50gb",
    "cluster.routing.allocation.disk.watermark.flood_stage": "10gb",
    "cluster.info.update.interval": "1m"
  }
}

3、分片分配感知

您可以使用自定义节点属性作为感知属性来启用 Elasticsearch 在分配分片时考虑您的物理硬件配置。 如果 Elasticsearch 知道哪些节点位于同一物理服务器上、同一机架中,或者 在同一区域中,它可以将主分片及其副本分片分发到 将发生故障时丢失所有分片副本的风险降至最低。

使用动态设置启用分片分配感知时,分片仅 分配给为指定感知属性设置了值的节点。 如果您使用多个感知属性,Elasticsearch 会考虑每个属性 分配分片时分开。cluster.routing.allocation.awareness.attributes

4、启用分片分配感知

要启用分片分配感知,请执行以下操作:

  1. 使用自定义节点属性指定每个节点的位置。例如 如果您希望 Elasticsearch 将分片分布在不同的机架上,您可以 设置在每个节点的配置文件中调用的感知属性。rack_idelasticsearch.yml

node.attr.rack_id: rack_one

您还可以在启动节点时设置自定义属性:

./bin/elasticsearch -Enode.attr.rack_id=rack_one
  1. 告诉 Elasticsearch 在以下情况下考虑一个或多个意识属性 通过设置每个符合主节点条件的分片来分配分片 节点的配置文件。cluster.routing.allocation.awareness.attributeselasticsearch.yml

cluster.routing.allocation.awareness.attributes: rack_id 

使用此示例配置,如果启动两个节点,设置为 并创建一个包含 5 个主节点的索引 每个主节点的分片和 1 个副本,所有主节点和副本都是 跨两个节点分配。node.attr.rack_idrack_one

如果添加两个设置为 的节点 , Elasticsearch将分片移动到新节点,确保(如果可能的话) 同一分片的两个副本不在同一机架中。node.attr.rack_idrack_two

如果失败并关闭其两个节点,则默认为 Elasticsearch 将丢失的分片副本分配给 中的节点。防止多个 将特定分片的副本分配给同一位置,您可以 启用强制感知。rack_tworack_one

5、强迫感知

默认情况下,如果一个位置失败,Elasticsearch 会分配所有缺失的位置 将分片复制到其余位置。虽然你可能有足够的 跨所有位置的资源,用于托管主分片和副本分片,单个 位置可能无法托管所有分片。

为了防止单个位置在发生故障时过载, 您可以设置,以便没有副本 已分配,直到节点在另一个位置可用。cluster.routing.allocation.awareness.force

例如,如果您有一个感知属性调用并配置节点 在 和 中,您可以使用强制感知来阻止 Elasticsearch 如果只有一个可用区域,则从分配副本

cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2 

使用此示例配置,如果使用 set 启动两个节点 并创建一个包含 5 个分片和 1 个副本的索引,Elasticsearch 创建 索引并分配 5 个主分片,但不分配副本。副本是 仅在设置为 的节点可用时分配。node.attr.zonezone1node.attr.zonezone2

6、集群级分片分配筛选

您可以使用集群级分片分配过滤器来控制 Elasticsearch 的位置 从任何索引分配分片。这些群集范围的筛选器应用于 结合每个索引的分配筛选和分配感知。

分片分配筛选器可以基于自定义节点属性或内置的 、 和 属性。_name_host_ip_publish_ip_ip_host_id_tier

这些设置是动态的,使实时索引能够 从一组节点移动到另一组节点。分片仅在以下情况下重新定位 可以在不破坏其他路由约束的情况下执行此操作,例如从不 在同一节点上分配主分片和副本分片。cluster.routing.allocation

集群级分片分配过滤的最常见用例是 您想要停用节点。在关闭节点之前将分片移出节点 它下来,您可以创建一个过滤器,通过其 IP 地址排除节点:

PUT _cluster/settings
{
  "persistent" : {
    "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
  }
}

七、群集路由设置编辑

cluster.routing.allocation.include.{attribute}

(动态) 将分片分配给至少具有 逗号分隔的值。{attribute}

cluster.routing.allocation.require.{attribute}

(动态) 仅将分片分配给具有所有 逗号分隔的值。{attribute}

cluster.routing.allocation.exclude.{attribute}

(动态) 不要将分片分配给具有任何 逗号分隔的值。{attribute}

群集分配设置支持以下内置属性:

_name

按节点名称匹配节点

_host_ip

按主机 IP 地址(与主机名关联的 IP)匹配节点

_publish_ip

通过发布 IP 地址匹配节点

_ip

匹配或_host_ip_publish_ip

_host

按主机名匹配节点

_id

按节点 ID 匹配节点

_tier

按节点的数据层角色匹配节点

_tier筛选基于 节点角色。只 角色的子集是数据层角色,通用 数据角色将与任何 层筛选匹配。 作为数据层角色的角色子集,但通用 数据角色将与任何 层筛选匹配。

指定属性值时可以使用通配符,例如:

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.exclude._ip": "192.168.2.*"
  }
}

八、审核安全设置编辑

您可以使用审核日志记录来记录与安全相关的内容 身份验证失败、连接被拒绝和数据访问等事件 事件。此外,通过 API 对安全配置进行更改,例如 在创建、更新和删除本机和内置用户时,还会记录角色、角色映射和 API 密钥。

审核日志仅在某些订阅级别可用。 有关详细信息,请参阅 https://www.elastic.co/subscriptions。

如果已配置,则必须在群集中的每个节点上设置审核设置。 必须在每个节点上配置静态设置,例如 。对于动态审核设置,请使用群集更新设置 API 确保设置是 所有节点上都相同。xpack.security.audit.enabledelasticsearch.yml

1、常规审核设置编辑

xpack.security.audit.enabled

(静态) 设置为 以在节点上启用审核。默认值为 。这 将审核事件放在名为 on 的专用文件中 每个节点。truefalse<clustername>_audit.json

如果启用,则必须在所有节点上配置此设置 在群集中。elasticsearch.yml

2、审核的事件设置编辑

可以控制事件和有关记录内容的其他一些信息 使用以下设置:

xpack.security.audit.logfile.events.include

(动态) 指定要在审核输出中打印的事件类型。 此外,可用于详尽地审核所有事件,但这通常是 气馁,因为它会变得非常冗长。 默认列表值包含:。_allaccess_denied, access_granted, anonymous_access_denied, authentication_failed,

connection_denied, tampered_request, run_as_denied, run_as_granted,

security_config_change

xpack.security.audit.logfile.events.exclude

(动态) 从包含列表中排除指定类型的事件。 这在设置包含特殊值的情况下很有用。 默认值为空列表。events.include_all

xpack.security.audit.logfile.events.emit_request_body

(动态) 指定是否将来自 REST 请求的完整请求正文作为 某些类型的审核事件的属性。此设置可用于审核搜索查询。

默认值为 ,因此不打印请求正文。false

请注意,敏感数据可能会在包括以下内容时以纯文本形式进行审核 审核事件中的请求正文,即使所有安全 API(例如 更改用户的密码,在审核时过滤掉凭据。

3、本地节点信息设置编辑

xpack.security.audit.logfile.emit_node_name

(动态) 指定是否将节点名称作为字段包含在 每个审核事件。默认值为 。false

xpack.security.audit.logfile.emit_node_host_address

(动态) 指定是否在每个审核事件中将节点的 IP 地址作为字段包括在内。 默认值为 。false

xpack.security.audit.logfile.emit_node_host_name

(动态) 指定是否在每个审核事件中将节点的主机名作为字段包括在内。 默认值为 。false

xpack.security.audit.logfile.emit_node_id

(动态) 指定是否在每个审核事件中将节点 ID 作为字段包括在内。 与节点名称不同,如果管理员,其值可能会更改 更改配置文件中的设置,节点 ID 将跨群集保留 重新启动,管理员无法更改它。 默认值为 。true

4、审核日志文件事件忽略策略编辑

以下设置会影响忽略策略,这些策略可以精细控制将哪些审核事件打印到日志文件。 具有相同策略名称的所有设置组合在一起形成一个策略。 如果事件与任何策略的所有条件匹配,则会忽略该事件,并且不会打印该事件。 大多数审核事件都受忽略策略的约束。唯一的例外是 除非完全排除,否则无法筛选掉的事件类型的事件。security_config_change

xpack.security.audit.logfile.events.ignore_filters.<policy_name>.users

(动态) 用户名或通配符的列表。指定的策略将 不为与这些值匹配的用户打印审核事件。

xpack.security.audit.logfile.events.ignore_filters.<policy_name>.realms

(动态) 身份验证领域名称或通配符的列表。指定的策略将 不为这些领域中的用户打印审核事件。

xpack.security.audit.logfile.events.ignore_filters.<policy_name>.actions

(动态) 操作名称或通配符的列表。可以在审核事件的字段中找到操作名称。指定的策略不会打印审核事件 与这些值匹配的操作。action

xpack.security.audit.logfile.events.ignore_filters.<policy_name>.roles

(动态) 角色名称或通配符的列表。指定的策略将 不为具有这些角色的用户打印审核事件。如果用户有多个 策略未涵盖其中一些角色,策略将不涵盖此事件。

xpack.security.audit.logfile.events.ignore_filters.<policy_name>.indices

(动态) 索引名称或通配符的列表。指定的策略将 当事件中的所有索引都匹配时不打印审核事件 这些值。如果事件涉及多个指数,其中一些指数不在保单范围内,则保单将承保此事件。文章来源地址https://www.toymoban.com/news/detail-456766.html

到了这里,关于Elasticsearch参数配置汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows gvim查询配置文件位置

    打开gvim输入以下命令: 还可以点菜单中的帮助==》版本 https://blog.csdn.net/qq_36242914/article/details/105306542

    2024年01月20日
    浏览(36)
  • Mybatis|mapper配置文件xml位置

    在核心配置文件mybatis-config.xml中设置映射文件位置 application.yml文件中添加配置: mybatis案例中和springboot中都是一样的,只要目录名和包名相同 需要在pom.xml中添加如下内容 越努力,越幸运! codefishyyf与你一起努力!

    2024年02月06日
    浏览(72)
  • vivado 预设文件、IP设置(_P)、用户参数、以太网时钟处理、GT位置限制、当前可识别板的IP列表

    了解预设文件 预设文件有助于在特定配置中自定义IP核心。PS7、axi_emc和当linear_flash或DDR3_SDRAM 界面是在Vivado IP集成商的Board选项卡中选择的。预设文件使用XML格式。preset_file是为特定的Board文件定义的,可以是用于将预设应用于多个IP。 ip_presets schema=\\\"1.0\\\" ip_preset preset_proc_name=

    2024年01月23日
    浏览(48)
  • 【Elasticsearch配置秘籍】详解config/elasticsearch.yml,解锁关键参数与实战应用

    Elasticsearch的强大性能与灵活性,很大程度上得益于其细致入微的配置选项。作为核心配置文件, config/elasticsearch.yml 扮演着至关重要的角色。本文将深度剖析该文件中的重要参数,结合实例说明其作用与应用场景,助您定制最适合业务需求的Elasticsearch集群。 一、基础配置项

    2024年04月11日
    浏览(37)
  • Linux下查看MySQL的配置文件my.cnf位置

    安装mysql后,系统中会有多个my.cnf文件。 使用 locate my.cnf 命令可以列出所有的my.cnf文件: 命令输出结果中的–defaults-file,就是mysql启动加载的配置文件。如果没有输入结果,则表示没有设置使用指定目录的my.cnf。 mysql --help|grep \\\'my.cnf\\\' 查看mysql默认读取的my.cnf,按照从前到后的

    2024年02月15日
    浏览(39)
  • 如何修改idea配置文件位置从C盘更改到D盘

    本文介绍如何将idea的配置文件从默认的C盘调整到D盘,从而节省C盘使用空间。 默认存放位置 idea配置文件默认存放位置(XXX为用户名): 用户配置:C:UsersXXXAppDataLocalJetBrains 系统配置:C:UsersXXXAppDataRoamingJetBrains 修改配置文件 打开idea安装目录下/bin/idea.properties文件。修

    2024年02月11日
    浏览(37)
  • docker安裝mysql(8.0.20)并且指定配置文件和数据存放位置

    4、拷贝mysql的配置文件和数据

    2024年02月03日
    浏览(35)
  • SpringBoot 启动配置文件加载和参数配置修改问题

    SpringBoot 或者SpringCloud 有配置文件加载和参数修改的机制,本文将从两个角度阐述参数修改和配置文件启动覆盖问题。 以下几种方式都可以被@Value读取到 java -jar -Dserver.port=8080 -Xms1024m demo.jar java -jar demo.jar --server.port=8080 从操作系统的环境变量中读取 通过项目中配置文件boots

    2023年04月15日
    浏览(48)
  • Elasticsearch配置文件

    在 elasticsearchconfig 目录下,有三个核心的配置文件: elasticsearch.yml,es相关的配置。 jvm.options,Java jvm相关参数的配置。 log4j2.properties,日志相关的配置,因为es采用了log4j的日志框架。 这里以elasticsearch6.5.4版本为例,并且由于版本不同,配置也不太也一样,仅作参考! 2.1

    2024年02月07日
    浏览(28)
  • elasticsearch配置文件详解

    由于公司的ES服务器近期出了点问题,这一块的任务交由及我,从完全不懂ES到现在慢慢了解它的配置参数,感觉收获比较多,在这里记录一下ES的核心配置文件elasticsearch.yml中的参数信息(就是从别人的博客中copy过来的); 配置文件位于es根目录的config目录下面,有elasticsearch

    2023年04月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包