Watcher 电子邮件操作

编辑

使用 email 操作发送电子邮件通知。要发送电子邮件,您必须在 elasticsearch.yml配置至少一个电子邮件帐户

电子邮件通知可以是纯文本,也可以使用 HTML 设置样式。您可以使用模板包含监视执行有效负载中的信息,并将整个监视有效负载附加到消息中。

有关支持的属性,请参阅电子邮件操作属性。电子邮件操作定义中缺少的任何属性都会在电子邮件帐户配置中查找。必需的属性必须在电子邮件操作定义或帐户的 email_defaults 中设置。

配置电子邮件操作

编辑

您在 actions 数组中配置电子邮件操作。特定于操作的属性使用 email 关键字指定。

例如,以下电子邮件操作使用模板在电子邮件正文中包含监视有效负载中的数据

"actions" : {
  "send_email" : { 
    "email" : { 
      "to" : "[email protected]", 
      "subject" : "Watcher Notification", 
      "body" : "{{ctx.payload.hits.total}} error logs found" 
    }
  }
}

操作的 ID。

操作类型设置为 email

要向其发送电子邮件的一个或多个地址。必须在操作定义或电子邮件帐户配置中指定。

电子邮件的主题可以包含静态文本和 Mustache 模板

电子邮件的正文可以包含静态文本和 Mustache 模板。必须在操作定义或电子邮件帐户配置中指定。

配置电子邮件附件

编辑

您可以将执行上下文有效负载或来自任何 HTTP 服务的数据附加到电子邮件通知。您可以配置的附件数量没有限制。

要配置附件,请为附加文件指定名称和附件类型:datahttpreportingdata 附件类型将执行上下文有效负载附加到电子邮件消息。http 附件类型使您可以发出 HTTP 请求并将响应附加到电子邮件消息。配置 http 附件类型时,您必须指定请求 URL。reporting 附件类型是一种特殊类型,用于包含来自 Kibana 的 PDF 呈现的仪表板。如果仪表板呈现完成,此类型会持续轮询 Kibana 应用程序,从而防止长时间运行的 HTTP 连接,这些连接可能会被中间的防火墙或负载均衡器终止。

"actions" : {
  "email_admin" : {
    "email": {
      "to": "John Doe <[email protected]>",
      "attachments" : {
        "my_image.png" : { 
          "http" : { 
            "content_type" : "image/png",
            "request" : {
              "url": "http://example.org/foo/my-image.png" 
            }
          }
        },
        "dashboard.pdf" : {
          "reporting" : {
            "url": "http://example.org:5601/api/reporting/generate/dashboard/Error-Monitoring"
          }
        },
        "data.yml" : {
          "data" : {
            "format" : "yaml" 
          }
        }
      }
    }
  }
}

附件的 ID,在电子邮件附件中用作文件名。

附件的类型及其特定配置。

从中检索附件的 URL。

如果您未指定格式,则数据附件默认为 JSON。

表 85. http 附件类型属性

名称 描述

content_type

设置电子邮件附件的内容类型。默认情况下,内容类型从 HTTP 服务发送的响应中提取。您可以显式指定内容类型,以确保在响应未指定内容类型或指定不正确的情况下,在电子邮件中正确设置类型。可选。

inline

配置为发送时带有处置 inline 的附件。这允许在 HTML 正文中使用嵌入式图像,这些图像显示在某些电子邮件客户端中。可选。默认为 false

request

包含 HTTP 请求属性。至少,您必须指定 url 属性来配置服务端点的主机和路径。有关 HTTP 请求属性的完整列表,请参阅Webhook 操作属性。必需。

表 86. data 附件类型属性

名称 描述

format

附加监视数据,相当于在监视配置中指定 attach_data。可能的值为 jsonyaml。如果未指定,则默认为 json

表 87. reporting 附件类型属性

名称 描述

url

触发仪表板创建的 URL

inline

配置为发送时带有处置 inline 的附件。这允许在 HTML 正文中使用嵌入式图像,这些图像显示在某些电子邮件客户端中。可选。默认为 false

retries

报告附件类型尝试定期轮询以接收创建的 PDF。这配置了重试次数。默认为 40。可以全局配置设置 xpack.notification.reporting.retries 以更改默认值。

interval

两次轮询尝试之间等待的时间。默认为 15s(这意味着,默认情况下,Watcher 尝试下载仪表板 10 分钟,四十次十五秒)。可以全局配置设置 xpack.notification.reporting.interval 以更改默认值。

auth

