原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/notification-settings.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/notification-settings.html

预警(Watcher) 设置

你可以配置 预警(Watcher) 设置,以设置观察器并通过emailSlack(世界上最受欢迎的工作平台和团队消息传递应用程序之一)PagerDuty(一套付费监控报警系统) 来发送提醒。

所有这些设置都可以添加到 elasticsearch.yml 配置文件中,只有安全设置除外,它是添加到 Elasticsearch 密钥库中的。 有关创建和更新 Elasticsearch 密钥库的更多信息,请参考 安全设置。 还可以使用 集群更新设置 API 动态更新整个集群的设置。

常规预警设置

xpack.watcher.enabled
设置为 false 以在该节点上禁用预警。
xpack.watcher.encrypt_sensitive_data
设置为 true 以加密敏感数据。 如果启用了该设置,还必须同时指定 xpack.watcher.encryption_key 设置。 更多信息请参考 在预警中加密敏感数据
xpack.watcher.encryption_key (安全)
指定包含用于加密敏感数据的密钥的文件的路径。 如果 xpack.watcher.encrypt_sensitive_data 被设置为 true,此设置也必须设置。 更多信息请参考 在预警中加密敏感数据
xpack.watcher.history.cleaner_service.enabled

[6.3.0] 在 6.3.0 版本中添加的。默认值变更为 true [7.0.0] 在 7.0.0 版本中废弃。预警历史索引现在在 watch-history-ilm-policy ILM 策略下管理。

设置为 true (默认值) 有启用清理服务。 如果此设置值为 true,则 xpack.monitoring.enabled 也必须设置为true,并启用 本地导出器(local exporter)。 当清理服务确定以前版本的预警索引(比如, .watcher-history*)是旧的时,会移除他们。 预警索引的保留时间由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 或 page duty 操作,则必须确保相应的 终端(endpoint) 也被显式允许。

预警的 HTTP TLS/SSL 设置

你可以配置以下TLS/SSL设置:

xpack.http.ssl.supported_protocols

支持的协议版本。 可用的协议包括: SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 。 如果JVM的 SSL 提供程序支持 TLSv1.3,则默认值为 TLSv1.3,TLSv1.2,TLSv1.1;否则,默认值为 TLSv1.2,TLSv1.1

如果 xpack.security.fips_mode.enabledtrue,则你不能使用 SSLv2HelloSSLv3。 参见 FIPS 140-2

xpack.http.ssl.verification_mode

控制证书的验证。有效值包括:

  • full,用于验证所提供的证书是否由可信机构(CA)签名,还验证服务器的主机名(或IP地址)是否与证书中标识的名称匹配。
  • certificate,用于验证所提供的证书是否由可信机构(CA)签名,但不执行任何主机名验证。
  • none不验证服务器的证书。 这种模式禁用了 SSL/TLS 的许多安全优势,应该在非常谨慎的考虑之后才使用。 它主要用作尝试解决 TLS 错误时的临时诊断机制;强烈建议不要在生产集群上使用它。

    默认值为 full

xpack.http.ssl.cipher_suites

支持的密码套件因使用的 Java 版本而异。 例如,对于版本11,默认值为 TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA.

上面列出的默认密码套件包括 TLSv1.3 密码和需要 Java 加密扩展(JCE)无限强度权限策略文件进行256位 AES 加密的密码。 如果 TLSv1.3 不可用,则 TLSv1.3 密码 TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256 不会包括在默认列表中。 如果 256-bit AES 不可用,则名字中有AES_256的密码不会包含在默认列表中。 最后,AES GCM 在 Java 11 之前的版本中存在已知的性能问题,只有在使用 Java 11 或更高版本时才会包含在默认列表中。

有关更多信息,请参见Oracle的 Java加密体系结构文档

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

下列设置用于指定通过SSL/TLS连接通信时应使用的私钥、证书和可信证书。 私钥和证书是可选的,如果服务器要求对PKI身份验证进行客户端身份验证,将会使用它们。

PEM 编码文件

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

xpack.http.ssl.key
包含私钥的 PEM 编码文件的路径。
xpack.http.ssl.key_passphrase
用于解密私钥的密码。由于密钥可能没有加密,因此该值是可选的。
xpack.http.ssl.secure_key_passphrase (Secure)
用于解密私钥的密码。由于密钥可能没有加密,因此该值是可选的
xpack.http.ssl.certificate
指定与密钥相关的 PEM 编码证书(或证书链)的路径。
xpack.http.ssl.certificate_authorities
应该受信任的 PEM 编码证书文件的路径列表。

Java 密钥库文件

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

