Elasticsearch参考[7.5] - Elasticsearch配置

原文链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/settings.html

Elasticsearch配置

Elasticsearch具有良好的默认设置,并且只需要很少的配置。可以使用群集更新设置 API 在正在运行的群集上更改大多数设置 。

配置文件应包含特定节点的设置(例如node.name和路径),或节点为了能够加入集群所需的设置,例如cluster.namenetwork.host

配置文件位置

Elasticsearch具有三个配置文件:

  • elasticsearch.yml 用于配置Elasticsearch
  • jvm.options 用于配置Elasticsearch JVM设置
  • log4j2.properties 用于配置Elasticsearch日志记录

这些文件位于config目录中,其默认位置取决于安装是来自档安发行版(tar.gz或 zip)还是软件包发行版(Debian或RPM软件包)。

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

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

或者,您可以通过命令行或shell 来export ES_PATH_CONF环境变量。

对于软件包分发,config目录位置默认为 /etc/elasticsearch。配置文件目录的位置也可以通过ES_PATH_CONF环境变量来更改,但是请注意,仅在您的shell中进行设置是不够的。此变量还包含在配置文件/etc/default/elasticsearch(对于Debian软件包)和 /etc/sysconfig/elasticsearch(对于RPM软件包)中。您需要相应地编辑这些文件的ES_PATH_CONF=/etc/elasticsearch条目,以更改配置目录位置。

配置文件格式

配置格式为YAML。以下为更改数据和日志目录的路径的示例:

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

也可以按以下平展方式设置:

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


环境变量替换

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

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

设置JVM选项

您几乎不需要更改Java虚拟机(JVM)选项。如果这样做,最可能的更改是设置堆大小。本文档的其余部分详细说明了如何设置JVM选项。

设置JVM选项(包括系统属性和JVM标志)的首选方法是通过jvm.options配置文件。该文件的默认位置是config/jvm.options(从tar或zip发行版安装)和/etc/elasticsearch/jvm.options(从Debian或RPM软件包安装)。

此文件包含使用特殊语法的以行分隔的JVM参数列表:

  • 仅由空格组成的行将被忽略
  • 以开头的行#被视为注释,并被忽略

# this is a comment

以-开头的行被视为独立于JVM版本而应用的JVM选项

-Xmx2g

以数字开头后接:-的行被视为JVM选项,仅当JVM版本与该数字匹配时才适用

8:-Xmx2g

以数字开头后跟有-:-的行被视为JVM选项,仅在JVM版本大于或等于该数字时才适用

8-:-Xmx2g

以数字开头后接-数字:-的行:被视为JVM选项,仅当JVM版本在两个数字范围内时才适用

8-9:-Xmx2g
  • 其他所有行均被拒绝

您可以将自定义JVM标志添加到此文件,并且在你的版本控制系统中检查这个配置。

设置Java虚拟机选项的另一种机制是通过 ES_JAVA_OPTS环境变量。例如:

export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir"
./bin/elasticsearch

使用RPM或Debian软件包时,ES_JAVA_OPTS可以在系统配置文件中指定 。

JVM具有用于观察JAVA_TOOL_OPTIONS 环境变量的内置机制。我们有意在打包脚本中忽略此环境变量。这样做的主要原因是,在某些操作系统(例如Ubuntu)上,默认情况下通过此环境变量安装了代理,我们不希望它们干扰Elasticsearch。

此外,其他一些Java程序也支持JAVA_OPTS环境变量。这不是 JVM内置的机制,而是生态系统中的约定。但是,我们不支持该环境变量,而是通过上述jvm.options文件或环境变量来支持设置JVM ES_JAVA_OPTS选项。


安全设置

某些设置是敏感的,仅依靠文件系统权限来保护其值是不够的。对于此用例,Elasticsearch提供了密钥库和elasticsearch-keystore用于管理密钥库设置的工具。

注意:此处的所有命令都应以运行Elasticsearch的用户身份运行。

重要:设计仅从密钥库中读取一些设置。但是,密钥库没有验证来阻止不支持的设置。将不支持的设置添加到密钥库将导致Elasticsearch无法启动。请参阅每个设置的文档,以了解是否将其作为密钥库的一部分来支持。

注意:仅在重新启动Elasticsearch之后,对密钥库的所有修改才会生效。

注意:elasticsearch密钥库当前仅提供混淆。将来将添加密码保护

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

创建密钥库

要创建elasticsearch.keystore,请使用以下create命令:

bin/elasticsearch-keystore create

该文件elasticsearch.keystore将与elasticsearch.yml一起创建。

列出密钥库中的设置

密钥库中的设置列表可通过以下list命令获得:

bin/elasticsearch-keystore list

添加字符串设置

可以使用以下add命令来添加敏感的字符串设置,例如cloud 插件的身份验证凭据:

bin/elasticsearch-keystore add the.setting.name.to.set

该工具将提示您输入设置值。要通过stdin传递值,请使用--stdin标志:

cat /file/containing/setting/value | bin/elasticsearch-keystore add --stdin the.setting.name.to.set

添加文件设置

您可以使用以下add-file命令添加敏感文件,例如cloud插件的身份验证密钥文件。确保将文件路径作为参数包含在设置名称之后。

bin/elasticsearch-keystore add-file the.setting.name.to.set /path/example-file.json


删除设置

要从密钥库中删除设置,请使用以下remove命令:

bin/elasticsearch-keystore remove the.setting.name.to.remove

升级密钥库

有时,密钥库的内部格式会更改。从程序包管理器安装Elasticsearch时,将在程序包升级期间将磁盘上的密钥库升级到新格式。在其他情况下,Elasticsearch将在节点启动期间执行此类升级。这要求Elasticsearch对包含密钥库的目录具有写权限。或者,您可以使用以下upgrade 命令手动执行此类升级:

bin/elasticsearch-keystore upgrade

重新加载安全设置

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

所有安全设置(可重新加载或不可重新加载)的值在所有群集节点上必须相同。进行所需的安全设置更改后,使用以下bin/elasticsearch-keystore add命令,调用:

POST _nodes/reload_secure_settings

该API将在每个群集节点上解密并重新读取整个密钥库,但是将仅应用可重载的安全设置。直到下次重新启动,对其他设置的更改才会生效。调用返回后,重新加载已完成,这意味着依赖于这些设置的所有内部数据结构均已更改。从头开始,所有设置看起来都应该具有新值。

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

有以下可重新加载的安全设置:

Log配置

Elasticsearch使用Log4j2进行日志记录。可以使用log4j2.properties文件配置Log4j2。Elasticsearch公开三个属性${sys:es.logs.base_path}, ${sys:es.logs.cluster_name}以及${sys:es.logs.node_name}可以在配置文件中引用,以确定日志文件的位置。该属性${sys:es.logs.base_path}将解析为日志目录, ${sys:es.logs.cluster_name}将解析为群集名称(在默认配置中用作日志文件名的前缀), ${sys:es.logs.node_name}并将解析为节点名称(如果显式设置了节点名称)。

例如,如果你的日志(path.logs)的目录是/var/log/elasticsearch,您的群集名为production,${sys:es.logs.base_path}将解析为/var/log/elasticsearch, ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log 将解析为/var/log/elasticsearch/production.log

######## Server JSON ############################
appender.rolling.type = RollingFile  #1
appender.rolling.name = rolling
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.json  #2
appender.rolling.layout.type = ESJsonLayout   #3
appender.rolling.layout.type_name = server    #4
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.json.gz   #5
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy   #6
appender.rolling.policies.time.interval = 1    #7
appender.rolling.policies.time.modulate = true    #8
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy    #9
appender.rolling.policies.size.size = 256MB   #10
appender.rolling.strategy.type = DefaultRolloverStrategy 
appender.rolling.strategy.fileIndex = nomax
appender.rolling.strategy.action.type = Delete   #11
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}
appender.rolling.strategy.action.condition.type = IfFileName   #12 
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-*    #13
appender.rolling.strategy.action.condition.nested_condition.type = IfAccumulatedFileSize    #14
appender.rolling.strategy.action.condition.nested_condition.exceeds = 2GB    #15
################################################

#1 配置RollingFile附加器

#2 日志记录到 /var/log/elasticsearch/production_server.json

#3 使用JSON布局。

#4 type_name是填充type字段中的标志ESJsonLayout。解析日志时,可以更轻松地区分不同类型的日志。

#5 将日志滚动到/var/log/elasticsearch/production-yyyy-MM-dd-i.json; 日志将在每卷上压缩,i递增。

#6 使用基于时间的滚动策略

#7 每天滚动日志

#8 在日期边界上对齐滚动(而不是每24小时滚动一次)

#9 使用基于大小的滚动策略

#10 256 MB后滚动日志

#11 滚动日志时使用删除操作

#12 仅删除与文件模式匹配的日志

#13 模式是仅删除主日志

#14 仅当我们累积了太多压缩日志时才删除

#15 压缩日志的大小条件为2 GB

 

######## Server -  old style pattern ###########
appender.rolling_old.type = RollingFile
appender.rolling_old.name = rolling_old
appender.rolling_old.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.log  #1
appender.rolling_old.layout.type = PatternLayout
appender.rolling_old.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %m%n
appender.rolling_old.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.old_log.gz

#1 old style模式追加器的配置。这些日志将保存在*.log文件中,如果存档则将保存在文件中* .log.gz。请注意,应将其视为已弃用,并将在将来删除。

 

注意:Log4j的配置解析将会被任何多余的空白所迷惑;如果您在此页面上复制并粘贴任何Log4j设置,或通常输入任何Log4j配置,请确保修剪所有前导和尾随空格

请注意,您可以在appender.rolling.filePattern替换.gz.zip以使用zip格式压缩滚动日志。如果删除.gz 扩展名,则日志在滚动时将不会被压缩。

如果要在指定时间段内保留日志文件,则可以将过渡策略与删除操作一起使用。

appender.rolling.strategy.type = DefaultRolloverStrategy  #1
appender.rolling.strategy.action.type = Delete  #2
appender.rolling.strategy.action.basepath = ${sys:es.logs.base_path}  #3
appender.rolling.strategy.action.condition.type = IfFileName #4
appender.rolling.strategy.action.condition.glob = ${sys:es.logs.cluster_name}-* #5
appender.rolling.strategy.action.condition.nested_condition.type = IfLastModified  #6
appender.rolling.strategy.action.condition.nested_condition.age = 7D  #7

#1 配置 DefaultRolloverStrategy

#2 配置Delete用于处理翻转的操作

#3 Elasticsearch日志的基本路径

#4 处理过渡时适用的条件

#5 从与glob匹配的基本路径中删除文件 ${sys:es.logs.cluster_name}-*; 这是日志文件滚动到的位置;仅删除滚动的Elasticsearch日志,而不删除过时和慢速日志,这是必需的

#6 嵌套条件适用于与glob匹配的文件

#7 保留日志七天

可以加载多个配置文件(在这种情况下,它们将被合并),只要它们被命名log4j2.properties并以Elasticsearch config目录作为祖先即可。这对于暴露其他日志器的插件很有用。日志器部分包含Java软件包及其相应的日志级别。附加程序部分包含日志的目标。可以在Log4j文档中找到有关如何自定义日志记录和所有受支持的附加程序的广泛信息 。

配置日志记录级别

有四种配置日志记录级别的方法,每种方法都有适合使用的场景。

  1. 通过命令行:-E <name of logging hierarchy>=<level>(例如, -E logger.org.elasticsearch.transport=trace)。当您在单个节点上临时调试问题(例如,启动问题或开发过程中)时,这是最合适的。
  2. 通过elasticsearch.yml<name of logging hierarchy>: <level>(例如, logger.org.elasticsearch.transport: trace)。当您临时调试问题但未通过命令行(例如,通过服务)启动Elasticsearch或希望更永久地调整日志记录级别时,这是最合适的。
  3. 通过集群设置

PUT /_cluster/settings
{
  "transient": {
    "<name of logging hierarchy>": "<level>"
  }
}

例如:

PUT /_cluster/settings
{
  "transient": {
    "logger.org.elasticsearch.transport": "trace"
  }
}

当您需要动态调整正在运行的群集上的日志记录级别时,这是最合适的。

    4. 通过log4j2.properties

logger.<unique_identifier>.name = <name of logging hierarchy>
logger.<unique_identifier>.level = <level>

例如:

logger.transport.name = org.elasticsearch.transport
logger.transport.level = trace

当您需要对日志进行细粒度控制时(例如,要将日志发送到另一个文件,或以其他方式管理日志;这是一种罕见的用例),这是最合适的。

弃用日志

除了常规日志记录外,Elasticsearch还允许您启用不赞成使用的操作日志记录。例如,这使您可以及早确定是否将来需要迁移某些功能。默认情况下,在WARN级别启用弃用日志记录,该级别将发出所有弃用日志消息。

logger.deprecation.level = warn

这将在您的日志目录中创建每日滚动弃用日志文件。定期检查此文件,尤其是在您打算升级到新的主要版本时。

默认的日志记录配置已将弃用日志的滚动策略设置为在1 GB之后滚动和压缩,并最多保留五个日志文件(四个滚动日志和活动日志)。

您可以弃用日志级别在config/log4j2.properties文件通过以下方式设置为error弃用它:

logger.deprecation.name = org.elasticsearch.deprecation
logger.deprecation.level = error

您可以通过HTTP头的部X-Opaque-Id识别是否触发过时功能,在弃用JSON日志的字段中用户ID包含X-Opaque-ID

 
{
  "type": "deprecation",
  "timestamp": "2019-08-30T12:07:07,126+02:00",
  "level": "WARN",
  "component": "o.e.d.r.a.a.i.RestCreateIndexAction",
  "cluster.name": "distribution_run",
  "node.name": "node-0",
  "message": "[types removal] Using include_type_name in create index requests is deprecated. The parameter will be removed in the next major version.",
  "x-opaque-id": "MY_USER_ID",
  "cluster.uuid": "Aq-c-PAeQiK3tfBYtig9Bw",
  "node.id": "D7fUYfnfTLa2D7y-xw6tZg"
}


JSON日志格式

为了简化对Elasticsearch日志的解析,现在以JSON格式打印日志。这由Log4J布局属性配置appender.rolling.layout.type = ESJsonLayout。此布局需要type_name设置一个属性,该属性用于在解析时区分日志流。

appender.rolling.layout.type = ESJsonLayout
appender.rolling.layout.type_name = server

每行包含一个JSON文档,其属性在ESJsonLayout中配置。有关更多详细信息,请参见此类javadoc。但是,如果JSON文档包含异常,它将被打印在多行上。第一行将包含常规属性,随后的行将包含格式为JSON数组的stacktrace。

您仍然可以使用自己的自定义布局。为此,请使用其他布局替换appender.rolling.layout.type行 。请参阅以下示例:
 
