Elasticsearch 中的 Watcher 设置

编辑

您可以配置 Watcher 设置,以设置 Watcher 并通过电子邮件SlackPagerDuty 发送通知。

所有这些设置都可以添加到 elasticsearch.yml 配置文件中,但安全设置除外,安全设置需要添加到 Elasticsearch 密钥库中。有关创建和更新 Elasticsearch 密钥库的更多信息,请参阅安全设置。动态设置也可以通过 集群更新设置 API 在整个集群中进行更新。

常规 Watcher 设置

编辑
xpack.watcher.enabled
静态)设置为 false 以禁用节点上的 Watcher。
xpack.watcher.encrypt_sensitive_data logo cloud
静态)设置为 true 以加密敏感数据。如果启用此设置,您还必须指定 xpack.watcher.encryption_key 设置。有关更多信息,请参阅 在 Watcher 中加密敏感数据
xpack.watcher.encryption_key
安全)指定包含用于加密敏感数据的密钥的文件路径。如果 xpack.watcher.encrypt_sensitive_data 设置为 true,则此设置是必需的。有关更多信息,请参阅 在 Watcher 中加密敏感数据
xpack.watcher.max.history.record.size
静态)可以写入到 Watcher 历史索引中的最大 Watcher 历史记录大小。任何更大的历史记录都将删除其某些较大的字段。默认为 10mb。
xpack.http.proxy.host
静态)指定用于连接到 HTTP 服务的代理服务器的地址。
xpack.http.proxy.port
静态)指定用于连接到代理服务器的端口号。
xpack.http.proxy.scheme
静态)用于与代理服务器通信的协议。有效值为 httphttps。默认为请求中使用的协议。
xpack.http.default_connection_timeout
静态)在连接启动时,等待请求中止的最长时间。
xpack.http.default_read_timeout
静态)在请求中止之前,两个数据包之间不活动的最长时间。
xpack.http.tcp.keep_alive
静态)是否在 HTTP 连接上启用 TCP 保持活动。默认为 true
xpack.http.connection_pool_ttl
静态)连接池中连接的生存时间。如果连接在此超时时间内未被重用,则会被关闭。默认情况下,生存时间是无限的,这意味着连接永远不会过期。
xpack.http.max_response_size
静态)指定允许 HTTP 响应的最大大小,默认为 10mb,最大可配置值为 50mb
xpack.http.whitelist
动态)内部 HTTP 客户端允许连接的 URL 列表。此客户端用于 HTTP 输入、Webhook、Slack、PagerDuty 和 Jira 操作。此设置可以动态更新。它默认为 *,允许所有内容。注意:如果您配置此设置并且正在使用 Slack/PagerDuty 操作之一,则必须确保也显式允许相应的端点。

Watcher HTTP TLS/SSL 设置

编辑

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

xpack.http.ssl.supported_protocols

静态)支持的协议及其版本。有效协议:SSLv2HelloSSLv3TLSv1TLSv1.1TLSv1.2TLSv1.3。如果 JVM 的 SSL 提供程序支持 TLSv1.3,则默认值为 TLSv1.3,TLSv1.2,TLSv1.1。否则,默认值为 TLSv1.2,TLSv1.1

Elasticsearch 依赖于 JDK 对 SSL 和 TLS 的实现。查看JDK 版本支持的 SSL/TLS 版本以获取更多信息。

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

xpack.http.ssl.verification_mode

静态)定义如何验证 TLS 连接中另一方提供的证书

有效值
full
验证提供的证书:其颁发日期在 not_beforenot_after 日期之内;链接到受信任的证书颁发机构 (CA);具有与证书内的名称匹配的 hostname 或 IP 地址。
certificate
验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书的 hostname
none

不执行证书验证。

将证书验证设置为 none 会禁用 SSL/TLS 的许多安全优势,这是非常危险的。仅当 Elastic 支持人员指示您在尝试解决 TLS 错误时作为临时诊断机制时,才设置此值。

默认为 full

xpack.http.ssl.cipher_suites

静态)支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为 TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_256_GCM_SHA384TLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_128_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA

有关更多信息,请参阅 Oracle 的 Java 加密架构文档

Watcher HTTP TLS/SSL 密钥和受信任证书设置

编辑

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

PEM 编码文件

编辑

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

xpack.http.ssl.key

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

如果需要 HTTP 客户端身份验证,则会使用此文件。您不能同时使用此设置和 ssl.keystore.path

xpack.http.ssl.secure_key_passphrase
安全)用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
xpack.http.ssl.certificate

静态)指定与密钥关联的 PEM 编码证书(或证书链)的路径。

仅当设置了 ssl.key 时才能使用此设置。

xpack.http.ssl.certificate_authorities

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

不能同时使用此设置和 ssl.truststore.path

Java 密钥库文件

编辑

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

xpack.http.ssl.keystore.path

静态)包含私钥和证书的密钥库文件的路径。

它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和 ssl.key

xpack.http.ssl.keystore.secure_password
安全)密钥库的密码。
xpack.http.ssl.keystore.secure_key_password
安全)密钥库中密钥的密码。默认值为密钥库密码。
xpack.http.ssl.truststore.path