xpack.http.ssl.keystore.path
包含私钥和证书的密钥库文件的路径。
xpack.http.ssl.keystore.password
密钥库的密码。
xpack.http.ssl.keystore.secure_password (安全)
密钥库的密码。
xpack.http.ssl.keystore.key_password
密钥库中密钥的密码。默认值是 密钥库密码(keystore password)
xpack.http.ssl.keystore.secure_key_password (安全)
密钥库中密钥的密码。默认值是 密钥库密码(keystore password)
xpack.http.ssl.truststore.path
包含要信任的证书的密钥库的路径。 它必须是 Java 密钥库(jks) 或 PKCS#12 文件。
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
包含私钥和证书的密钥库文件的路径。
xpack.http.ssl.keystore.type
密钥库文件的格式,必须是 jksPKCS12。 如果秘钥库路径以 ".p12"、".pfx" 或 ".pkcs12" 结尾,则其默认值为 PKCS12;否则,默认值为 jks
xpack.http.ssl.keystore.password
密钥库的密码。
xpack.http.ssl.keystore.secure_password (安全)
密钥库的密码。
xpack.http.ssl.keystore.key_password
密钥库中密钥的密码。默认值是密钥库密码。
xpack.http.ssl.keystore.secure_key_password (安全)
密钥库中密钥的密码。默认值是密钥库密码。
xpack.http.ssl.truststore.path
包含要信任的证书的密钥库的路径。它必须是Java密钥库(jks) 或 PKCS#12 文件。
xpack.http.ssl.truststore.type
将此项设置为 PKCS12 ,以表明信任库是 PKCS#12 文件。
xpack.http.ssl.truststore.password
信任库的密码。
xpack.http.ssl.truststore.secure_password (安全)
信任库的密码。

PKCS#11 令牌

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

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

xpack.http.keystore.type
将此项设置为 PKCS11 ,以表明 PKCS#11 令牌应该被用作密钥库。
xpack.http.truststore.type
信任库文件的格式。 对于Java秘钥库格式,使用 jks。 对于 PKCS#12 文件,使用 PKCS12。 对于 PKCS#11 令牌, 使用 PKCS11。 默认值为 jks

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

Email 通知设置

你可以在 elasticsearch.yml 中配置以下邮件通知设置。 有关通过电子邮件发送通知的详细信息,请参考 配置邮件行为

xpack.notification.email.account

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

profile (动态)
email配置用来构建从帐户发送的MIME消息。 可用的值有:standardgmailoutlook。 默认值为 standard
email_defaults.* (动态)
一组可选的电子邮件属性,作为从该帐户发送的电子邮件的默认值。 有关支持的属性,参考 Email 行为属性
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 (动态)
如果为 true,则必须使用 STARTTLS 命令。 如果该命令失败,连接也就失败了。 默认值为 false
smtp.ssl.trust (动态)
假定受信任且证书验证被禁用的 SMTP 服务器主机列表。 如果设置为*,则所有主机都是可信的。 如果设置为空白分隔的主机列表,则这些主机是可信的。 否则,信任依赖于服务器提供的证书。
smtp.timeout (动态)
socket 读取超时。默认值为 2 分钟。
smtp.connection_timeout (动态)
socket 连接超时时间,默认值为 2 分钟。
smtp.write_timeout (动态)
socket 写超时时间,默认值为 2 分钟。
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清理选项ons。 您可以指定单个HTML元素和以下HTML功能组:

_tables
所有与table有关的元素: <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
带有 href 属性的 <a> 元素,使用以下协议指向一个 URL:http, httpsmailto
_styles
所有元素的 style 属性。 注意,CSS 属性也会被清理以阻止 XSS 攻击。
img
img:all
所有图像 (外部及内嵌的)。
img:embedded
仅内嵌的图像。内嵌图像只能使用在 src 属性中使用 cid: URL 协议。
xpack.notification.email.html.sanitization.disallow
指定电子邮件通知中允许的 HTML 元素。 可以指定单个 HTML 元素和 HTML功能组
xpack.notification.email.html.sanitization.enabled
设置为 false 将完全禁用 HTML 清理。不推荐。默认为 true

预警邮件的 TLS/SSL 设置

可以配置以下TLS/SSL设置。

xpack.notification.email.ssl.supported_protocols

支持的协议版本。可用的协议包括:SSLv2HelloSSLv3TLSv1TLSv1.1TLSv1.2TLSv1.3。 如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认值为 TLSv1.3,TLSv1.2,TLSv1.1;否则,默认值为 TLSv1.2,TLSv1.1

如果 xpack.security.fips_mode.enabledtrue,则你不能使用 SSLv2HelloSSLv3。 参见 FIPS 140-2

xpack.notification.email.ssl.verification_mode