appender.rolling.type = RollingFile
appender.rolling.name = rolling
appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_server.log
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = [%d{ISO8601}][%-5p][%-25c{1.}] [%node_name]%marker %.-10000m%n
appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%d{yyyy-MM-dd}-%i.log.gz

安全审计设置

您可以在群集中每个节点上的配置文件elasticsearch.yml中配置安全审核设置。有关更多信息,请参阅启用审核日志记录

通用审计设置

xpack.security.audit.enabled

设置为true,在节点上启用审核。默认值为false。这会将审核事件放在每个节点上名为<clustername>\u audit.json的专用文件中。

审核的事件设置

可以使用以下设置来控制事件和有关日志内容的其他信息:

xpack.security.audit.logfile.events.include

指定要包含在审核输出中的事件。默认值为: access_denied, access_granted, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted

xpack.security.audit.logfile.events.exclude

从输出中排除指定的事件。默认情况下,不排除任何事件。

xpack.security.audit.logfile.events.emit_request_body

指定是否在某些事件类型(如authentication_failed)上包含来自REST请求的请求正文。默认值为false。。

影响:审核时不执行任何筛选,因此当将请求正文包含在审核事件中时,敏感数据可以纯文本格式审核。

本地节点信息设置

xpack.security.audit.logfile.emit_node_name

指定是否在每个审核事件中将节点名称作为字段包括在内。默认值为true

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

指定是否在每个审核事件中将节点标识作为字段包括在内。这仅适用于新格式。也就是说,该信息在<clustername>_access.log文件中不存在。与节点名不同,如果管理员更改配置文件中的设置,节点名的值可能会更改,但节点ID将在群集重新启动后保持不变,并且管理员无法更改它。默认值为true

审核日志文件事件忽略策略

这些设置会影响忽略策略 ,这些策略可实现对将哪些审核事件打印到日志文件的精细控制。具有相同策略名称的所有设置将合并形成一个策略。如果事件符合特定策略的所有条件,则将其忽略并且不打印。

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>.roles

角色名称或通配符列表。指定的策略将不会为具有这些角色的用户打印审核事件。如果用户具有多个角色,其中一些角色包含在策略中,则该策略将 包含此事件。

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

索引名称或通配符的列表。当事件中的所有索引与这些值匹配时,指定的策略将不会打印审计事件。如果事件涉及多个索引,其中一些索引 包含在策略中,则该策略将覆盖此事件。

跨群集复制设置

可以使用集群更新设置API在活动集群上动态更新这些跨集群复制设置 。

远程恢复设置

以下设置可用于对远程恢复期间传输的数据进行速率限制 :

ccr.indices.recovery.max_bytes_per_sec动态

限制每个节点上的总入站和出站远程恢复流量。由于此限制适用于每个节点,但是可能有许多节点同时执行远程恢复,因此远程恢复字节的总数可能远高于此限制。如果将此限制设置得太高,则存在正在进行的远程恢复将消耗过多带宽(或其他资源)的风险,这可能会破坏群集的稳定性。leader follower 集群均使用此设置。例如,如果leader 将其设置为20mb,则leader 将仅发送20mb/sfollower ,即使follower 正在请求并可以接受60mb/s。默认为40mb

高级远程恢复设置

可以设置以下 expert设置来管理远程恢复所消耗的资源:

ccr.indices.recovery.max_concurrent_file_chunks动态

控制每次恢复可以并行发送的文件块请求的数量。由于可能已经并行运行了多个远程恢复,因此增加此 expert级别的设置可能仅在单个碎片的远程恢复未达到所配置的总入站和出站远程恢复流量的情况下ccr.indices.recovery.max_bytes_per_sec才有用。默认为5。允许的最大值为10

ccr.indices.recovery.chunk_size动态

控制文件传输期间follower 请求的块大小。默认为 1mb

ccr.indices.recovery.recovery_activity_timeout动态

控制恢复活动的超时。此超时主要适用于leader 集群。leader 集群必须在内存中打开资源,以便在恢复过程中向跟随者提供数据。如果leader 在这段时间内没有收到follower 的恢复请求,它将关闭资源。默认为60秒。

ccr.indices.recovery.internal_action_timeout动态

在远程恢复过程中控制单个网络请求的超时。单个操作超时可能会使恢复失败。默认为60秒。

Elasticsearch中的转换设置

您无需配置任何设置即可使用转换。默认情况下启用。

所有这些设置都可以添加到elasticsearch.yml配置文件中。还可以使用集群更新设置API在整个 集群中更新动态设置

提示:动态设置优先于elasticsearch.yml 文件中的设置。
 

常规转换设置

xpack.transform.enabled

设置为true(默认值),在节点上启用转换。

如果elasticsearch.yml设置为false,则在节点上禁用转换API。因此,节点无法启动或管理转换或接收与转换API相关的传输(内部)通信请求。

重要:如果要在群集中使用转换功能,则必须在所有符合主机资格的节点上都将其 xpack.transform.enabled设置为true。这是默认行为。
 
xpack.transform.num_transform_failure_retries动态
 

转换遇到非致命错误时重试的次数。重试次数用完后,转换任务将标记为failed。默认值为10有效的最小值0 和最大值100。如果转换已经在运行,则必须重新启动以应用设置。

索引全生命周期管理设置

这些是可用于配置索引生命周期管理的设置

集群级别设置

xpack.ilm.enabled

无论ILM是启用还是禁用,将其设置为false都会禁用任何ILM REST API端点和功能。默认为true。

indices.lifecycle.poll_interval

时间单位)索引生命周期管理检查符合策略标准索引的频率。默认为10m

索引级别设置

这些索引级别的ILM设置通常是通过索引模板配置的。有关更多信息,请参阅设置策略

index.lifecycle.name

用于管理索引的策略的名称。

index.lifecycle.rollover_alias

索引翻转时要更新的索引别名。在使用包含过渡操作的策略时指定。当索引翻转时,别名将更新以反映该索引不再是写索引。有关过渡的更多信息,请参阅《使用策略管理索引过渡》

index.lifecycle.parse_origination_date

当配置为true时,将从索引名中分析起始日期。索引格式必须与模式^.*-{date_format}-\\d+匹配,其中date_format为 yyyy.MM.dd和结尾数字是可选的(经过翻转的索引通常会与完整格式匹配,例如 logs-2016.10.31-000002)。如果索引名称与模式不匹配,则索引将创建失败。

index.lifecycle.origination_date

将用于计算其阶段索引期限的时间戳。这允许用户创建包含旧数据的索引,并使用旧数据的原始创建日期来计算索引期限。

License设置

您可以在elasticsearch.yml文件中配置此License设置。有关更多信息,请参阅 许可管理

xpack.license.self_generated.type

设置为basic(默认)以启用基本X-Pack功能。

如果设置为trial,则自动生成的许可证仅允许30天访问x-pack的所有功能。以后可以根据需要将群集降级为基本许可证。


Elasticsearch中的机器学习设置

您无需配置任何设置即可使用机器学习。默认情况下启用。

重要:机器学习使用SSE4.2指令,因此仅适用于CPU 支持 SSE4.2的机器。如果您在较旧的硬件上运行Elasticsearch,则必须禁用机器学习(将设置xpack.ml.enabled 为false)。
 

所有这些设置都可以添加到elasticsearch.yml配置文件中。还可以使用集群更新设置API在整个 集群中更新动态设置

提示:动态设置优先于elasticsearch.yml 文件中的设置。
 

一般学习机设置

node.ml

设置为true(默认)以将节点标识为机器学习节点

如果elasticsearch.yml中设置为false,则节点无法运行作业。如果设置为, truexpack.ml.enabled设置为false,则node.ml设置将被忽略,并且节点无法运行作业。如果要运行作业,集群中必须至少有一个机器学习节点。

重要:在专用协调节点或专用主节点上,禁用node.ml角色。
 

xpack.ml.enabled

设置为true(默认值)以在节点上启用机器学习。

如果elasticsearch.yml中设置为false,则在节点上禁用机器学习API。因此,该节点无法打开作业,启动数据馈送或接收与机器学习API相关的传输(内部)通信请求。它还会影响所有连接到该Elasticsearch实例的Kibana实例;您无需在这些kibana.yml文件中禁用机器学习 。有关在特定Kibana实例中禁用机器学习的更多信息,请参阅 Kibana机器学习设置

重要如果要在群集中使用机器学习功能,则必须在所有符合主机资格的节点上都将其 xpack.ml.enabled设置为true。这是默认行为。
 

xpack.ml.max_machine_memory_percent动态

机器学习可用于运行分析过程的机器内存的最大百分比。(这些过程与Elasticsearch JVM分开。)默认为 30%。该限制基于计算机的总内存,而不是当前的可用内存。作业不会分配给节点,如果这样做会导致机器学习作业的估计内存使用量超过限制。

xpack.ml.max_model_memory_limit动态

可以为此节点上的任何作业设置model_memory_limit 的最大属性值。如果尝试创建一个model_memory_limit属性值大于此设置值的作业,则会发生错误。当您更新此设置时,现有作业不会受到影响。有关该model_memory_limit属性的更多信息 ,请参见分析限制

xpack.ml.max_open_jobs动态

一个节点上可以同时运行的最大作业数。默认为 20。在这种情况下,作业包括异常检测作业和数据帧分析作业。作业的最大数量也受内存使用量的限制。因此,如果作业的估计内存使用量将高于允许的内存使用量,则在节点上运行的作业将更少。在7.1版之前,此设置是每个节点的非动态设置。它在7.1版中成为群集范围内的动态设置。因此,只有在集群中的每个节点都运行7.1或更高版本时,才使用节点启动后对其值的更改。允许的最大值为512

xpack.ml.node_concurrent_job_allocations动态

可以同时在每个节点的opening状态中的最大作业数。通常,作业在转移到open状态之前会在此状态下花费少量时间。刚打开时必须还原大型模型的作业会在该opening状态上花费更多时间。默认为2

高级机器学习设置

这些设置用于高级用例。默认值通常就足够了:

xpack.ml.enable_config_migration动态

保留。

xpack.ml.max_anomaly_records动态

每个存储桶输出的最大记录数。默认值为 500

xpack.ml.max_lazy_ml_nodes动态

延迟旋转的机器学习节点的数量。在打开第一个机器学习作业之前不需要ML节点的情况下很有用。预设为0,并且最大可接受值为3。如果ML节点的当前数量>=大于此设置,则假定没有更多的惰性节点可用,因为已经提供了所需的节点数量。在设置了此设置的情况下打开作业,>0并且没有节点可以接受该作业时,该作业将保持该OPENING状态,直到将新的ML节点添加到群集并将该作业分配为在该节点上运行。

重要:此设置假定某些外部过程能够将ML节点添加到群集。仅当与此类外部过程结合使用时,此设置才有用。

 

xpack.ml.process_connect_timeout动态

与Elasticsearch JVM分开运行的机器学习过程的连接超时。默认为10s。一些机器学习处理是由与Elasticsearch JVM分开运行的进程完成的。启动此类进程时,它们必须连接到Elasticsearch JVM。如果该进程在此设置指定的时间段内未连接,则认为该进程已失败。默认为10s。此设置的最小值为5s

Elasticsearch中的监控设置

默认情况下,启用监视,但禁用数据收集。要启用数据收集,请使用xpack.monitoring.collection.enabled进行设置。

您可以在elasticsearch.yml文件中配置这些监视设置。您还可以使用集群更新设置API动态设置其中一些 设置

群集设置优先于elasticsearch.yml 文件中的设置。
 

要调整如何监控数据显示在监控界面,在kibana.yml中配置 xpack.monitoring设置。要控制如何从Logstash收集监控数据,在logstash.yml配置 xpack.monitoring设置 。

有关更多信息,请参阅监视集群

常规监控设置

xpack.monitoring.enabled

设置为true(默认值)以对节点上的Elasticsearch启用Elasticsearch X-Pack监视。

注意:要启用数据收集,还必须将设置xpack.monitoring.collection.enabled 为true。默认值为false

监控收集设置

xpack.monitoring.collection设置控制如何从Elasticsearch节点收集数据。您可以使用群集更新设置API动态更改所有监控收集设置。

xpack.monitoring.collection.enabled动态

[ 6.3.0 ] 在6.3.0中添加。设置为true启用监控数据收集。当此设置为false默认值时,将不会收集Elasticsearch监控数据,并且会忽略来自其他来源(如Kibana,Beats和Logstash)的所有监控数据。

xpack.monitoring.collection.interval动态

设置为-1禁用数据收集,从7.0.0开始,不再支持。 [ 6.3.0 ]在6.3.0中弃用。使用xpack.monitoring.collection.enabled设置为false

控制收集数据样本的频率。默认为10s。如果您修改收集间隔,则将kibana.yml中的xpack.monitoring.min_interval_seconds 选项设置为相同的值。

xpack.monitoring.elasticsearch.collection.enabled动态

控制是否应收集有关Elasticsearch集群的统计信息。默认为true。这与xpack.monitoring.collection.enabled不同,后者允许您启用或禁用所有监视收集。但是,此设置只是禁用了Elasticsearch数据的收集,同时仍然允许其他数据(例如,Kibana,Logstash,Beats或APM Server监视数据)通过此群集。

xpack.monitoring.collection.cluster.stats.timeout动态

时间值)用于收集集群统计信息的超时。默认为10s

xpack.monitoring.collection.node.stats.timeout动态

时间值)收集节点统计信息的超时时间。默认为10s

xpack.monitoring.collection.indices动态

控制监控从哪个索引收集数据。默认为所有索引。将索引名称指定为以逗号分隔的列表,例如test1,test2,test3。名称可以包括通配符,例如test*。您可以在前缀前明确排除索引“-”。例如test*,-test3将监测,与开始的所有索引test除外test3。系统索引(例如.security *或.kibana *)始终以“.”开头,通常应对其进行监视。考虑添加.*到索引列表中,以确保监视系统索引。例如.*,test*,-test3

xpack.monitoring.collection.index.stats.timeout动态

时间值)用于收集索引统计信息的超时。默认为10s

xpack.monitoring.collection.index.recovery.active_only动态

控制是否收集所有回收率。设置为true仅收集活动的恢复。默认为false

xpack.monitoring.collection.index.recovery.timeout动态

时间值)用于收集恢复信息的超时。默认为10s

xpack.monitoring.history.duration动态

时间值)保留期限,超过该期限后,将自动删除监视导出器创建的索引。默认为7d(7天)。

此设置的最小值1d(1天)以确保正在监视某些内容,并且不能将其禁用。

重要:此设置当前仅影响local类型导出器。使用http导出器创建的索引不会自动删除。
 

xpack.monitoring.exporters

