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。

表 83. http 附件类型属性

名称 描述

content_type

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

inline

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

request

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

表 84. data 附件类型属性

名称 描述

format

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

表 85. reporting 附件类型属性

名称 描述

url

触发仪表板创建的 URL

inline

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

retries

reporting 附件类型尝试定期轮询以接收创建的 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

如果您收到身份验证错误,表明您需要从 Web 浏览器继续登录过程,而 Watcher 尝试发送电子邮件时,则需要将 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

发送电子邮件时,您必须提供发件人地址,无论是帐户配置中的默认地址还是监视器中的电子邮件操作的一部分。

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

从 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