控制证书的验证。有效值包括:

  • full,用于验证所提供的证书是否由可信机构(CA)签名,还验证服务器的主机名(或IP地址)是否与证书中标识的名称匹配。
  • certificate,用于验证所提供的证书是否由可信机构(CA)签名,但不执行任何主机名验证。
  • none不验证服务器的证书。 这种模式禁用了 SSL/TLS 的许多安全优势,应该在非常谨慎的考虑之后才使用。 它主要用作尝试解决 TLS 错误时的临时诊断机制;强烈建议不要在生产集群上使用它。

    默认值为 full

xpack.notification.email.ssl.cipher_suites

支持的密码套件因使用的 Java 版本而异。例如,对于版本11,默认值为 TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA.

上面列出的默认密码套件包括 TLSv1.3 密码和需要 Java 加密扩展(JCE)无限强度权限策略文件进行256位 AES 加密的密码。 如果 TLSv1.3 不可用,则 TLSv1.3 密码 TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256 不会包括在默认列表中。 如果 256-bit AES 不可用,则名字中有AES_256的密码不会包含在默认列表中。 最后,AES GCM 在 Java 11 之前的版本中存在已知的性能问题,只有在使用 Java 11 或更高版本时才会包含在默认列表中。

有关更多信息,请参见Oracle的 Java加密体系结构文档

预警邮件的 TLS/SSL 密钥和可信证书设置

以下设置用于指定通过SSL/TLS连接进行通信时应使用的私钥、证书和可信证书。 必须配置私钥和证书。 私钥和证书是可选的,如果服务器要求对PKI身份验证进行客户端身份验证,将会使用它们。

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, Java keystore file)时,请使用以下设置:

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.secure_key_password (Secure)
密钥库中密钥的密码。默认值是密钥库密码。
xpack.notification.email.ssl.truststore.path
包含要信任的证书的密钥库的路径。它必须是Java密钥库(jks) 或 PKCS#12 文件。
xpack.notification.email.ssl.truststore.password
信任库的密码。
xpack.notification.email.ssl.truststore.secure_password (Secure)
信任库的密码。

PKCS#12 文件

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

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

xpack.notification.email.ssl.keystore.path
包含私钥和证书的密钥库文件的路径。
xpack.notification.email.ssl.keystore.type
密钥库文件的格式,必须是 jksPKCS12。 如果秘钥库路径以 ".p12"、".pfx" 或 ".pkcs12" 结尾,则其默认值为 PKCS12;否则,默认值为 jks
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.secure_key_password (安全)
密钥库中密钥的密码。默认值是密钥库密码。
xpack.notification.email.ssl.truststore.path
包含要信任的证书的密钥库的路径。它必须是Java密钥库(jks) 或 PKCS#12 文件。
xpack.notification.email.ssl.truststore.type
将此项设置为 PKCS12 ,以表明信任库是 PKCS#12 文件。
xpack.notification.email.ssl.truststore.password
信任库的密码。
xpack.notification.email.ssl.truststore.secure_password (安全)
信任库的密码。

PKCS#11 令牌

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

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

xpack.notification.email.keystore.type
将此项设置为 PKCS11,以表明 PKCS#11 令牌应该被用作密钥库。
xpack.notification.email.truststore.type
信任库文件的格式。 对于Java秘钥库格式,使用 jks。 对于 PKCS#12 文件,使用 PKCS12。 对于 PKCS#11 令牌, 使用 PKCS11。 默认值为 jks

在配置 PKCS#11 令牌(即 JVM 被配置为用作 Elasticsearch 的密钥库或信任库)时,可以通过在所配置的上下文中将适当的值设置为ssl.truststore.passwordssl.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 消息中显示的发件人姓名。默认为 预警的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 发送通知的详细信息,请参阅 配置 PagerDuty 行为

xpack.notification.pagerduty

指定通过 PagerDuty 发送通知的帐户信息。你可以指定以下 PagerDuty 责任帐户属性:

name
与用于访问 PagerDuty 的 API key 相关联的 PagerDuty 帐户的名称。必需的。
secure_service_api_key (安全)
用于访问 PagerDuty 的 PagerDuty API key。必需的。
event_defaults

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

description
一个字符串,包含 PagerDuty 事件的默认描述。 如果没有配置默认值,每个 PagerDuty 操作都必须指定一个description
incident_key
一个字符串,包含发送 PagerDuty 事件时使用的默认事件的 key。
client
一个字符串,指定默认的监视客户端。
client_url
默认的监视客户端的 URL 。
event_type
默认的时间类型。 有效的值有:trigger,resolve, acknowledge
attach_payload
默认情况下,是否提供监视负载作为事件的上下文。 有效的值有:true, false