配置代理在何处存储监视数据。默认情况下,代理使用本地导出程序,该导出程序为安装了该群集的群集上的监视数据编制索引。使用HTTP导出器将数据发送到单独的监视群集。有关更多信息,请参阅本地导出器设置, HTTP导出器设置及其 工作方式

local导出器设置

local导出器是监视使用的默认导出器。顾名思义,它将数据导出到本地集群,这意味着不需要太多配置。

如果不提供任何导出器,则监视将自动为您创建一个导出器。如果提供了任何导出器,则不添加默认值。

xpack.monitoring.exporters.my_local:
  type: local

type

    本地导出器的值,必须始终为local,并且是必需的。

use_ingest

     是否在每个批量请求中向集群和管道处理器提供占位符管道。默认值为true。如果被禁用,则意味着它将不使用管道,这意味着将来的发行版无法将批量请求自动升级为可用于将来的请求。

cluster_alerts.management.enabled

     是否为此集群创建集群警报。默认值为true。要使用此功能,必须启用Watcher。如果您具有基本许可证,则不会显示群集警报。

HTTP导出器设置

以下列出了http导出器可以提供的设置。所有设置均显示在您为导出器选择的名称后面:

xpack.monitoring.exporters.my_remote:
  type: http
  host: ["host:port", ...]

type

    HTTP导出程序的值,必须始终为http,并且是必需的。

host

     主机支持多种格式,既可以是数组,也可以是单个值。支持的格式包括 hostnamehostname:port,http://hostnamehttp://hostname:porthttps://hostname,和 https://hostname:port。主机不能猜测。默认方案始终是http,如果未作为主机字符串的一部分提供,则默认端口始终是9200。

xpack.monitoring.exporters:
  example1:
    type: http
    host: "10.1.2.3"
  example2:
    type: http
    host: ["http://10.1.2.4"]
  example3:
    type: http
    host: ["10.1.2.5", "10.1.2.6"]
  example4:
    type: http
    host: ["https://10.1.2.3:9200"]

auth.username

    如果提供auth.password,则需要用户名。

auth.password

  auth.username的密码。

connection.timeout

   (时间值)HTTP连接应该等待套接字打开以请求的时间。默认值为6s

connection.read_timeout

   (时间值)HTTP连接应该等待套接字发送回响应的时间。默认值为10 * connection.timeout(如果未设置为60s)。

ssl

    每个HTTP导出器都可以定义自己的TLS / SSL设置或继承它们。请参阅下面的“ TLS / SSL”部分

proxy.base_path

    前缀任何传出请求的基本路径,例如/base/path(例如,批量请求将作为发送/base/path/_bulk)。没有默认值。

headers

    添加到每个请求的可选标头,可以帮助通过代理路由请求。

xpack.monitoring.exporters.my_remote:
  headers:
    X-My-Array: [abc, def, xyz]
    X-My-Header: abc123

    基于数组的头被发送n次,其中n是数组的大小。无法设置内容类型Content-Type和内容长度Content-Length。监视代理创建的任何头都将覆盖此处定义的任何内容。

index.name.time_format

   默认情况下,更改每日监视索引的默认日期后缀的机制。默认值为YYYY.MM.DD,这就是每天创建索引的原因。

use_ingest

     是否为每个批量请求向监视群集和管道处理器提供占位符管道。默认值为true。如果禁用,则意味着它将不使用管道,这意味着将来的版本无法自动将批量请求升级为将来可以证明的请求。

cluster_alerts.management.enabled

       是否为此集群创建集群警报。默认值为true。要使用此功能,必须启用Watcher。如果您具有基本许可证,则不会显示群集警报。

cluster_alerts.management.blacklist

       阻止创建特定的群集警报。它还会删除当前群集中已经存在的所有适用监视。

您可以将以下任何监视标识符添加到黑名单:

  • elasticsearch_cluster_status
  • elasticsearch_version_mismatch
  • elasticsearch_nodes
  • kibana_version_mismatch
  • logstash_version_mismatch
  • xpack_license_expiration

例如:["elasticsearch_version_mismatch","xpack_license_expiration"]

X-Pack监视TLS / SSL设置

您可以配置以下TLS / SSL设置。如果未配置设置, 则使用默认TLS / SSL设置

xpack.monitoring.exporters.$NAME.ssl.supported_protocols

     支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

xpack.monitoring.exporters.$NAME.ssl.verification_mode

    控制证书的验证。有效值是none, certificatefull。默认为full

xpack.monitoring.exporters.$NAME.ssl.cipher_suites

    支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。默认为``。

X-Pack监控TLS / SSL密钥和可信证书设置

以下设置用于指定通过SSL / TLS连接进行通信时应使用的私钥,证书和受信任证书。私钥和证书是可选的,如果服务器要求客户端认证进行PKI认证,则将使用私钥和证书。如果未指定以下任何设置,则使用默认TLS / SSL设置

PEM编码的文件

使用PEM编码的文件时,请使用以下设置:

xpack.monitoring.exporters.$NAME.ssl.key

    包含私钥的PEM编码文件的路径。

xpack.monitoring.exporters.$NAME.ssl.key_passphrase

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.monitoring.exporters.$NAME.ssl.secure_key_passphrase安全

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.monitoring.exporters.$NAME.ssl.certificate

    包含在请求时将显示的证书(或证书链)的PEM编码文件的路径。

xpack.monitoring.exporters.$NAME.ssl.certificate_authorities

    应信任的PEM编码证书文件的路径列表。

Java密钥库文件

使用包含私钥,证书和应信任的证书的Java密钥库文件(JKS)时,请使用以下设置:

xpack.monitoring.exporters.$NAME.ssl.keystore.path

       存放私钥和证书的密钥库的路径。

xpack.monitoring.exporters.$NAME.ssl.keystore.password

      密钥库的密码。

xpack.monitoring.exporters.$NAME.ssl.keystore.secure_password安全

    密钥库的密码。

xpack.monitoring.exporters.$NAME.ssl.keystore.key_password

    密钥库中私钥的密码。默认值与xpack.monitoring.exporters.$NAME.ssl.keystore.password相同。

xpack.monitoring.exporters.$NAME.ssl.keystore.secure_key_password安全

    密钥库中私钥的密码。

xpack.monitoring.exporters.$NAME.ssl.truststore.path

     信任库文件的路径。

xpack.monitoring.exporters.$NAME.ssl.truststore.password

    信任库的密码。

xpack.monitoring.exporters.$NAME.ssl.truststore.secure_password安全

    信任库的密码。

PKCS#12文件

Elasticsearch可以配置为使用PKCS#12容器文件(.p12或.pfx文件),这些文件包含应信任的私钥、证书和证书。

PKCS#12文件的配置方式与Java密钥库文件相同:

xpack.monitoring.exporters.$NAME.ssl.keystore.path

    保存私钥和证书的PKCS#12文件的路径。

xpack.monitoring.exporters.$NAME.ssl.keystore.type

    将此设置为PKCS12以指示密钥库是PKCS#12文件。

xpack.monitoring.exporters.$NAME.ssl.keystore.password

    PKCS#12文件的密码。

xpack.monitoring.exporters.$NAME.ssl.keystore.secure_password安全

    PKCS#12文件的密码。

xpack.monitoring.exporters.$NAME.ssl.keystore.key_password

   存储在PKCS#12文件中的私钥的密码。默认值与xpack.monitoring.exporters.$NAME.ssl.keystore.password相同。

xpack.monitoring.exporters.$NAME.ssl.keystore.secure_key_password安全

      存储在PKCS#12文件中的私钥的密码。

xpack.monitoring.exporters.$NAME.ssl.truststore.path

    保存要信任的证书的PKCS#12文件的路径。

xpack.monitoring.exporters.$NAME.ssl.truststore.type

   将此设置为PKCS12以指示信任库是PKCS#12文件。

xpack.monitoring.exporters.$NAME.ssl.truststore.password

    PKCS#12文件的密码。

xpack.monitoring.exporters.$NAME.ssl.truststore.secure_password安全

    PKCS#12文件的密码。

PKCS#11令牌

可以将Elasticsearch配置为使用PKCS#11令牌,该令牌包含私钥,证书和应信任的证书。

PKCS#11令牌需要在JVM级别进行其他配置,并且可以通过以下设置启用:

xpack.monitoring.exporters.$NAME.keystore.type

    将此设置为PKCS11以指示PKCS#11令牌应用作密钥库。

xpack.monitoring.exporters.$NAME.truststore.type

    将此设置为PKCS11以指示PKCS#11令牌应用作信任库。

 
注意:在配置JVM配置为用作Elasticsearch的密钥库或信任库的PKCS#11令牌时,可以通过在配置的上下文中将适当的值设置 ssl.truststore.password ssl.truststore.secure_password来配置令牌的PIN。由于只能配置一个PKCS#11令牌,因此只有一个密钥库和信任库可用于Elasticsearch中的配置。这又意味着在传输层和http层中,TLS只能使用一个证书。

 

Elasticsearch中的安全设置

默认情况下,拥有基本或试用许可证时,Elasticsearch安全功能被禁用。要启用安全功能,请使用xpack.security.enabled 设置。

您可以配置xpack.security设置以 启用匿名访问 和执行消息身份验证, 设置文档和字段级安全性, 配置领域, 使用SSL加密通信以及 审核安全事件

除了安全设置(您已将其添加到Elasticsearch密钥库)外,所有这些设置都可以添加到配置文件elasticsearch.yml中。有关创建和更新Elasticsearch密钥库的更多信息,请参阅“ 安全设置”

一般安全设置

xpack.security.enabled

设置为true,在节点上启用Elasticsearch安全功能。

如果设置为false,这是基本许可证和试用版许可证的默认值,则会禁用安全功能。它还会影响所有连接到该Elasticsearch实例的Kibana实例;您无需在这些kibana.yml文件中禁用安全功能。有关在特定Kibana实例中禁用安全功能的更多信息,请参阅 Kibana安全设置

 提示: 如果您具有金牌或更高级别的许可证,则默认值为true;。我们建议您显式添加此设置以避免混淆。

xpack.security.hide_settings

    以逗号分隔的设置列表,该列表从集群节点info API的结果中省略 。您可以使用通配符在列表中包括多个设置。例如,以下值将隐藏ad1 active_directory领域的所有设置: xpack.security.authc.realms.active_directory.ad1.*。该API已经忽略所有ssl设置,bind_dn以及bind_password由于信息的敏感性质。

xpack.security.fips_mode.enabled

    启用fips操作模式。如果在启用了FIPS 140-2的JVM中运行此Elasticsearch实例,则将其设置为true。有关更多信息,请参见FIPS 140-2。默认为false

密码哈希设置

xpack.security.authc.password_hashing.algorithm

    指定用于安全用户凭据存储的哈希算法。请参阅表2,“密码哈希算法”。默认为bcrypt

匿名访问设置

您可以在中配置以下匿名访问设置 elasticsearch.yml。有关更多信息,请参阅启用匿名访问

xpack.security.authc.anonymous.username

    匿名用户的用户名(主要)。默认为_es_anonymous_user

xpack.security.authc.anonymous.roles

    与匿名用户关联的角色。需要。

xpack.security.authc.anonymous.authz_exception

    当true为时,如果匿名用户没有所请求操作的适当权限,则返回HTTP 403响应。不提示用户提供凭据以访问所请求的资源。设置false为时,将返回HTTP 401响应,并且用户可以为凭据提供具有适当权限的访问权限。默认为true

自动机(Automata)设置

在安全功能接受通配符模式的位置(例如,角色中的索引模式,角色映射API中的组匹配),每个模式都被编译成一个自动机。可以使用以下设置来控制此行为。

xpack.security.automata.max_determinized_states

    单个模式可以创建多少个自动机状态的上限。这可以防止过于困难(例如,指数级)模式。默认为100,000

xpack.security.automata.cache.enabled

     是否缓存已编译的自动机。编译自动机可能会占用大量CPU,并且可能会使某些操作变慢。缓存减少了自动机需要编译的频率。默认为true

xpack.security.automata.cache.size

    自动机缓存中保留的最大项目数。默认为10,000

xpack.security.automata.cache.ttl

     保留在自动机缓存中的项目中的时间长度(基于最近的使用情况)。默认为48h(48小时)。

文档和字段级安全设置

您可以在elasticsearch.yml中设置以下文档和字段级别的安全设置。有关更多信息,请参阅 设置字段和文档级别的安全性

xpack.security.dls_fls.enabled

    设置为false防止配置文档和字段级别的安全性。默认为true

xpack.security.dls.bitset.cache.ttl

  用于文档级安全性BitSet缓存条目的生存时间。文档级安全性查询可能取决于Lucene BitSet对象,并且这些对象会自动缓存以提高性能。默认情况下将过期168h(7天)内未使用的条目过期。

xpack.security.dls.bitset.cache.size

      用于文档级安全性BitSet缓存条目的最大内存使用量。文档级安全性查询可能取决于Lucene BitSet对象,并且这些对象会自动缓存以提高性能。默认值为50mb,之后将清除最近最少使用的条目。

 


令牌服务设置

您可以在elasticsearch.yml中设置以下令牌服务设置 。

xpack.security.authc.token.enabled

    设置为false禁用内置令牌服务。除非xpack.security.http.ssl.enabled设置为true,否则默认为false 。这样可以防止从纯HTTP连接嗅探令牌。

xpack.security.authc.token.timeout

    令牌有效的时间长度。默认情况下,此值为20m或20分钟。最大值为1小时。

API密钥服务设置

您可以在 elasticsearch.yml中设置以下API密钥服务设置。

xpack.security.authc.api_key.enabled

    设置为false禁用内置API密钥服务。除非xpack.security.http.ssl.enabled设置为true,否则默认为false。这样可以防止通过纯http连接嗅探API密钥。

xpack.security.authc.api_key.hashing.algorithm

    指定用于保护API密钥凭据的哈希算法。请参阅表2,“密码哈希算法”。默认为pbkdf2

xpack.security.authc.api_key.cache.ttl

    缓存的API密钥条目的生存时间。API密钥ID及其API密钥的哈希值会在此时间段内缓存。使用标准Elasticsearch 时间单位指定时间段。默认为1d

xpack.security.authc.api_key.cache.max_keys

     在任何给定时间可以存在于缓存中的API密钥条目的最大数量。默认值为10,000。

xpack.security.authc.api_key.cache.hash_algo

 (专家设置)用于内存中缓存的API密钥凭据的哈希算法。有关可能的值,请参见表1,“高速缓存哈希算法”。默认为ssha256

域(Realm)设置

在elasticsearch.yml的xpack.security.authc.realms命名空间中配置域(Realm)设置。例如:

xpack.security.authc.realms:

    native.realm1:     #1
        order: 0
        ...

    ldap.realm2:
        order: 1
        ...

    active_directory.realm3:
        order: 2

#1 指定域(Realm)的类型(例如,nativeldap, active_directorypkifilekerberossaml)和域(Realm)名称。必须提供此信息。

有效设置因域(Realm)类型而异。有关更多信息,请参阅用户认证

对所有领域均有效的设置

order

域(Realm)链中域(Realm)的优先级。首先查询低级域(Realm)。尽管不是必需的,但在配置多个域(Realm)时,强烈建议使用此设置。默认为Integer.MAX_VALUE

enabled

 指示是否启用域(Realm)。您可以使用此设置禁用域(Realm)而不删除其配置信息。默认为true

本机域(Realm)设置

对于本机域(Realm)type必须将设置为native。除了对所有域(Realm)都有效设置之外 ,您还可以指定以下可选设置:

cache.ttl

     缓存的用户条目的生存时间。在此时间段内,将缓存用户及其凭据的哈希。使用标准Elasticsearch 时间单位指定时间段。默认为20m

cache.max_users

      在任何给定时间可以存在于高速缓存中的最大用户条目数。默认值为100,000。

cache.hash_algo

     (专家设置)用于内存中缓存的用户凭据的哈希算法。有关可能的值,请参见表1,“高速缓存哈希算法”。默认为ssha256

authentication.enabled

     如果设置为false,则禁用此域(Realm)的身份验证支持,因此它仅支持用户查找。(请参阅运行方式和 授权域(Realm)功能)。默认为true

文件域(Realm)设置

type设置必须设置为file。除了适用于所有域(Realm)设置之外 ,您还可以指定以下设置:

cache.ttl

     缓存的用户条目的生存时间。在此配置的时间段内,将缓存用户及其凭据的哈希。默认为20m。使用标准Elasticsearch 时间单位指定值。默认为20m

cache.max_users

      在给定时间可以存在于高速缓存中的最大用户条目数。默认值为100,000。

cache.hash_algo

     (专家设置)用于内存中缓存的用户凭据的哈希算法。请参见表1,“高速缓存哈希算法”。默认为ssha256

authentication.enabled

     如果设置为false,则禁用此域(Realm)的身份验证支持,因此它仅支持用户查找。(请参阅运行方式和 授权域(Realm)功能)。默认为true

LDAP域(Realm)设置

type设置必须设置为ldap。除了适用于所有域(Realm)的 设置外,您还可以指定以下设置:

url

   LDAP格式的一个或多个ldap[s]://<server>:<port>,是必需要
       要提供多个url,请使用YAML数组(["ldap://server1:636", "ldap://server2:636"])或逗号分隔的字符串("ldap://server1:636, ldap://server2:636")。
      虽然两者都受支持,但不能混合使用ldap和ldaps协议。

load_balance.type

     定义了多个LDAP URL时使用的行为。有关受支持的值,请参阅负载均衡和故障转移类型。默认为failover

load_balance.cache_ttl

    当使用dns_failoverdns_round_robin作为负载均衡类型时,此设置控制缓存DNS查找的时间。默认为1h

bind_dn

     用于绑定到LDAP并执行搜索的用户的DN。仅适用于用户搜索模式。如果未指定,则尝试进行匿名绑定。默认为空。由于其潜在的安全影响,因此不会通过node info API公开bind_dn

bind_password

   6.3 ] 在6.3中弃用。使用secure_bind_password代替。用于绑定到LDAP目录的用户的密码。默认为空。由于其潜在的安全影响,因此不会通过node info API公开bind_password

secure_bind_password安全

     用于绑定到LDAP目录的用户的密码。默认为空。

user_dn_templates

       使用字符串替换用户名的DN模板{0}。此设置是多值的;您可以指定多个用户上下文。需要以用户模板模式运行。如果指定为user_search.base_dn,则此设置无效。有关不同模式的更多信息,请参阅LDAP用户认证

authorization_realms

      委托授权应咨询的域(Realm)名称。如果使用此设置,则LDAP域不执行角色映射,而是从列出的域中加载用户。将按照在此列表中定义的顺序查阅所引用的域。请参阅将授权委派到另一个域

提示:如果指定了任何以user_search开头的设置,则user_dn_templates设置将被忽略。
 

user_group_attribute

       指定要在用户上检查的组成员资格属性。如果group_search指定了任何设置,则此置无效。默认为memberOf

user_search.base_dn

      指定用于搜索用户的容器DN。需要在用户搜索模式下操作。如果指定了user_dn_templates,则此设置无效。有关不同模式的更多信息,请参阅LDAP用户认证

user_search.scope

     用户搜索的范围。有效值为sub_treeone_level或 baseone_level仅搜索直接包含base_dn中的对象 。sub_tree搜索包含base_dn下的所有对象。 base指定base_dn是用户对象,并且是唯一考虑的用户。默认为 sub_tree

user_search.filter

    指定用于搜索目录的过滤器,以尝试将条目与用户提供的用户名进行匹配。默认为(uid={0})。 {0}被搜索时提供的用户名替换。

user_search.attribute

    [ 5.6 ] 在5.6中弃用。使用user_search.filter代替。与请求发送的用户名匹配的属性。默认为uid

user_search.pool.enabled

    启用或禁用用于用户搜索的连接池。如果设置为false,则为每个搜索创建一个新的连接。设置bind_dn时,默认值为true。。

user_search.pool.size

    连接池中允许的与LDAP服务器的最大连接数。默认为20

user_search.pool.initial_size

    启动时创建到LDAP服务器的初始连接数。默认为0。如果LDAP服务器已关闭,则大于0的值可能会导致启动失败。

user_search.pool.health_check.enabled

    对连接池中的LDAP连接启用或禁用运行状况检查。在后台按指定间隔检查连接。默认为true

user_search.pool.health_check.dn

    在运行状况检查中检索的专有名称。 如果存在,则默认为bind_dn的值; 如果不是,则退回到user_search.base_dn。

user_search.pool.health_check.interval

      对池中的连接执行后台检查的时间间隔。默认为60s

group_search.base_dn

    容器DN,用于搜索用户具有成员资格的组。 如果不存在此元素,Elasticsearch将搜索用户上由user_group_attribute设置的指定属性,以确定组成员身份。

group_search.scope

     指定是否该组搜索应该是sub_treeone_level或 base。 one_level仅搜索直接包含在base_dn中的对象 。sub_tree搜索包含在base_dn下的所有对象。 base指定base_dn是组对象,并且是唯一考虑的组。默认为 sub_tree

group_search.filter

      指定用于查找组的过滤器。 未设置时,域将搜索具有member、memberOf或memberUid属性的group、groupOfNames、groupOfUniqueNames或posixGroup。 过滤器中{0}的任何实例都将替换为group_search.user_attribute中定义的用户属性。

group_search.user_attribute

    指定获取的用户属性并将其作为参数提供给过滤器。如果未设置,则将用户DN传递到过滤器中。默认为空。

unmapped_groups_as_roles

      如果设置为true,则任何未映射的LDAP组的名称都将用作角色名称并分配给用户。如果在角色映射文件中未引用该组,则认为该组映射。不考虑基于API的角色映射。默认为false

files.role_mapping

    位置为 YAML角色映射配置文件。默认为 ES_PATH_CONF/role_mapping.yml

follow_referrals

        指定Elasticsearch是否应遵循LDAP服务器返回的引用。引用是服务器返回的URL,这些URL将用于继续LDAP操作(例如,搜索)。默认为true

metadata

     应从LDAP服务器加载并存储在已验证用户的元数据字段中的其他LDAP属性的列表。

timeout.tcp_connect

     建立LDAP连接的TCP连接超时时间。s结尾指秒,ms表示毫秒。默认为5s(5秒)。

timeout.tcp_read

    建立LDAP连接后的TCP读取超时时间。s结尾指秒,ms表示毫秒。默认为5s(5秒)。

timeout.ldap_search

      LDAP服务器对LDAP搜索强制执行超时期限。s结尾指秒,ms表示毫秒。默认为5s(5秒)。

ssl.key

       包含私钥的PEM编码文件的路径,如果LDAP服务器需要客户端身份验证,则使用该路径。ssl.key和ssl.keystore.path 不能同时使用。

ssl.key_passphrase

      用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

ssl.secure_key_passphrase安全

     用于解密私钥的密码。

ssl.certificate

      指向PEM编码文件的路径,该文件包含将在客户端连接时呈现给客户端的证书(或证书链)。

ssl.certificate_authorities

       应当信任的PEM编码证书文件的路径列表。 ssl.certificate_authorities与ssl.truststore.path不能同时使用。

ssl.keystore.path

     包含私钥和证书的Java Keystore文件的路径。 ssl.key与ssl.keystore.path可能无法同时使用。

ssl.keystore.type

     密钥库文件的格式。应当是:jks以使用Java密钥库格式,PKCS12以使用PKCS#12文件,或者PKCS11以使用PKCS#11令牌。默认为jks。

ssl.keystore.password

    密钥库的密码。

ssl.keystore.secure_password安全

    密钥库的密码。

ssl.keystore.key_password

    密钥库中密钥的密码。默认为密钥库密码。

ssl.keystore.secure_key_password

    密钥库中密钥的密码。默认为密钥库密码。

ssl.truststore.path

     包含要信任的证书的Java Keystore文件的路径。 ssl.certificate_authorities与ssl.truststore.path不能同时使用。

ssl.truststore.password

     信任库的密码。

ssl.truststore.secure_password安全

    信任库的密码。

ssl.truststore.type

       密钥库文件的格式。应当是:jks以使用Java密钥库格式,PKCS12以使用PKCS#12文件,或者PKCS11以使用PKCS#11令牌。默认为jks。

ssl.verification_mode

        指示ldaps用于防止中间攻击和证书伪造中的人时使用的验证类型。值是nonecertificatefull。默认为full

       有关ssl.verification_mode这些值的说明,请参见。

ssl.supported_protocols

       TLS/SSL支持的协议(带版本)。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

ssl.cipher_suites

          指定与LDAP服务器通信时应支持的密码套件。支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。请参阅ssl.cipher_suites 以获取默认值。

cache.ttl

     指定缓存的用户条目的生存时间。在此时间段内,将缓存用户及其凭据的哈希。使用标准的Elasticsearch 时间单位。默认为 20m

cache.max_users

        指定高速缓存可以包含的最大用户条目数。默认为100000

cache.hash_algo

       (专家设置)指定用于内存中缓存的用户凭据的哈希算法。请参见表1,“高速缓存哈希算法”。默认为ssha256

authentication.enabled

      如果设置为false,则禁用此域的身份验证支持,因此它仅支持用户查找。(请参阅运行方式和 授权域功能)。默认为true

 

Active Directory域设置

type设置必须设置为active_directory。除了适用于所有域设置之外 ,您还可以指定以下设置:

url

    格式为ldap[s]://<server>:<port>的一个或多个LDAP URL 。默认为 ldap://<domain_name>:389。使用SSL / TLS进行连接或使用自定义端口时,此设置是必需的。

       要提供多个URL,请使用YAML数组(["ldap://server1:636", "ldap://server2:636"])或以逗号分隔的字符串("ldap://server1:636, ldap://server2:636")。

      虽然两者都受支持,但是您不能混合使用ldapldaps协议。

       如果没有提供URL,Elasticsearch将使用默认值ldap://<domain_name>:389。此默认值使用domain_name设置的值,并假定与端口389的连接未加密。

load_balance.type

      定义了多个LDAP URL时使用的行为。有关受支持的值,请参阅负载平衡和故障转移类型。默认为failover

load_balance.cache_ttl

      当使用dns_failoverdns_round_robin作为负载均衡类型时,此设置控制缓存DNS查找的时间。默认为1h

domain_name

       Active Directory的域名。果未指定url和user_search_dn设置,则群集可以从此设置派生这些值。必需项。

bind_dn

     用于绑定到Active Directory并执行搜索的用户的DN。默认为空。由于其潜在的安全影响,因此不会通过node info API公开bind_dn

bind_password

    6.3 ] 在6.3中弃用。使用secure_bind_password代替。用于绑定到Active Directory的用户的密码。默认为空。由于其潜在的安全影响,因此不会通过node info API公开 bind_password

secure_bind_password安全

      用于绑定到Active Directory的用户的密码。默认为空。

unmapped_groups_as_roles

        如果设置为true,则任何未映射的Active Directory组的名称都将用作角色名称并分配给用户。如果在任何角色映射文件中未引用该组,则该组被视为映射。不考虑基于API的角色映射。默认为false

files.role_mapping

     该位置为YAML角色映射配置文件。默认为ES_PATH_CONF/role_mapping.yml

user_search.base_dn

      搜索用户的上下文。默认为Active Directory域的根。

user_search.scope

         指定是否将用户的搜索应该是sub_treeone_levelbase。 one_level仅搜索直接包含在base_dn中的用户。 sub_tree搜索包含在base_dn下的所有对象。base 指定,base_dn是用户对象,并且是唯一考虑的用户。默认为sub_tree

user_search.filter

       指定用于查找给定用户名的用户的筛选器。默认过滤器使用sAMAccountName或userPrincipalName查找用户(user)对象。如果指定,则必须是有效的LDAP用户搜索筛选器。例如(&(objectClass=user)(sAMAccountName={0}))。有关详细信息,请参见搜索过滤器语法

user_search.upn_filter

     指定用于查找给定用户主体名称的用户的筛选器。默认筛选器使用匹配的userPrincipalName查找用户对象。如果指定,则必须是有效的LDAP用户搜索筛选器。例如,(&(objectClass=user)(userPrincipalName={1})){1}是用户提供的完整用户主体名称。有关更多信息,请参见 搜索过滤器语法

user_search.down_level_filter

     指定用于查找给定下层登录名(域\用户)的用户的筛选器。默认筛选器在提供的域中查找具有匹配的sAMAccountName的用户对象。如果指定,则必须是有效的LDAP用户搜索筛选器。例如,(&(objectClass=user)(sAMAccountName={0}))。有关更多信息,请参见 搜索过滤器语法

user_search.pool.enabled

     启用或禁用用户搜索的连接池。禁用后,将为每个搜索创建一个新连接。当提供 bind_dn时,默认值为true。

user_search.pool.size

     连接池中允许的与Active Directory服务器的最大连接数。默认为20

user_search.pool.initial_size

      启动时创建到Active Directory服务器的初始连接数。默认为0。如果LDAP服务器已关闭,则大于0的值可能会导致启动失败。

user_search.pool.health_check.enabled

      对连接池中的Active Directory连接启用或禁用运行状况检查。在后台按指定间隔检查连接。默认为true

user_search.pool.health_check.dn

     在运行状况检查中要检索的专有名称。bind_dn如果存在该设置,则默认为的值。否则,它默认为user_search.base_dn设置的值。