静态)包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。

不能同时使用此设置和 ssl.certificate_authorities

xpack.http.ssl.truststore.secure_password
安全)信任库的密码。

PKCS#12 文件

编辑

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

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

xpack.http.ssl.keystore.path

静态)包含私钥和证书的密钥库文件的路径。

它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和 ssl.key

xpack.http.ssl.keystore.type
静态)密钥库文件的格式。它必须是 jksPKCS12。如果密钥库路径以 ".p12"、".pfx" 或 ".pkcs12" 结尾,则此设置默认为 PKCS12。否则,默认为 jks
xpack.http.ssl.keystore.secure_password
安全)密钥库的密码。
xpack.http.ssl.keystore.secure_key_password
安全)密钥库中密钥的密码。默认值为密钥库密码。
xpack.http.ssl.truststore.path

静态)包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。

不能同时使用此设置和 ssl.certificate_authorities

xpack.http.ssl.truststore.type
静态)将其设置为 PKCS12 以指示信任库是 PKCS#12 文件。
xpack.http.ssl.truststore.secure_password
安全)信任库的密码。

电子邮件通知设置

编辑

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

xpack.notification.email.default_account

动态)要使用的默认电子邮件帐户。

如果您配置了多个电子邮件帐户,则必须配置此设置,或者在 email 操作中指定要使用的电子邮件帐户。请参阅配置电子邮件帐户

xpack.notification.email.recipient_allowlist
动态)指定允许向其发送电子邮件的地址。如果收件人(To:Cc:Bcc:)不在这些模式之外,则会拒绝电子邮件并抛出错误。此设置默认为 ["*"],表示允许所有收件人。支持简单的 globbing,例如允许收件人列表中的 list-*@company.com

此设置不能与 xpack.notification.email.account.domain_allowlist 同时使用,如果同时设置两者,则会抛出错误。此设置可以通过使用通配符模式(例如 *@company.com)来指定允许的域。

xpack.notification.email.account
指定通过电子邮件发送通知的帐户信息。您可以指定以下电子邮件帐户属性
xpack.notification.email.account.domain_allowlist
动态)指定允许向其发送电子邮件的域。如果收件人(To:Cc:Bcc:)不在这些域之外,则会拒绝电子邮件并抛出错误。此设置默认为 ["*"],表示允许所有域。支持简单的 globbing,例如允许域列表中的 *.company.com

此设置不能与 xpack.notification.email.recipient_allowlist 同时使用,如果同时设置两者,则会抛出错误。

profile
动态)用于构建从帐户发送的 MIME 消息的电子邮件配置文件。有效值:standardgmailoutlook。默认为 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
动态)如果为 true,则需要 STARTTLS。如果该命令失败,则连接将失败。默认为 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><caption><col><colgroup><thead><tbody><tfoot>
_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><hr><br><span><em>
_links
静态)带有 href 属性的 <a> 元素,该属性指向使用以下协议的 URL:httphttpsmailto
_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
xpack.notification.reporting.warning.kbn-csv-contains-formulas.text
动态)指定一个自定义消息,如果 Kibana 的 CSV 文件的公式验证条件xpack.reporting.csv.checkForFormulastrue,则会发送该消息。在消息中使用 %s 作为文件名的占位符。默认为 警告:附件 [%s] 包含电子表格应用程序可能会解释为公式的字符。请在打开附件之前确保附件安全。

Watcher 电子邮件 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

Elasticsearch 依赖于 JDK 对 SSL 和 TLS 的实现。查看JDK 版本支持的 SSL/TLS 版本以获取更多信息。

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

xpack.notification.email.ssl.verification_mode

静态)定义如何验证 TLS 连接中另一方提供的证书

有效值
full
验证提供的证书:其颁发日期在 not_beforenot_after 日期之内;链接到受信任的证书颁发机构 (CA);具有与证书内的名称匹配的 hostname 或 IP 地址。
certificate
验证提供的证书并验证它是否由受信任的颁发机构 (CA) 签名,但不检查证书的 hostname
none

不执行证书验证。

将证书验证设置为 none 会禁用 SSL/TLS 的许多安全优势,这是非常危险的。仅当 Elastic 支持人员指示您在尝试解决 TLS 错误时作为临时诊断机制时,才设置此值。

默认为 full

xpack.notification.email.ssl.cipher_suites

静态)支持的密码套件因您使用的 Java 版本而异。例如,对于版本 12,默认值为 TLS_AES_256_GCM_SHA384TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHATLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_RSA_WITH_AES_256_GCM_SHA384TLS_RSA_WITH_AES_128_GCM_SHA256TLS_RSA_WITH_AES_256_CBC_SHA256TLS_RSA_WITH_AES_128_CBC_SHA256TLS_RSA_WITH_AES_256_CBC_SHATLS_RSA_WITH_AES_128_CBC_SHA

有关更多信息,请参阅 Oracle 的 Java 加密架构文档

Watcher 电子邮件 TLS/SSL 密钥和受信任的证书设置

编辑

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

PEM 编码文件

编辑

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

xpack.notification.email.ssl.key

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