请求的附加身份验证配置,有关详细信息,请参阅 使用 Watcher

proxy

请求的附加代理配置。有关如何配置值的详细信息,请参阅HTTP 输入属性

将报告附加到电子邮件

编辑

您可以在 email 操作中使用 reporting 附件类型来自动生成 Kibana 报告并通过电子邮件分发。

请参阅自动化报告生成

电子邮件操作属性

编辑
名称 必需 默认值 描述

account

默认帐户

用于发送电子邮件的电子邮件帐户

from

-

将从中发送电子邮件的电子邮件地址from 字段可以包含 Mustache 模板,只要它解析为有效的电子邮件地址。

to

-

to 收件人的电子邮件地址to 字段可以包含 Mustache 模板,只要它解析为有效的电子邮件地址。

cc

-

cc 收件人的电子邮件地址cc 字段可以包含 Mustache 模板,只要它解析为有效的电子邮件地址。

bcc

-

bcc 收件人的电子邮件地址bcc 字段可以包含 Mustache 模板,只要它解析为有效的电子邮件地址。

reply_to

-

将在消息的 Reply-To 标头上设置的电子邮件地址reply_to 字段可以包含 Mustache 模板,只要它解析为有效的电子邮件地址。

subject

-

电子邮件的主题。主题可以是静态文本,也可以包含 Mustache 模板

body

-

电子邮件的正文。当此字段保存字符串时,它将默认为电子邮件的文本正文。设置为对象以指定文本正文或 html 正文,或两者都指定(使用以下字段)

body.text

-

电子邮件的纯文本正文。正文可以是静态文本,也可以包含 Mustache 模板

body.html

-

电子邮件的 html 正文。正文可以是静态文本,也可以包含 Mustache 模板。将对该正文进行清理,以删除危险内容,例如脚本。可以通过在 elasticsearch.yaml 中设置 xpack.notification.email.html.sanitization.enabled: false 来禁用此行为。

priority

-

此电子邮件的优先级。有效值为:lowestlownormalhighhighest。优先级可以包含 Mustache 模板,只要它解析为有效值之一。

attachments

-

将监视有效负载(data 附件)或从 HTTP 服务检索的文件(http 附件)附加到电子邮件。有关更多信息,请参阅配置电子邮件附件

attach_data

false

指示是否应将监视执行数据附加到电子邮件。您可以指定布尔值或对象。如果 attach_data 设置为 true,则数据将作为 YAML 文件附加。此属性已弃用,请使用 attachments 属性添加 data 附件以附加监视有效负载。

attach_data.format

yaml

attach_data 指定为对象时,此字段控制附加数据的格式。支持的格式为 jsonyaml。此属性已弃用,请使用 attachments 属性添加 data 附件以附加监视有效负载。

电子邮件地址
电子邮件地址可以包含两个部分——地址本身和一个可选的个人姓名,如RFC 822中所述。地址可以表示为 [email protected] 形式的字符串,或者 Personal Name <[email protected]> 形式。你也可以将电子邮件地址指定为一个包含 nameaddress 字段的对象。
地址列表
地址列表可以指定为一个数组:[ 'Personal Name <[email protected]>', '[email protected]' ]

配置电子邮件帐户

编辑

Watcher 可以使用任何 SMTP 电子邮件服务发送电子邮件。电子邮件消息可以包含基本的 HTML 标签。你可以通过配置 HTML 清理选项来控制允许哪些标签组。

你可以在 elasticsearch.yml 中的 xpack.notification.email 命名空间中配置 Watcher 用于发送电子邮件的帐户。指定的 SMTP 用户的密码安全地存储在Elasticsearch 密钥库中。

如果你的电子邮件帐户配置为需要两步验证,则需要生成并使用唯一的应用程序密码,以便从 Watcher 发送电子邮件。如果你使用主密码,身份验证将失败。

Watcher 提供了三个电子邮件配置文件,用于控制 MIME 消息的结构:standard(默认)、gmailoutlook。这些配置文件适应了各种电子邮件系统解释 MIME 标准的方式差异。如果你正在使用 Gmail 或 Outlook,我们建议使用相应的配置文件。如果你正在使用其他电子邮件系统,则使用 standard 配置文件。

有关配置 Watcher 以便与不同电子邮件系统协同工作的更多信息,请参阅

如果你配置了多个电子邮件帐户,则必须配置一个默认帐户,或者在 email 操作中指定应使用哪个帐户发送电子邮件。

xpack.notification.email:
  default_account: team1
  account:
    team1:
      ...
    team2:
      ...
