一、配置文件位置

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/elasticsearchlogs: /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

(动态) 索引名称或通配符的列表。指定的策略将 当事件中的所有索引都匹配时不打印审核事件 这些值。如果事件涉及多个指数,其中一些指数不在保单范围内,则保单将不承保此事件。

Elasticsearch参数配置汇总相关推荐

  1. 魅族16支持html吗,魅族16参数配置汇总 支持屏内指纹

    原标题:魅族16详细配置曝光:超窄边框+屏下指纹识别 [TechWeb报道]7月20日消息,近日有不少媒体曝光了魅族16手机,外观基本没有什么悬念了.现在最新消息,魅族官方自曝魅族16手机搭载骁龙84 ...

  2. Elasticsearch 常用配置参数总结

    Elasticsearch 重要参数配置 通过阅读官方文档了解到其中重要参数的配置及其说,下面将逐步进行了解. 一. ElasticSearch参数配置 1. data和logs路径配置 如果使用.z ...

  3. ElasticSearch 各模块介绍及参数配置详解

    ElasticSearch包含模块由集群管理Cluster.分片管理Shards.副本管理Replicas.恢复管理Recovery.数据源管理River.持久化存储管理Gateway.节点自动发现管 ...

  4. Elasticsearch常用配置及性能参数

    Elasticsearch常用配置及性能参数 cluster.name: estest   集群名称 node.name: "testanya"  节点名称 node.master ...

  5. R语言使用epiDisplay包的summ函数计算dataframe中指定变量在不同分组变量下的描述性统计汇总信息并可视化有序点图、自定义cex.main参数配置标题文本字体的大小

    R语言使用epiDisplay包的summ函数计算dataframe中指定变量在不同分组变量下的描述性统计汇总信息并可视化有序点图.自定义cex.main参数配置标题文本字体的大小(名称.有效值个数. ...

  6. R语言使用epiDisplay包的summ函数计算dataframe中指定变量的描述性统计汇总信息并可视化有序点图、通过dot.col参数配置数据点的颜色(名称、有效值个数、均值、中位数、标准差)

    R语言使用epiDisplay包的summ函数计算dataframe中指定变量的描述性统计汇总信息并可视化有序点图.通过dot.col参数配置数据点的颜色(名称.有效值个数.均值.中位数.标准差.最大 ...

  7. elasticsearch常用配置

    一.关于elasticsearch的基本概念 每一个运行实例称为一个节点,每一个运行实例既可以在同一机器上,也可以在不同的机器上. 所谓运行实例,就是一个服务器进程,在测试环境中可以在一台服务器上运行 ...

  8. Elasticsearch 安装配置及学习

    何为全文搜索? 全文搜索本质:非结构化数据转成结构化数据,提取非结构化数据 全文搜索是一种将文件中所有文件与搜索项匹配的文字资料检索方法 原理:建立本库 ---> 建立索引 ---> 执行 ...

  9. 转载:Elasticsearch面试题汇总与解析

    原始链接:https://www.wenyuanblog.com/blogs/elasticsearch-interview-questions.html Elasticsearch面试题汇总与解析 ...

最新文章

  1. container-as-a-service-0x00 -- 基于Docker的私有云混合云搭建需求
  2. cocos2dx在wp上使用自定义shader
  3. Java Streams,第 4 部分: 从并发到并行
  4. c语言用数组写密码程序,想程序高手求助--用C语言来编辑一个输入密码的程序...
  5. 9.特殊权限 软连接 硬链接
  6. java 解决死锁_如何解决java中的死锁问题
  7. 点焊机器人焊接超时_「技术帖」FSW点焊技术在车身铝薄板焊接中的应用
  8. java时间格式24小时制12小时制
  9. 1 二进制(glibc版)安装MySQL实现主从复制(亲测)
  10. git推送代码的命令详解
  11. BAT Java面试154道题分享!搞懂轻松进BAT
  12. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_11_反射_案例
  13. 关于一百天计划的设想(信任的速度读后感)
  14. java大赛参赛学院名单,河南大学第十一届“学佳澳杯”大学生程序设计竞赛获奖名单公布...
  15. 如何在Excel中快速删除空白行
  16. 新高考如何选科?职引教你一招简单又直接的方法
  17. 除硬件外 计算机系统不可缺少的,计算机应用基础选择精选100题.doc
  18. BTRFS Defragmentation
  19. devise第三方认证插件
  20. 获取IPhone相册中图片的方法(ASSets)

热门文章

  1. “水果零售第二股”百果园上市首日市值近百亿
  2. 人类思想史上的黄金时代
  3. 啊,嗯,唔,啊,啊,啊,
  4. 极兔速递快递批量查询工具箱
  5. mini2440移植linux内核,mini2440的 linux内核移植
  6. wake,awake,waken,awaken的区别
  7. 艰难的辞职,完美的新生。
  8. 为什么C/C++程序员一定要阅读redis源码?腾讯面试教你做人【linux服务器开发】
  9. python画史迪仔_Python turtle画图 使用python turtle库实现了动漫人物史迪仔的绘制 - 下载 - 搜珍网...
  10. 福州大学第十四届程序设计竞赛 (题解)