user_search.pool.health_check.interval

      对池中的连接执行后台检查的时间间隔。默认为60s

group_search.base_dn

      搜索用户具有成员资格的组的上下文。默认为Active Directory域的根。

group_search.scope

      指定是否该组搜索应该是sub_treeone_level或 base。 one_level搜索直接包含在中的组 base_dnsub_tree搜索包含在下的所有对象base_dn。 base指定base_dn是组对象,并且是唯一考虑的组。默认为sub_tree

metadata

        应从LDAP服务器加载并存储在经过身份验证的用户的元数据字段中的其他LDAP属性的列表。

timeout.tcp_connect

      建立LDAP连接的TCP连接超时时间。s结端指秒,ms表示毫秒。默认为5s(5秒)。

timeout.tcp_read

     建立LDAP连接后的TCP读取超时时间。s结端指秒,ms表示毫秒。默认为5s(5秒)。

timeout.ldap_search

     LDAP服务器对LDAP搜索强制执行超时期限。s结端指秒,ms表示毫秒。默认为5s(5秒)。

ssl.certificate

     包含证书(或证书链)的PEM编码文件的路径,当客户端连接时将显示给它们。

ssl.certificate_authorities

     应当信任的PEM编码证书文件的路径列表。 ssl.certificate_authorities与ssl.truststore.path不能同时使用。

ssl.key

        包含私钥的PEM编码文件的路径,当Active Directory服务器需要客户端身份验证时使用该路径。ssl.key与 ssl.keystore.path不能同时使用。

ssl.key_passphrase

      用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

ssl.secure_key_passphrase安全

     用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

ssl.keystore.key_password

     密钥库中密钥的密码。默认为密钥库密码。

ssl.keystore.secure_key_password安全

     密钥库中密钥的密码。默认为密钥库密码。

ssl.keystore.password

     密钥库的密码。

ssl.secure_keystore.password安全

     密钥库的密码。

ssl.keystore.path

     包含私钥和证书的Java Keystore文件的路径。 ssl.key与ssl.keystore.path不能同时使用。

ssl.keystore.type

      密钥库文件的格式。应该是:jks以使用Java密钥库格式,PKCS12以使用PKCS#12文件,或者PKCS11以使用PKCS#11令牌。默认为jks。

ssl.truststore.password

     信任库的密码。

ssl.truststore.secure_password安全

     信任库的密码。

ssl.truststore.path

     包含要信任的证书的Java Keystore文件的路径。 ssl.certificate_authorities与ssl.truststore.path不能同时使用。

ssl.truststore.type

     信任库文件的格式。应该是:jks以使用Java密钥库格式,PKCS12以使用PKCS#12文件,或者PKCS11以使用PKCS#11令牌。默认为jks。

ssl.verification_mode

       指示使用ldaps防止中间人攻击和证书伪造时的验证类型。值为none、certificate和full。默认为full

     有关ssl.verification_mode这些值的说明,请参见。

ssl.supported_protocols

       TLS/SSL支持的协议(带版本)。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

ssl.cipher_suites

       指定与Active Directory服务器通信时应支持的密码套件。支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。请参阅ssl.cipher_suites以获取默认值。

cache.ttl

        指定缓存用户项的生存时间。在此配置的时间段内,将缓存用户及其凭据的哈希值。使用标准的Elasticsearch 时间单位。默认为20m

cache.max_users

      指定高速缓存可以包含的最大用户条目数。默认为100000

cache.hash_algo

    (专家设置)指定用于内存中缓存的用户凭据的哈希算法。请参见表1,“高速缓存哈希算法”。默认为ssha256

authentication.enabled

     如果设置为false,则禁用此域的身份验证支持,因此它仅支持用户查找。(请参阅运行方式和 授权域功能)。默认为true

follow_referrals

     如果设置为true,则Elasticsearch遵循LDAP服务器返回的引用。引荐是服务器返回的URL,这些URL将用于继续LDAP操作(例如search)。默认为true

 

PKI域设置

type设置必须设置为pki。除了适用于所有域设置之外 ,您还可以指定以下设置:

username_pattern

    用于从证书DN中提取用户名的正则表达式模式。第一个匹配组用作用户名。默认为CN=(.*?)(?:,\|$)

certificate_authorities

     应用于验证用户证书是否可信的PEM证书文件的路径列表。默认为为SSL配置的受信任证书。此设置不能与truststore.path一起使用。

truststore.algorithm

      信任库的算法。默认为SunX509

truststore.password

      信任库的密码。如果truststore.path已设置,则必须提供。

truststore.secure_password安全

     信任库的密码。

truststore.path

      要使用的信任库的路径。默认为为SSL配置的受信任证书。此设置不能与certificate_authorities一起使用。

files.role_mapping

      指定YAML角色映射配置文件位置。默认为ES_PATH_CONF/role_mapping.yml

authorization_realms

      委托授权应咨询的域名称。如果使用此设置,则PKI领域不执行角色映射,而是从列出的域中加载用户。请参阅将授权委派到另一个域

cache.ttl

      指定缓存的用户条目的生存时间。在此时间段内,将缓存用户及其凭据的哈希。使用标准的Elasticsearch 时间单位)。默认为20m

cache.max_users

       指定高速缓存可以包含的最大用户条目数。默认为100000

delegation.enabled

     通常,为了让客户机通过PKI领域的身份验证,他们必须直接连接到Elasticsearch。也就是说,它们不能通过终止TLS连接的代理。为了允许可信的智能代理(如Kibana)位于Elasticsearch之前并终止TLS连接,但仍然允许此域在Elasticsearch上对客户端进行身份验证,您需要将其切换为true。默认为false。如果启用了委派,则必须定义truststore.path或certificate_authorities设置。有关更多详细信息,请参阅为PKI域配置身份验证委派

SAML领域设置

type设置必须设置为saml。除了适用于所有域设置之外 ,您还可以指定以下设置:

idp.entity_id

    SAML身份提供者的实体ID。实体ID是URI,最大长度为1024个字符。它可以是URL(https://idp.example.com/)或URN(urn:example.com:idp),并且可以在身份提供程序的配置或SAML元数据中找到。

idp.metadata.path

     SAML 2.0元数据文件的路径(推荐)或URL,描述标识提供程序的功能和配置。如果提供了路径,则会相对于Elasticsearch配置目录解析该路径。如果提供了URL,则它必须是文件URL或https URL。Elasticsearch会自动轮询此元数据资源,并在检测到更改时重新加载IdP配置。基于文件的资源的轮询频率由全局Elasticsearch resource.reload.interval.high设置确定,该设置默认为5秒。https资源的轮询频率由领域的idp.metadata.http.refresh设置确定。

idp.metadata.http.refresh

    控制https检查元数据更改的频率。默认为1h(1小时)。

idp.use_single_logout

    指示是否使用身份提供者的单一注销服务(如果IdP元数据文件中存在一个服务)。默认为true

sp.entity_id

     用于此SAML服务提供者的实体ID。这应该作为URI输入。我们建议您使用Kibana实例的基本URL。例如, https://kibana.example.com/

sp.acs

     Kibana中的Assertion Consumer Service的URL。通常,这是您的Kibana服务器的“ api / security / v1 / saml”端点。例如, https://kibana.example.com/api/security/v1/saml

sp.logout

     Kibana中的“单一注销”服务的URL。通常,这是您的Kibana服务器的“注销”端点。例如, https://kibana.example.com/logout

attributes.principal

     包含用户主体(用户名)的SAML属性的名称。

attributes.groups

    包含用户组的SAML属性的名称。

attributes.name

    包含用户全名的SAML属性的名称。

attributes.mail

    包含用户电子邮件地址的SAML属性的名称。

attributes.dn

    包含用户X.50 专有名称的SAML属性的 名称

attribute_patterns.principal

     在应用于用户的主体属性之前,与attribute s.pattern指定的SAML属性匹配的Java正则表达式。属性值必须与模式匹配,并且第一个捕获组的值用作主体。例如,^([^@]+)@example\\.com$ 匹配来自“example.com”域的电子邮件地址,并使用本地部分作为主体。

attribute_patterns.groups

    根据attribute_patterns.principal,但用于group属性。

attribute_patterns.name

    根据attribute_patterns.principal,但用于name属性。

attribute_patterns.mail

    根据attribute_patterns.principal,但用于mail属性。

attribute_patterns.dn

    根据attribute_patterns.principal,但适用于dn属性。

nameid_format

      请求IdP验证当前用户时应请求的NameID格式。默认为请求临时名称(urn:oasis:names:tc:SAML:2.0:nameid-format:transient)。

nameid.allow_create

     身份验证请求中NameIdPolicy元素的AllowCreate属性的值。默认为false。

nameid.sp_qualifier

     身份验证请求中NameIdPolicy元素的SPNameQualifier属性的值。默认设置是不包含SPNameQualifier属性。

force_authn

      指定在请求IdP验证当前用户时是否设置ForceAuthn属性。如果设置为true,则IDP需要验证用户的身份,而不管它们可能存在的任何会话。默认为false。

populate_user_metadata

     指定是否使用SAML属性提供的值填充Elasticsearch用户的元数据。默认为true

authorization_realms

       委托授权应咨询的领域名称。如果使用此设置,则SAML领域不执行角色映射,而是从列出的域中加载用户。请参阅将授权委派到另一个域

allowed_clock_skew

       IdP的时钟与Elasticsearch节点的时钟之间可以容忍的最大歪斜量。默认为3m(3分钟)。

req_authn_context_class_ref

      当请求IdP对当前用户进行身份验证时,将在请求的身份验证上下文中包含以逗号分隔的身份验证上下文类参考值列表。相应身份验证响应的身份验证上下文应包含至少一个请求的值。

      有关更多信息,请参见 请求特定的身份验证方法

SAML域签名设置

如果配置了签名密钥(即设置了signing.key或 signing.keystore.path设置了签名密钥),则Elasticsearch会对传出的SAML消息进行签名。可以使用以下设置配置签名:

signing.saml_messages

    应签名的SAML消息类型的列表,或*以签名所有消息。列表中的每个元素都应该是SAML XML元素的本地名称。支持的元素类型有AuthnRequest、LogoutRequest和LogoutResponse。仅当还指定了signing.key或signing.keystore.path时才有效。默认为*。

signing.key

     指定用于SAML消息签名的PEM编码的私钥的路径。 signing.key与signing.keystore.path不能同时使用。

signing.secure_key_passphrase安全

      指定密码短语,以便在加密PEM编码的私钥(signing.key)时对其进行解密。

signing.certificate

        指定与signing.key对应的PEM编码证书(或证书链)的路径。此证书还必须包含在服务提供商元数据中,或在IdP中手动配置以允许签名验证。只有设置了signing.key,才能使用此设置。

signing.keystore.path

     包含私钥和证书的密钥库的路径。必须是Java Keystore(jks)或PKCS#12文件。 signing.key与signing.keystore.path不能同时使用。

signing.keystore.type

       signing.keystore.path中密钥库的类型。必须是jks或PKCS12。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为pkcs12。否则,默认为jks。

signing.keystore.alias

      指定密钥库中用于SAML消息签名的密钥的别名。如果密钥库包含多个私钥,则必须指定此设置。

signing.keystore.secure_password安全

    signing.keystore.path中密钥库的密码。

signing.keystore.secure_key_password安全

      密钥库(signing.keystore.path)中密钥的密码。默认为密钥库密码。

SAML域加密设置

如果配置了加密密钥(即,encryption.key或者 encryption.keystore.path已设置),那么Elasticsearch在生成元数据时会发布加密证书,并尝试解密传入的SAML内容。可以使用以下设置配置加密:

encryption.key

     指定用于SAML消息解密的PEM编码的私钥的路径。 encryption.key与encryption.keystore.path不能同时使用。

encryption.secure_key_passphrase安全

    指定密码短语,以便在加密PEM编码的私钥(encryption.key)时对其进行解密。

encryption.certificate

      指定与encryption.key关联的PEM编码证书(或证书链)的路径。此证书还必须包含在服务提供商元数据中,或在IdP中手动配置以启用消息加密。只有设置了encryption.key,才能使用此设置。

encryption.keystore.path

     包含私钥和证书的密钥库的路径。必须是Java密钥库(jks)或PKCS#12文件。不能同时使用encryption.key和encryption.keystore.path。

encryption.keystore.type

     密钥库的类型(encryption.keystore.path)。必须是jks或PKCS12。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为pkcs12。否则,默认为jks。

encryption.keystore.alias

       指定密钥库(encryption.keystore.path)中应用于SAML消息解密的密钥的别名。如果未指定,则密钥库中的所有兼容密钥对都将被视为用于解密的候选密钥。

encryption.keystore.secure_password安全

     密钥库(encryption.keystore.path)的密码。

encryption.keystore.secure_key_password安全

     密钥库中密钥的密码(encryption.keystore.path)。只支持一个密码。如果使用多个解密密钥,则它们不能有单独的密码。

SAML域SSL设置

如果要通过SSL/TLS加载IdP元数据(即IdP.metadata.path是使用https协议的URL),则可以使用以下设置配置SSL。

除了通过https加载元数据之外,这些设置不用于任何目的。

ssl.key

     指定用于HTTP客户端身份验证的PEM编码的私钥的路径(如果需要)。ssl.key与ssl.keystore.path不能同时使用。

ssl.key_passphrase

    指定密码短语,以便在加密PEM编码的私钥(ssl.key)时对其进行解密。不能与ssl.secure_key_passphrase一起使用。

ssl.secure_key_passphrase安全

     指定密码短语,以便在加密PEM编码的私钥(ssl.key)时对其进行解密。不能与ssl.key_passphrase一起使用。

ssl.certificate

     指定与密钥(ssl.key)关联的PEM编码证书(或证书链)的路径。仅当设置了ssl.key时才能使用此设置。

ssl.certificate_authorities

     指定应信任的PEM编码证书颁发机构证书的路径。不能同时使用ssl.certificate_authoritiesssl.truststore.path

ssl.keystore.path

      指定包含私钥和证书的密钥库的路径。必须是Java Keystore(jks)或PKCS#12文件。 ssl.key与ssl.keystore.path不能同时使用。

ssl.keystore.type

      密钥库的类型(ssl.keystore.path)。必须是jks或PKCS12。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为pkcs12。否则,默认为jks。

ssl.keystore.password

       密钥库的密码(ssl.keystore.path)。此设置不能与ssl.keystore.secure_password一起使用。

ssl.keystore.secure_password安全

      密钥库的密码(ssl.keystore.path)。此设置不能与ssl.keystore.password一起使用。

ssl.keystore.key_password

      密钥库中密钥的密码(ssl.keystore.path)。默认为密钥库密码。此设置不能与ssl.keystore.secure_key_password一起使用。

ssl.keystore.secure_key_password安全

      密钥库中密钥的密码(ssl.keystore.path)。默认为密钥库密码。此设置不能与ssl.keystore.key_password一起使用。

ssl.truststore.path

     包含要信任的证书的密钥库的路径。必须是Java密钥库(jks)或PKCS#12文件。不能同时使用ssl.certificate_authoritiesssl.truststore.path

ssl.truststore.type

     信任库的类型(ssl.truststore.path)。必须为jks或 PKCS12。如果密钥库路径以“ .p12”,“.pfx”或“ pkcs12”结尾,则此设置默认为PKCS12。否则,默认为jks

ssl.truststore.password

     信任库的密码(ssl.truststore.path)。此设置不能与ssl.truststore.secure_password一起使用。

ssl.truststore.secure_password安全

     信任库的密码(ssl.truststore.path)。此设置不能与ssl.truststore.password一起使用。

ssl.verification_mode

     其中一个是full(验证主机名和证书路径)、certificate(验证证书路径,但不验证主机名)或none(不执行验证)。默认为full
有关这些值的详细说明,请参见ssl.verification_mode

ssl.supported_protocols

    指定TLS/SSL支持的协议。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

ssl.cipher_suites

   指定应支持的密码套件。

Kerberos域设置

     对于Kerberos领域,type必须设置为kerberos。除了适用于所有域设置之外 ,您还可以指定以下设置:

keytab.path

      指定Kerberos keytab文件的路径,该文件包含此Elasticsearch节点使用的服务主体。这必须是Elasticsearch配置目录中的一个位置,并且该文件必须具有读取权限。必需的。

remove_realm_name

     设置为true可删除主体名称的领域部分。Kerberos中的主体名称的格式为user/instance@REALM。如果此选项为true,则域部分(@REALM)将不包含在用户名中。默认为false。

krb.debug

   设置为true启用Java登录模块的调试日志,该模块提供对Kerberos身份验证的支持。默认为false

cache.ttl

      缓存的用户条目的生存时间。用户在此时间段内被缓存。使用标准Elasticsearch 时间单位指定时间段 。默认为20m

cache.max_users

     在任何给定时间可以存在于高速缓存中的最大用户条目数。默认值为100,000。

authorization_realms

    委托授权应咨询的域名称。如果使用此设置,则Kerberos域不执行角色映射,而是从列出的域中加载用户。请参阅将授权委派到另一个域

OpenID Connect域设置

除了适用于所有域设置之外,您还可以指定以下设置:

op.issuer

      OpenID连接提供程序的可验证标识符。颁发者标识符通常是使用https方案的区分大小写的URL,该方案包含方案、主机和可选的端口号和路径组件,而不包含查询或片段组件。此设置的值应由OpenID Connect提供程序提供。

op.authorization_endpoint

      OpenID连接提供程序中授权终结点的URL。此设置的值应由OpenID Connect提供程序提供。

op.token_endpoint

      OpenID连接提供程序中令牌终结点的URL。此设置的值应由OpenID Connect提供程序提供。

op.userinfo_endpoint

     OpenID连接提供程序中用户信息终结点的URL。此设置的值应由OpenID Connect提供程序提供。

op.endsession_endpoint

     OpenID连接提供程序中结束会话终结点的URL。此设置的值应由OpenID Connect提供程序提供。

op.jwkset_path

     JSON Web密钥集的路径或URL,其中包含OpenID连接提供程序用于签名令牌和声明响应的密钥材料。如果提供了路径,则会相对于Elasticsearch配置目录解析该路径。如果提供了URL,则它必须是文件URL或https URL。Elasticsearch会自动缓存检索到的JWK集,以避免不必要的HTTP请求,但会在签名验证失败时尝试刷新JWK,因为这可能表示OpenID连接提供程序已旋转签名密钥。

    基于文件的资源的轮询频率由全局Elasticsearch resource.reload.interval.high设置确定,该设置默认为5秒。

rp.client_id

    在OpenID连接提供程序注册期间分配给Elasticsearch的OAuth 2.0客户端标识符

rp.client_secret安全

     在OpenID连接提供程序注册期间分配给Elasticsearch的OAuth 2.0客户端secret

rp.redirect_uri

       Kibana中的重定向URI。如果要使用授权代码流,这是Kibana服务器的“api/security/v1/oidc”端点。如果要使用隐式流,它是“api/security/v1/oidc/implicit”端点。例如,https://kibana.example.com/api/security/v1/oidc。

rp.response_type

     确定要使用的授权处理流的OAuth 2.0响应类型值。可以是授权代码授予流的代码,也可以是隐式流的id_token、id_token token之一。

rp.signature_algorithm

     Elasticsearch将使用的签名算法,以验证它将从OpenID连接提供程序接收的id令牌的签名。默认为RSA256

rp.requested_scopes

     作为身份验证请求的一部分,OpenID连接提供程序将请求的作用域值。可选,默认为openid

rp.post_logout_redirect_uri

      OpenID Connect提供程序在成功单次注销后应将浏览器重定向到的重定向URI(通常在Kibana中)。

claims.principal

      包含用户主体(用户名)的OpenID Connect声明的名称。

claims.groups

     包含用户组的OpenID Connect声明的名称。

claims.name

     包含用户全名的OpenID Connect声明的名称。

claims.mail

    包含用户电子邮件地址的OpenID Connect声明的名称。

claims.dn

     包含用户X.509 专有名称的OpenID Connect声明的名称。

claim_patterns.principal

      在应用于用户的主体属性之前,与claim s.principal指定的OpenID Connect声明匹配的Java正则表达式。属性值必须与模式匹配,并且第一个捕获组的值用作主体。例如,^([^@]+)@example\\.com$ 匹配来自“example.com”域的电子邮件地址,并使用本地部分作为主体。

claim_patterns.groups

    按照claim_patterns.principal,但用于groups属性。

claim_patterns.name

    按照claim_patterns.principal,但用于name属性。

claim_patterns.mail

     按照claim_patterns.principal,但用于mail属性。

claim_patterns.dn

     按照claim_patterns.principal,但适用于dn属性。

allowed_clock_skew

     在验证ID令牌的创建和过期时间时,应考虑允许的最大时钟偏斜。

populate_user_metadata

       指定是否使用OpenID Connect声明提供的值填充Elasticsearch用户的元数据。默认为true

http.connect_timeout

     控制用于与OpenID Connect Provider端点进行反向通道通信的http客户端的行为。指定在建立连接之前的超时。零值表示不使用超时。默认为5s

http.connection_read_timeout

      控制用于与OpenID Connect Provider端点进行反向通道通信的http客户端的行为。指定从连接管理器请求连接时使用的超时。默认为5s

http.socket_timeout

     控制用于到OpenID连接提供程序终结点的反向通道通信的http客户端的行为。指定套接字超时(SOYTimeOUT)以毫秒为单位,这是等待数据的超时,或者不同的是,两个连续数据包之间的最大周期不活动。默认为5s

http.max_connections

     控制用于到OpenID连接提供程序终结点的反向通道通信的http客户端的行为。指定在所有端点允许的最大连接数。

http.max_endpoint_connections

     控制用于到OpenID连接提供程序终结点的反向通道通信的http客户端的行为。指定每个端点允许的最大连接数。

OpenID Connect域SSL设置

以下设置可用于为与OpenID Connect Provider端点的所有传出http连接配置SSL。

这些设置用于Elasticsearch和OpenID Connect Provider之间的反向通道通信
 

ssl.key

      指定用于HTTP客户端身份验证的PEM编码的私钥的路径(如果需要)。ssl.key与ssl.keystore.path不能同时使用。

ssl.key_passphrase

    指定密码短语,以便在加密PEM编码的私钥(ssl.key)时对其进行解密。不能与ssl.secure_key_passphrase一起使用。

ssl.secure_key_passphrase安全

    指定密码短语,以便在加密PEM编码的私钥(ssl.key)时对其进行解密。不能与ssl.key_passphrase一起使用。

ssl.certificate

      指定与密钥(ssl.key)关联的PEM编码证书(或证书链)的路径。仅当设置了ssl.key时才能使用此设置。

ssl.certificate_authorities

     指定应信任的PEM编码证书颁发机构证书的路径。不能同时使用ssl.certificate_authorities与ssl.truststore.path

ssl.keystore.path

      指定包含私钥和证书的密钥库的路径。必须是Java密钥库(jks)或PKCS#12文件。不能同时使用ssl.key和ssl.keystore.path。

ssl.keystore.type

      密钥库的类型(ssl.keystore.path)。必须是jks或PKCS12。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为pkcs12。否则,默认为jks。

ssl.keystore.password

      密钥库的密码(ssl.keystore.path)。此设置不能与ssl.keystore.secure_password一起使用。

ssl.keystore.secure_password安全

    密钥库的密码(ssl.keystore.path)。此设置不能与ssl.keystore.password一起使用。

ssl.keystore.key_password

     密钥库中密钥的密码(ssl.keystore.path)。默认为密钥库密码。此设置不能与ssl.keystore.secure_key_密码一起使用。

ssl.keystore.secure_key_password安全

     密钥库中密钥的密码(ssl.keystore.path)。默认为密钥库密码。此设置不能与ssl.keystore.key_password一起使用。

ssl.truststore.path

     包含要信任的证书的密钥库的路径。必须是Java密钥库(jks)或PKCS#12文件。不能同时使用ssl.certificate\u authorities和ssl.truststore.path。

ssl.truststore.type

     信任库的类型(ssl.truststore.path)。必须是jks或PKCS12。如果密钥库路径以“.p12”、“.pfx”或“pkcs12”结尾,则此设置默认为pkcs12。否则,默认为jks。

ssl.truststore.password

     信任库的密码(ssl.truststore.path)。此设置不能与ssl.truststore.secure_password一起使用。

ssl.truststore.secure_password安全

    信任库的密码(ssl.truststore.path)。此设置不能与ssl.truststore.password一起使用。

ssl.verification_mode

    其中一个是full(验证主机名和证书路径)、certificate(验证证书路径,但不验证主机名)或none(不执行验证)。默认为full

    请参阅ssl.verification_mode以获取有关这些值的更详细说明。

ssl.supported_protocols

     指定TLS/SSL支持的协议。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

ssl.cipher_suites

     指定应支持的密码套件。

负载平衡和故障转移

load_balance.type设置可以具有以下值:

  • failover:按指定的顺序使用指定的URL。可连接到的第一台服务器将用于所有后续连接。如果到该服务器的连接失败,则可以建立连接的下一个服务器将用于后续连接。
  • dns_failover:在此操作模式下,只能指定一个URL。此URL必须包含DNS名称。系统将查询与此DNS名称对应的所有IP地址。与Active Directory或LDAP服务器的连接将始终按照检索顺序进行尝试。这与故障转移不同,因为列表没有重新排序,并且如果服务器在列表的开头出现故障,则仍将对每个后续连接进行尝试。
  • round_robin:连接将连续迭代提供的url列表。如果服务器不可用,则将继续遍历URL列表,直到建立成功的连接。
  • dns_round_robin:在此操作模式下,只能指定一个URL。此URL必须包含DNS名称。系统将查询与此DNS名称对应的所有IP地址。连接将连续迭代地址列表。如果服务器不可用,则将继续遍历URL列表,直到建立成功的连接。

TLS / SSL默认值设置

通常,以下值代表各种TLS设置的默认值。这些设置的前缀基于使用它们的上下文(例如xpack.security.authc.realms.ldap.corp_ldap.ssl.verification_mode 或xpack.security.transport.ssl.supported_protocols)。

有关更多信息,请参见 加密通信

*.ssl.supported_protocols

支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

如果xpack.security.fips_mode.enabled为true,则不能使用SSLv2Hello或SSLv3。参见FIPS 140-2

*.ssl.client_authentication

     控制服务器从客户端连接请求证书方面的行为。有效值是requiredoptionalnone。 required强制客户端出示证书,而optional 请求客户端证书,但不需要客户端出示证书。默认为required,默认none的HTTP除外。请参阅 HTTP TLS / SSL设置

*.ssl.verification_mode

控制证书的验证。有效值为:

  • full,它验证提供的证书是否由受信任的权威(CA)签名,并且还验证服务器的主机名(或IP地址)是否与证书中标识的名称匹配。
  • certificate,它验证提供的证书是否由受信任的权威(CA)签名,但不执行任何主机名验证。
  • none不对服务器证书进行任何验证。此模式禁用了SSL / TLS的许多安全性优点,只有在仔细考虑后才能使用。尝试解决TLS错误时,它主要是作为一种临时诊断机制,强烈建议不要在生产集群上使用它。

    默认值为full

*.ssl.cipher_suites

支持的密码套件可以在Oracle的 Java密码体系结构文档中找到

默认为TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA

上面的默认密码套件列表包括TLSv1.3密码和需要Java Cryptography Extension(JCE)无限强度管辖权策略文件用于256位AES加密的密码。如果TLSv1.3不可用,则TLSv1.3密码TLS_AES_256_GCM_SHA384`、TLS_AES_128_GCM_SHA256将不包括在默认列表中。如果256位AES不可用,则名称中包含AES_256的密码将不包含在默认列表中。最后,AES GCM在11之前的Java版本中存在已知的性能问题,并且只有在使用Java 11或更高版本时才会包含在默认列表中。
 

TLS / SSL密钥和可信证书设置

以下设置用于指定在通过SSL/TLS连接进行通信时应使用的私钥、证书和受信任证书。如果未配置受信任证书,则JVM信任的默认证书将与同一上下文中的密钥关联的证书一起受信任。对于需要客户端身份验证的连接或作为启用SSL的服务器时,密钥和证书必须就位。

尽管支持将证书存储在PKCS#12文件中,但实际上并不常见。该elasticsearch-certutil工具以及Java keytool均被设计为生成可以用作密钥库和信任库的PKCS#12文件,但是使用其他工具创建的容器文件可能并非如此。通常,PKCS#12文件仅包含秘密和私有条目。以确认PKCS#12容器包括受信任的证书(“锚”)条目寻找 2.16.840.1.113894.746875.1.1: <Unsupported tag 6>在 openssl pkcs12 -info输出,或trustedCertEntry在 keytool -list输出。

HTTP TLS / SSL设置

您可以配置以下TLS / SSL设置。如果未配置设置, 则使用默认TLS / SSL设置

xpack.security.http.ssl.enabled

   用于启用或禁用TLS / SSL。默认值为false

xpack.security.http.ssl.supported_protocols

    支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

xpack.security.http.ssl.client_authentication

     控制服务器从客户端连接请求证书方面的行为。有效值是requiredoptionalnone。 required强制客户端出示证书,而optional 请求客户端证书,但不需要客户端出示证书。默认为none

xpack.security.http.ssl.cipher_suites

   支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。默认为``。

HTTP TLS / SSL密钥和可信证书设置

以下设置用于指定通过SSL / TLS连接进行通信时应使用的私钥,证书和受信任证书。必须配置私钥和证书。如果未指定以下任何设置,则使用默认TLS / SSL设置

PEM编码的文件

使用PEM编码的文件时,请使用以下设置:

xpack.security.http.ssl.key

    包含私钥的PEM编码文件的路径。

xpack.security.http.ssl.key_passphrase

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.security.http.ssl.secure_key_passphrase安全

     用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.security.http.ssl.certificate

   包含将在出现请求时显示的证书(或证书链)的PEM编码文件的路径。

xpack.security.http.ssl.certificate_authorities

应当信任的PEM编码证书文件的路径列表。

Java密钥库文件

使用包含私钥,证书和应信任的证书的Java密钥库文件(JKS)时,请使用以下设置:

xpack.security.http.ssl.keystore.path

      存放私钥和证书的密钥库的路径。

xpack.security.http.ssl.keystore.password

    密钥库的密码。

xpack.security.http.ssl.keystore.secure_password安全

    密钥库的密码。

xpack.security.http.ssl.keystore.key_password

    密钥库中私钥的密码。默认值与xpack.security.http.ssl.keystore.password相同。

xpack.security.http.ssl.keystore.secure_key_password安全

    密钥库中私钥的密码。

xpack.security.http.ssl.truststore.path

    信任库文件的路径。

xpack.security.http.ssl.truststore.password

    信任库的密码。

xpack.security.http.ssl.truststore.secure_password安全

    信任库的密码。

PKCS#12文件

可以将Elasticsearch配置为使用包含私有密钥,证书和应受信任的证书的PKCS#12容器文件(.p12或多个.pfx文件)。

PKCS#12文件的配置方式与Java密钥库文件相同:

xpack.security.http.ssl.keystore.path

    包含私钥和证书的PKCS#12文件的路径。

xpack.security.http.ssl.keystore.type

    进行设置PKCS12以指示密钥库是PKCS#12文件。

xpack.security.http.ssl.keystore.password

    PKCS#12文件的密码。

xpack.security.http.ssl.keystore.secure_password安全

    PKCS#12文件的密码。

xpack.security.http.ssl.keystore.key_password

    存储在PKCS#12文件中的私钥的密码。默认值与xpack.security.http.ssl.keystore.password相同。

xpack.security.http.ssl.keystore.secure_key_password安全

    存储在PKCS#12文件中的私钥的密码。

xpack.security.http.ssl.truststore.path

    包含要信任的证书的PKCS#12文件的路径。

xpack.security.http.ssl.truststore.type

    进行设置PKCS12以指示信任库是PKCS#12文件。

xpack.security.http.ssl.truststore.password

    PKCS#12文件的密码。

xpack.security.http.ssl.truststore.secure_password安全

    PKCS#12文件的密码。

PKCS#11令牌

可以将Elasticsearch配置为使用PKCS#11令牌,该令牌包含私钥,证书和应信任的证书。

PKCS#11令牌需要在JVM级别进行其他配置,并且可以通过以下设置启用:

xpack.security.http.keystore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作密钥库。

xpack.security.http.truststore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作信任库。

在配置JVM配置为用作Elasticsearch的密钥库或信任库的PKCS#11令牌时,可以通过在配置的上下文中将适当的值设置为ssl.truststore.password 或ssl.truststore.secure_password来配置令牌的PIN。由于只能配置一个PKCS#11令牌,因此只有一个密钥库和信任库可用于Elasticsearch中的配置。这又意味着在传输层和http层中,TLS只能使用一个证书。
 

传输TLS / SSL设置

您可以配置以下TLS / SSL设置。如果未配置设置, 则使用默认TLS / SSL设置

xpack.security.transport.ssl.enabled

    用于启用或禁用TLS / SSL。默认值为false

xpack.security.transport.ssl.supported_protocols

    支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

xpack.security.transport.ssl.client_authentication

    控制服务器从客户端连接请求证书方面的行为。有效值是requiredoptionalnone。 required强制客户端出示证书,而optional 请求客户端证书,但不需要客户端出示证书。默认为none`

xpack.security.transport.ssl.verification_mode

    控制证书的验证。有效值是none, certificatefull。默认为full

xpack.security.transport.ssl.cipher_suites

    支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。默认为``。

传输TLS / SSL密钥和受信任的证书设置

以下设置用于指定通过SSL / TLS连接进行通信时应使用的私钥,证书和受信任证书。必须配置私钥和证书。如果未指定以下任何设置,则使用默认TLS / SSL设置

PEM编码的文件

使用PEM编码的文件时,请使用以下设置:

xpack.security.transport.ssl.key

    包含私钥的PEM编码文件的路径。

xpack.security.transport.ssl.key_passphrase

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.security.transport.ssl.secure_key_passphrase安全

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.security.transport.ssl.certificate

    包含将在出现请求时显示的证书(或证书链)的PEM编码文件的路径。

xpack.security.transport.ssl.certificate_authorities

    应当信任的PEM编码证书文件的路径列表。

Java密钥库文件

使用包含私钥,证书和应信任的证书的Java密钥库文件(JKS)时,请使用以下设置:

xpack.security.transport.ssl.keystore.path

    存放私钥和证书的密钥库的路径。

xpack.security.transport.ssl.keystore.password

    密钥库的密码。

xpack.security.transport.ssl.keystore.secure_password安全

    密钥库的密码。

xpack.security.transport.ssl.keystore.key_password

    密钥库中私钥的密码。默认值与相同xpack.security.transport.ssl.keystore.password

xpack.security.transport.ssl.keystore.secure_key_password安全

    密钥库中私钥的密码。

xpack.security.transport.ssl.truststore.path

    信任库文件的路径。

xpack.security.transport.ssl.truststore.password

    信任库的密码。

xpack.security.transport.ssl.truststore.secure_password安全

    信任库的密码。

PKCS#12文件

Elasticsearch可以配置为使用PKCS#12容器文件(.p12或.pfx文件),这些文件包含应信任的私钥、证书和证书。

PKCS#12文件的配置方式与Java密钥库文件相同:

xpack.security.transport.ssl.keystore.path

     包含私钥和证书的PKCS#12文件的路径。

xpack.security.transport.ssl.keystore.type

    进行设置PKCS12以指示密钥库是PKCS#12文件。

xpack.security.transport.ssl.keystore.password

    PKCS#12文件的密码。

xpack.security.transport.ssl.keystore.secure_password安全

    PKCS#12文件的密码。

xpack.security.transport.ssl.keystore.key_password

    存储在PKCS#12文件中的私钥的密码。默认值与xpack.security.transport.ssl.keystore.password相同。

xpack.security.transport.ssl.keystore.secure_key_password安全

    存储在PKCS#12文件中的私钥的密码。

xpack.security.transport.ssl.truststore.path

    包含要信任的证书的PKCS#12文件的路径。

xpack.security.transport.ssl.truststore.type

    进行设置PKCS12以指示信任库是PKCS#12文件。

xpack.security.transport.ssl.truststore.password

    PKCS#12文件的密码。

xpack.security.transport.ssl.truststore.secure_password安全

    PKCS#12文件的密码。

PKCS#11令牌

可以将Elasticsearch配置为使用PKCS#11令牌,该令牌包含私钥,证书和应信任的证书。

PKCS#11令牌需要在JVM级别进行其他配置,并且可以通过以下设置启用:

xpack.security.transport.keystore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作密钥库。

xpack.security.transport.truststore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作信任库。

在配置JVM配置为用作Elasticsearch的密钥库或信任库的PKCS#11令牌时,可以通过在配置的上下文中将适当的值设置为ssl.truststore.passwordssl.truststore.secure_password来配置令牌的PIN。由于只能配置一个PKCS#11令牌,因此只有一个密钥库和信任库可用于Elasticsearch中的配置。这又意味着在传输层和http层中,TLS只能使用一个证书。
 

传输配置文件TLS / SSL设置

默认传输可用的相同设置也可用于每个传输配置文件。默认情况下,传输配置文件的设置将与默认传输相同,除非指定了这些设置。

例如,让我们看看关键点设置。对于默认传输,这是xpack.security.transport.ssl.key。要在传输配置文件中使用此设置,请使用前缀transport.profiles.$PROFILE.xpack.security。并在xpack.security.transport.之后附加设置的部分。对于密钥设置,这将是transport.profiles.$PROFILE.xpack.security.ssl.key

IP过滤设置

您可以配置以下IP过滤设置。

xpack.security.transport.filter.allow

   允许的IP地址列表。

xpack.security.transport.filter.deny

    要拒绝的IP地址列表。

xpack.security.http.filter.allow

    仅允许HTTP使用的IP地址列表。

xpack.security.http.filter.deny

    仅拒绝HTTP的IP地址列表。

transport.profiles.$PROFILE.xpack.security.filter.allow

    允许用于此配置文件的IP地址列表。

transport.profiles.$PROFILE.xpack.security.filter.deny

    要拒绝此配置文件的IP地址列表。

用户高速缓存和密码的哈希算法

某些领域将用户凭据存储在内存中。为了限制凭证被盗的风险并减少凭证泄漏,缓存只在内存中存储用户凭证的哈希版本。默认情况下,用户缓存使用salted sha-256散列算法进行散列。通过将cache.hash_algo域设置设置为以下任何值,可以使用不同的哈希算法:

表1.高速缓存哈希算法

算法

 

 

描述

ssha256

 

 

使用加盐sha-256算法(默认)。

md5

 

 

使用MD5算法。

sha1

 

 

使用SHA1算法。

bcrypt

 

 

使用bcrypt算法,在1024轮产生盐。

bcrypt4

 

 

使用bcrypt算法,在16轮产生盐。

bcrypt5

 

 

使用bcrypt算法,在32轮产生盐。

bcrypt6

 

 

使用bcrypt算法,在64轮产生盐。

bcrypt7

 

 

使用bcrypt算法,在128轮产生盐。

bcrypt8

 

 

使用bcrypt算法,在265轮产生盐。

bcrypt9

 

 

使用bcrypt算法,在512轮产生盐。

pbkdf2

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用10000次迭代。

pbkdf2_1000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用1000次迭代。

pbkdf2_10000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用10000次迭代。

pbkdf2_50000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用50000次迭代。

pbkdf2_100000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用100000次迭代。

pbkdf2_500000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用500000次迭代。

pbkdf2_1000000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用1000000次迭代。

noopclear_text

 

 

不会散列凭据并将其保存在内存中的明文中。警告:保持明文被认为是不安全的,并且在操作系统级别可能会受到损害(例如通过内存转储和使用ptrace)。

同样,存储密码的领域使用加密强和特定于密码的salt值散列它们。您可以通过将xpack.security.authc.password_hashing.algorithm设置设置为以下之一来配置密码哈希算法:

表2.密码哈希算法

算法  描述

bcrypt

 

 

使用bcrypt算法,在1024轮产生盐。(默认)

bcrypt4

 

 

使用bcrypt算法,在16轮产生盐。

bcrypt5

 

 

使用bcrypt算法,在32轮产生盐。

bcrypt6

 

 

使用bcrypt算法,在64轮产生盐。

bcrypt7

 

 

使用bcrypt算法,在128轮产生盐。

bcrypt8

 

 

使用bcrypt算法,在256轮产生盐。

bcrypt9

 

 

使用bcrypt算法,在512轮产生盐。

bcrypt10

 

 

使用bcrypt算法,在1024轮产生盐。

bcrypt11

 

 

使用bcrypt算法,在2048轮产生盐。

bcrypt12

 

 

使用bcrypt算法,在4096轮产生盐。

bcrypt13

 

 

使用bcrypt算法,在8192轮产生盐。

bcrypt14

 

 

使用bcrypt算法,在16284轮产生盐。

pbkdf2

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用10000次迭代。

pbkdf2_1000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用1000次迭代。

pbkdf2_10000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用10000次迭代。

pbkdf2_50000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用50000次迭代。

pbkdf2_100000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用100000次迭代。

pbkdf2_500000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用500000次迭代。

pbkdf2_1000000

 

 

使用PBKDF2密钥派生函数和HMAC-SHA512作为伪随机函数,使用1000000次迭代。

 

Elasticsearch中的SQL访问设置

默认情况下,SQL Access是启用的。您可以在elasticsearch.yml文件中配置这些SQL Access设置。

常规SQL访问设置

xpack.sql.enabled

设置为false禁用节点上的SQL Access。

 

Elasticsearch中的观察器(Watcher )设置

您可以配置Watcher设置来设置Watcher并通过电子邮件, Slack和 PagerDuty发送通知 。

除了安全设置(您已将其添加到Elasticsearch密钥库)外,所有这些设置都可以添加到配置文件elasticsearch.yml中。有关创建和更新Elasticsearch密钥库的更多信息,请参阅“ 安全设置”。还可以使用集群更新设置API在整个 集群中更新动态设置

一般观察器设置

xpack.watcher.enabled

    设置为false禁用节点上的Watcher。

xpack.watcher.encrypt_sensitive_data

      设置为true加密敏感数据。如果启用此设置,则还必须指定该xpack.watcher.encryption_key设置。有关更多信息,请参阅在Watcher中加密敏感数据

xpack.watcher.encryption_key安全

      指定包含用于加密敏感数据的密钥的文件的路径。如果xpack.watcher.encrypt_sensitive_data设置为true,则需要此设置。有关更多信息,请参阅在Watcher中加密敏感数据

xpack.watcher.history.cleaner_service.enabled

       [ 6.3.0 ] 在6.3.0中添加。默认更改为true。[ 7.0.0 ]在7.0.0中弃用。观察者历史记录索引现在由watch-history-ilm-policyILM策略管理

     设置为true(默认值)以启用更清洁的服务。如果此设置为 true,则xpack.monitoring.enabled还必须在true启用本地导出程序的情况下将该设置设置为。当Cleaner服务.watcher-history*确定旧版本的Watcher索引较旧时(例如),它将删除它们。Watcher索引的持续时间由xpack.monitoring.history.duration设置决定 ,默认设置为7天。有关该设置的更多信息,请参阅监视设置

xpack.http.proxy.host

     指定用于连接到HTTP服务的代理服务器的地址。

xpack.http.proxy.port

     指定用于连接到代理服务器的端口号。

xpack.http.default_connection_timeout

     启动连接时等待直到请求中止的最大时间。

xpack.http.default_read_timeout

     请求中止之前,两个数据包之间的最大不活动时间。

xpack.http.max_response_size

     指定允许HTTP响应具有的最大大小,默认为 10mb,最大可配置值为50mb

xpack.http.whitelist

     允许内部HTTP客户端连接的URL列表。此客户端用于HTTP输入,webhook,slack,pagerduty和jira操作。此设置可以动态更新。它默认为* 允许所有操作。注意:如果您配置此设置,并且正在使用Slack/寻呼任务之一,则必须确保将相应的端点也列入白名单。

观察者HTTP TLS / SSL设置

您可以配置以下TLS / SSL设置。如果未配置设置, 则使用默认TLS / SSL设置

xpack.http.ssl.supported_protocols

    支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

xpack.http.ssl.verification_mode

    控制证书的验证。有效值是none, certificatefull。默认为full

xpack.http.ssl.cipher_suites

     支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。默认为``。

观察者HTTP TLS / SSL密钥和可信证书设置

以下设置用于指定通过SSL / TLS连接进行通信时应使用的私钥,证书和受信任证书。私钥和证书是可选的,如果服务器要求客户端认证进行PKI认证,则将使用私钥和证书。如果未指定以下任何设置,则使用默认TLS / SSL设置

PEM编码的文件

使用PEM编码的文件时,请使用以下设置:

xpack.http.ssl.key

    包含私钥的PEM编码文件的路径。

xpack.http.ssl.key_passphrase

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.http.ssl.secure_key_passphrase安全

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.http.ssl.certificate

     包含将在出现请求时显示的证书(或证书链)的PEM编码文件的路径。

xpack.http.ssl.certificate_authorities

     应当信任的PEM编码证书文件的路径列表。

Java密钥库文件

使用包含私钥,证书和应信任的证书的Java密钥库文件(JKS)时,请使用以下设置:

xpack.http.ssl.keystore.path

    存放私钥和证书的密钥库的路径。

xpack.http.ssl.keystore.password

    密钥库的密码。

xpack.http.ssl.keystore.secure_password安全

    密钥库的密码。

xpack.http.ssl.keystore.key_password

    密钥库中私钥的密码。默认值与xpack.http.ssl.keystore.password相同。

xpack.http.ssl.keystore.secure_key_password安全

    密钥库中私钥的密码。

xpack.http.ssl.truststore.path

    信任库文件的路径。

xpack.http.ssl.truststore.password

    信任库的密码。

xpack.http.ssl.truststore.secure_password安全

    信任库的密码。

PKCS#12文件

可以将Elasticsearch配置为使用包含私有密钥,证书和应受信任的证书的PKCS#12容器文件(.p12或多个.pfx文件)。

PKCS#12文件的配置方式与Java密钥库文件相同:

xpack.http.ssl.keystore.path

    包含私钥和证书的PKCS#12文件的路径。

xpack.http.ssl.keystore.type

    进行设置PKCS12以指示密钥库是PKCS#12文件。

xpack.http.ssl.keystore.password

    PKCS#12文件的密码。

xpack.http.ssl.keystore.secure_password安全

    PKCS#12文件的密码。

xpack.http.ssl.keystore.key_password

    存储在PKCS#12文件中的私钥的密码。默认值与xpack.http.ssl.keystore.password相同。

xpack.http.ssl.keystore.secure_key_password安全

    存储在PKCS#12文件中的私钥的密码。

xpack.http.ssl.truststore.path

    包含要信任的证书的PKCS#12文件的路径。

xpack.http.ssl.truststore.type

    进行设置PKCS12以指示信任库是PKCS#12文件。

xpack.http.ssl.truststore.password

     PKCS#12文件的密码。

xpack.http.ssl.truststore.secure_password安全

    PKCS#12文件的密码。

PKCS#11令牌

可以将Elasticsearch配置为使用PKCS#11令牌,该令牌包含私钥,证书和应信任的证书。

PKCS#11令牌需要在JVM级别进行其他配置,并且可以通过以下设置启用:

xpack.http.keystore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作密钥库。

xpack.http.truststore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作信任库。

在配置JVM配置为用作Elasticsearch的密钥库或信任库的PKCS#11令牌时,可以通过在配置的上下文中将适当的值设置为 ssl.truststore.password 或ssl.truststore.secure_password来配置令牌的PIN。由于只能配置一个PKCS#11令牌,因此只有一个密钥库和信任库可用于Elasticsearch中的配置。这又意味着在传输层和http层中,TLS只能使用一个证书。
 
 

电子邮件通知设置

您可以在中配置以下电子邮件通知设置 elasticsearch.yml。有关通过电子邮件发送通知的更多信息,请参阅“ 配置电子邮件操作”

xpack.notification.email.account

     指定用于通过电子邮件发送通知的帐户信息。您可以指定以下电子邮件帐户属性:

profile动态

    用于构建从帐户发送的MIME消息 的电子邮件配置文件。有效值:standardgmail和 outlook。默认为standard

email_defaults.*动态

    一组可选的电子邮件属性,用作帐户发送的电子邮件的默认值。有关支持的属性,请参阅 电子邮件操作属性。

smtp.auth动态

        设置为true尝试使用AUTH命令对用户进行身份验证。默认为false

smtp.host动态

   要连接的SMTP服务器。必需。

smtp.port动态

   要连接的SMTP服务器端口。默认值为25。

smtp.user动态

    SMTP的用户名。必须。

smtp.secure_password安全

    指定的SMTP用户的密码。

smtp.starttls.enable动态

    设置为true启用以STARTTLS 在发出任何登录命令之前使用命令(如果服务器支持)将连接切换到TLS保护的连接。请注意,必须配置适当的信任库,以便客户端信任服务器的证书。默认为false

smtp.starttls.required动态

    如果为trueSTARTTLS则将是必需的。如果该命令失败,则连接将失败。默认为false

smtp.ssl.trust动态

     假定为受信任且禁用了证书验证的SMTP服务器主机的列表。如果设置为“ *”,则所有主机都是受信任的。如果设置为以空格分隔的主机列表,则这些主机是可信任的。否则,信任取决于服务器提供的证书。

smtp.timeout动态

    套接字读取超时。默认值为两分钟。

smtp.connection_timeout动态

    套接字连接超时。默认值为两分钟。

smtp.write_timeout动态

    套接字写入超时。默认值为两分钟。

smtp.local_address动态

    发送电子邮件时可配置的本地地址。默认情况下未配置。

smtp.local_port动态

    发送电子邮件时可配置的本地端口。默认情况下未配置。

smtp.send_partial动态

    尽管收件人地址之一无效,但仍发送电子邮件。

smtp.wait_on_quit动态

    如果设置为false,则发送QUIT命令并关闭连接。如果设置为true,则发送QUIT命令并等待答复。默认为True。

xpack.notification.email.html.sanitization.allow

    指定电子邮件通知中允许的HTML元素。有关更多信息,请参阅 配置HTML清理选项。您可以指定单个HTML元素和以下HTML功能组:

_tables

表中的所有相关的元素:<table><th><tr> 和<td>

_blocks

以下块元素:<p><div><h1>, <h2><h3><h4><h5><h6><ul><ol>, <li>,和<blockquote>

_formatting

下面内嵌格式化元素:<b><i>, <s><u><o><sup><sub><ins><del>, <strong><strike><tt><code><big>, <small><br><span>,和<em>

_links

<a>与元素href:该指向URL使用以下协议属性httphttps 和mailto

_styles

style所有元素上 的属性。请注意,还清理了CSS属性,以防止XSS攻击。

img

img:all

    所有图像(外部和嵌入式)。

img:embedded

    仅嵌入图像。嵌入式图像只能cid:在其src属性中使用 URL协议。

xpack.notification.email.html.sanitization.disallow

    指定电子邮件通知中不允许的HTML元素。您可以指定单个HTML元素和HTML功能组

xpack.notification.email.html.sanitization.enabled

    设置为false可完全禁用HTML环境卫生。不推荐。默认为true。

观察者电子邮件TLS / SSL设置

您可以配置以下TLS / SSL设置。如果未配置设置, 则使用默认TLS / SSL设置

xpack.notification.email.ssl.supported_protocols

    支持版本的协议。有效协议:SSLv2Hello、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3。如果JVM支持TLSv1.3,则默认为TLSv1.3、TLSv1.2、TLSv1.1,否则为TLSv1.2、TLSv1.1。

xpack.notification.email.ssl.verification_mode

    控制证书的验证。有效值是none, certificatefull。默认为full

xpack.notification.email.ssl.cipher_suites

    支持的密码套件可以在Oracle的 Java密码体系结构文档中找到。默认为``。

观察者电子邮件TLS / SSL密钥和可信证书设置

以下设置用于指定通过SSL / TLS连接进行通信时应使用的私钥,证书和受信任证书。私钥和证书是可选的,如果服务器要求客户端认证进行PKI认证,则将使用私钥和证书。如果未指定以下任何设置,则使用默认TLS / SSL设置

PEM编码的文件

使用PEM编码的文件时,请使用以下设置:

xpack.notification.email.ssl.key

    包含私钥的PEM编码文件的路径。

xpack.notification.email.ssl.key_passphrase

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.notification.email.ssl.secure_key_passphrase安全

    用于解密私钥的密码。该值是可选的,因为密钥可能未加密。

xpack.notification.email.ssl.certificate

        包含将在出现请求时显示的证书(或证书链)的PEM编码文件的路径。

xpack.notification.email.ssl.certificate_authorities

应当信任的PEM编码证书文件的路径列表。

Java密钥库文件

使用包含私钥,证书和应信任的证书的Java密钥库文件(JKS)时,请使用以下设置:

xpack.notification.email.ssl.keystore.path

    存放私钥和证书的密钥库的路径。

xpack.notification.email.ssl.keystore.password

    密钥库的密码。

xpack.notification.email.ssl.keystore.secure_password安全

    密钥库的密码。

xpack.notification.email.ssl.keystore.key_password

    密钥库中私钥的密码。默认值与xpack.notification.email.ssl.keystore.password相同。

xpack.notification.email.ssl.keystore.secure_key_password安全

    密钥库中私钥的密码。

xpack.notification.email.ssl.truststore.path

    信任库文件的路径。

xpack.notification.email.ssl.truststore.password

    信任库的密码。

xpack.notification.email.ssl.truststore.secure_password安全

    信任库的密码。

PKCS#12文件

可以将Elasticsearch配置为使用包含私有密钥,证书和应受信任的证书的PKCS#12容器文件(.p12或多个.pfx文件)。

PKCS#12文件的配置方式与Java密钥库文件相同:

xpack.notification.email.ssl.keystore.path

    包含私钥和证书的PKCS#12文件的路径。

xpack.notification.email.ssl.keystore.type

    进行设置PKCS12以指示密钥库是PKCS#12文件。

xpack.notification.email.ssl.keystore.password

    PKCS#12文件的密码。

xpack.notification.email.ssl.keystore.secure_password安全

    PKCS#12文件的密码。

xpack.notification.email.ssl.keystore.key_password

    存储在PKCS#12文件中的私钥的密码。默认值与相同xpack.notification.email.ssl.keystore.password

xpack.notification.email.ssl.keystore.secure_key_password安全

    存储在PKCS#12文件中的私钥的密码。

xpack.notification.email.ssl.truststore.path

    包含要信任的证书的PKCS#12文件的路径。

xpack.notification.email.ssl.truststore.type

    进行设置PKCS12以指示信任库是PKCS#12文件。

xpack.notification.email.ssl.truststore.password

    PKCS#12文件的密码。

xpack.notification.email.ssl.truststore.secure_password安全

    PKCS#12文件的密码。

PKCS#11令牌

    可以将Elasticsearch配置为使用PKCS#11令牌,该令牌包含私钥,证书和应信任的证书。

    PKCS#11令牌需要在JVM级别进行其他配置,并且可以通过以下设置启用:

xpack.notification.email.keystore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作密钥库。

xpack.notification.email.truststore.type

    进行设置PKCS11以指示应将PKCS#11令牌用作信任库。

在配置JVM配置为用作Elasticsearch的密钥库或信任库的PKCS#11令牌时,可以通过在配置的上下文中将适当的值设置为ssl.truststore.password 或ssl.truststore.secure_password来配置令牌的PIN。由于只能配置一个PKCS#11令牌,因此只有一个密钥库和信任库可用于Elasticsearch中的配置。这又意味着在传输层和http层中,TLS只能使用一个证书。
 

Slack通知设置

您可以在elasticsearch.yml中配置以下Slack通知设置。有关通过Slack发送通知的详细信息,请参阅配置Slack操作

xpack.notification.slack

    指定用于通过Slack发送通知的帐户信息。您可以指定以下Slack帐户属性:

secure_url安全

    用于将消息发布到Slack的传入Webhook URL。必需。

message_defaults.from

    要显示在Slack消息中的发件人名称。默认为watch  ID。

message_defaults.to

    您要向其发送消息的默认Slack频道或组。

message_defaults.icon

    显示在Slack消息中的图标。覆盖传入的Webhook的已配置图标。接受图像的公共URL。

message_defaults.text

    默认消息内容。

message_defaults.attachment

    默认邮件附件。Slack的邮件附件使您可以创建格式更丰富的邮件。指定为 Slack附件文档中定义的数组 。

Jira通知设置

您可以在elasticsearch.yml中配置以下Jira通知设置。有关使用通知在Jira中创建问题的更多信息,请参阅“ 配置Jira操作”

xpack.notification.jira

    指定用于使用通知在Jira中创建问题的帐户信息。您可以指定以下Jira帐户属性:

secure_url安全

    Jira软件服务器的URL。必需。

secure_user安全

    连接到Jira软件服务器的用户名。必需。

secure_password安全

    连接到Jira软件服务器的用户密码。必需。

issue_defaults

    在Jira中创建的问题的默认字段值。有关更多信息,请参见 Jira动作属性。可选的。

PagerDuty通知设置

您可以在elasticsearch.yml中配置以下页面输出通知设置。有关通过PagerDuty发送通知的详细信息,请参阅配置PagerDuty操作

xpack.notification.pagerduty

     指定用于通过PagerDuty发送通知的帐户信息。您可以指定以下PagerDuty帐户属性:

name

    与您用于访问PagerDuty的API密钥关联的PagerDuty帐户的名称。必需。

secure_service_api_key安全

    用于访问PagerDuty 的 PagerDuty API密钥。必需。

event_defaults

   PagerDuty事件属性的 默认值 。可选。

description

    包含PagerDuty事件的默认描述的字符串。如果未配置默认值,则每个PagerDuty操作都必须指定说明。

incident_key

   包含发送PagerDuty事件时要使用的默认事件键的字符串。

client

    指定默认监视客户端的字符串。

client_url

    默认监视客户端的URL。

event_type

    默认事件类型。有效值:triggerresolveacknowledge

attach_payload

     默认情况下是否将监视负载作为事件的上下文提供。有效值:true,false。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值