如果需要 HTTP 客户端身份验证,则会使用此文件。您不能同时使用此设置和 ssl.keystore.path

xpack.notification.email.ssl.secure_key_passphrase
安全)用于解密私钥的密码短语。由于密钥可能未加密,因此此值是可选的。
xpack.notification.email.ssl.certificate

静态)指定与密钥关联的 PEM 编码证书(或证书链)的路径。

仅当设置了 ssl.key 时才能使用此设置。

xpack.notification.email.ssl.certificate_authorities

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

不能同时使用此设置和 ssl.truststore.path

Java 密钥库文件

编辑

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

xpack.notification.email.ssl.keystore.path

静态)包含私钥和证书的密钥库文件的路径。

它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和 ssl.key

xpack.notification.email.ssl.keystore.secure_password
安全)密钥库的密码。
xpack.notification.email.ssl.keystore.secure_key_password
安全)密钥库中密钥的密码。默认值为密钥库密码。
xpack.notification.email.ssl.truststore.path

静态)包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。

不能同时使用此设置和 ssl.certificate_authorities

xpack.notification.email.ssl.truststore.secure_password
安全)信任库的密码。

PKCS#12 文件

编辑

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

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

xpack.notification.email.ssl.keystore.path

静态)包含私钥和证书的密钥库文件的路径。

它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。您不能同时使用此设置和 ssl.key

xpack.notification.email.ssl.keystore.type
静态)密钥库文件的格式。它必须是 jksPKCS12。如果密钥库路径以 ".p12"、".pfx" 或 ".pkcs12" 结尾,则此设置默认为 PKCS12。否则,默认为 jks
xpack.notification.email.ssl.keystore.secure_password
安全)密钥库的密码。
xpack.notification.email.ssl.keystore.secure_key_password
安全)密钥库中密钥的密码。默认值为密钥库密码。
xpack.notification.email.ssl.truststore.path

静态)包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件。

不能同时使用此设置和 ssl.certificate_authorities

xpack.notification.email.ssl.truststore.type
静态)将其设置为 PKCS12 以指示信任库是 PKCS#12 文件。
xpack.notification.email.ssl.truststore.secure_password
安全)信任库的密码。

Slack 通知设置

编辑

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

xpack.notification.slack.default_account

动态)要使用的默认 Slack 帐户。

如果您配置了多个 Slack 帐户,则必须配置此设置,或者在 slack 操作中指定要使用的 Slack 帐户。请参阅配置 Slack 帐户

xpack.notification.slack.account

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

secure_url
安全可重新加载)用于将消息发布到 Slack 的传入 Webhook URL。必需。
message_defaults

Slack 消息属性的默认值。

from
动态)要在 Slack 消息中显示的发送者名称。默认为监视 ID。
to
动态)要向其发送消息的默认 Slack 频道或群组。
icon
动态)要在 Slack 消息中显示的图标。覆盖传入 Webhook 的配置图标。接受指向图像的公共 URL。
text
动态)默认消息内容。
attachment
动态)默认消息附件。Slack 消息附件使您可以创建格式更丰富的消息。按Slack 附件文档中定义的形式指定为数组。

Jira 通知设置

编辑

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

xpack.notification.jira.default_account

动态)要使用的默认 Jira 账户。

如果您配置了多个 Jira 账户,则必须配置此设置或在 jira 操作中指定要使用的 Jira 账户。请参阅 配置 Jira 账户

xpack.notification.jira.account

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

allow_http
动态)如果为 false,Watcher 将拒绝使用 HTTP 协议的 URL 设置。默认为 false
secure_url
安全可重载)Jira Software 服务器的 URL。必需。
secure_user
安全可重载)用于连接到 Jira Software 服务器的用户名。必需。
secure_password
安全可重载)用于连接到 Jira Software 服务器的用户密码。必需。
issue_defaults
动态)在 Jira 中创建的问题的默认字段值。有关更多信息,请参阅 Jira 操作属性。可选。

PagerDuty 通知设置

编辑

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

xpack.notification.pagerduty.default_account

动态)要使用的默认 PagerDuty 账户。

如果您配置了多个 PagerDuty 账户,则必须配置此设置或在 pagerduty 操作中指定要使用的 PagerDuty 账户。请参阅 配置 PagerDuty 账户

xpack.notification.pagerduty.account

指定通过 PagerDuty 发送通知的账户信息。您可以指定以下 PagerDuty 账户属性

name
静态)与您用于访问 PagerDuty 的 API 密钥关联的 PagerDuty 账户的名称。必需。
secure_service_api_key
安全可重载)用于访问 PagerDuty 的 PagerDuty API 密钥。必需。
event_defaults

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

description
动态)包含 PagerDuty 事件默认描述的字符串。如果未配置默认值,则每个 PagerDuty 操作都必须指定 description
incident_key
动态)包含发送 PagerDuty 事件时使用的默认事件键的字符串。
client
动态)指定默认监视客户端的字符串。
client_url
动态)默认监视客户端的 URL。
event_type
动态)默认事件类型。有效值:triggerresolveacknowledge
attach_payload
动态)是否默认提供 watch 有效负载作为事件的上下文。有效值:truefalse