从 Gmail 发送电子邮件
编辑

使用以下电子邮件帐户设置,从 Gmail SMTP 服务发送电子邮件

xpack.notification.email.account:
    gmail_account:
        profile: gmail
        smtp:
            auth: true
            starttls.enable: true
            host: smtp.gmail.com
            port: 587
            user: <username>

要存储帐户 SMTP 密码,请使用密钥库命令(请参阅安全设置

bin/elasticsearch-keystore add xpack.notification.email.account.gmail_account.smtp.secure_password

如果当 Watcher 尝试发送电子邮件时,你收到身份验证错误,指示你需要从 Web 浏览器继续登录过程,则需要配置 Gmail 以允许安全性较低的应用访问你的帐户

如果你的帐户启用了两步验证,则必须生成并使用唯一的应用程序密码,以便从 Watcher 发送电子邮件。有关更多信息,请参阅使用应用程序密码登录

从 Outlook.com 发送电子邮件
编辑

使用以下电子邮件帐户设置,从 Outlook.com SMTP 服务发送电子邮件操作

xpack.notification.email.account:
    outlook_account:
        profile: outlook
        smtp:
            auth: true
            starttls.enable: true
            host: smtp-mail.outlook.com
            port: 587
            user: <email.address>

要存储帐户 SMTP 密码,请使用密钥库命令(请参阅安全设置

bin/elasticsearch-keystore add xpack.notification.email.account.outlook_account.smtp.secure_password

发送电子邮件时,你必须提供发件人地址,可以是帐户配置中的默认地址,也可以是 Watch 中的电子邮件操作的一部分。

如果启用了两步验证,你需要使用唯一的应用程序密码。有关更多信息,请参阅应用程序密码和两步验证

从 Amazon SES(简单电子邮件服务)发送电子邮件
编辑

使用以下电子邮件帐户设置,从 Amazon 简单电子邮件服务 (SES) SMTP 服务发送电子邮件

xpack.notification.email.account:
    ses_account:
        email_defaults:
            from: <email address of service account> 
        smtp:
            auth: true
            starttls.enable: true
            starttls.required: true
            host: email-smtp.us-east-1.amazonaws.com 
            port: 587
            user: <username>

在某些情况下,Amazon SES 会验证 email_defaults.from,以确保它是有效的本地电子邮件帐户。

smtp.host 因区域而异。

要存储帐户 SMTP 密码,请使用密钥库命令(请参阅安全设置

bin/elasticsearch-keystore add xpack.notification.email.account.ses_account.smtp.secure_password

你需要使用你的 Amazon SES SMTP 凭据,才能通过 Amazon SES 发送电子邮件。有关更多信息,请参阅获取你的 Amazon SES SMTP 凭据。你可能还需要在 AWS 上验证你的电子邮件地址你的整个域

从 Microsoft Exchange 发送电子邮件
编辑

使用以下电子邮件帐户设置,从 Microsoft Exchange 发送电子邮件操作

xpack.notification.email.account:
    exchange_account:
        profile: outlook
        email_defaults:
            from: <email address of service account> 
        smtp:
            auth: true
            starttls.enable: true
            host: <your exchange server>
            port: 587
            user: <email address of service account> 

某些组织配置 Exchange 来验证 from 字段是否是有效的本地电子邮件帐户。

许多组织支持使用你的电子邮件地址作为用户名,但如果你收到与身份验证相关的失败,最好咨询你的系统管理员。

要存储帐户 SMTP 密码,请使用密钥库命令(请参阅安全设置

bin/elasticsearch-keystore add xpack.notification.email.account.exchange_account.smtp.secure_password
配置 HTML 清理选项
编辑

email 操作支持发送带有 HTML 正文的消息。但是,出于安全原因,Watcher 会清理 HTML。

你可以通过配置 elasticsearch.yml 中的 xpack.notification.email.html.sanitization.allowxpack.notification.email.html.sanitization.disallow 设置来控制允许或不允许哪些 HTML 功能。你可以指定单个 HTML 元素和HTML 功能组。默认情况下,Watcher 允许以下功能:bodyhead_tables_links_blocks_formattingimg:embedded

例如,以下设置允许 HTML 包含表格和块元素,但不允许 <h4><h5><h6> 标签。

xpack.notification.email.html.sanitization:
    allow: _tables, _blocks
    disallow: h4, h5, h6

要完全禁用清理,请将以下设置添加到 elasticsearch.yml

xpack.notification.email.html.sanitization.enabled: false