加载中

电子邮件动作

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

电子邮件通知可以是纯文本,也可以使用 HTML 设置样式。你可以使用模板将监视器执行负载(payload)中的信息包含进来,并将整个监视器负载附加到邮件中。

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

你可以在 actions 数组中配置邮件操作。操作特定的属性使用 email 关键字指定。

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

"actions" : {
  "send_email" : {
    "email" : {
      "to" : "username@example.org",
      "subject" : "Watcher Notification",
      "body" : "{{ctx.payload.hits.total}} error logs found"
    }
  }
}
		
  1. 操作的 ID。
  2. 操作类型设置为 email
  3. 发送电子邮件的一个或多个地址。必须在操作定义或邮件账户配置中指定。
  4. 邮件主题可以包含静态文本和 Mustache 模板
  5. 邮件正文可以包含静态文本和 Mustache 模板。必须在操作定义或邮件账户配置中指定。

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

要配置附件,请指定附件文件的名称以及附件类型:datahttpreportingdata 附件类型将执行上下文负载附加到邮件消息中。http 附件类型允许你发出 HTTP 请求并将响应附加到邮件消息中。配置 http 附件类型时,必须指定请求 URL。reporting 附件类型是一种特殊类型,用于包含从 Kibana 渲染的 PDF 仪表板。该类型会持续轮询 Kibana 应用以检查仪表板渲染是否完成,从而避免可能被中间的防火墙或负载均衡器中断的长时间运行的 HTTP 连接。

"actions" : {
  "email_admin" : {
    "email": {
      "to": "John Doe <john.doe@example.com>",
      "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"
          }
        }
      }
    }
  }
}
		
  1. 附件的 ID,它用作邮件附件中的文件名。
  2. 附件的类型及其具体配置。
  3. 从中检索附件的 URL。
  4. 如果未指定格式,数据附件默认使用 JSON。
名称 描述
content_type 设置邮件附件的内容类型。默认情况下,内容类型是从 HTTP 服务发送的响应中提取的。你可以显式指定内容类型,以防响应未指定内容类型或指定错误,从而确保在邮件中正确设置该类型。可选。
内联 (inline) 配置为以 inline 处置方式发送的附件。这允许在 HTML 正文中使用嵌入式图像,这些图像会在某些电子邮件客户端中显示。可选。默认为 false
request 包含 HTTP 请求属性。你必须至少指定 url 属性来配置服务终结点的宿主机和路径。有关 HTTP 请求属性的完整列表,请参阅Webhook 操作属性。必需。
名称 描述
format 附加监视器数据,等同于在监视器配置中指定 attach_data。可选值为 jsonyaml。如果未指定,则默认为 yaml
名称 描述
url 触发仪表板创建的 URL
内联 (inline) 配置为以 inline 处置方式发送的附件。这允许在 HTML 正文中使用嵌入式图像,这些图像会在某些电子邮件客户端中显示。可选。默认为 false
retries 报告附件类型会尝试定期轮询以接收创建的 PDF。这配置了重试次数。默认为 40。可以全局配置 xpack.notification.reporting.retries 设置来更改默认值。
间隔 两次轮询尝试之间等待的时间。默认为 15s(这意味着默认情况下,watcher 会尝试下载仪表板 10 分钟,即 40 次,每次 15 秒)。可以全局配置 xpack.notification.reporting.interval 设置来更改默认值。
auth 请求的附加身份验证配置,详情请参阅使用 watcher
proxy 请求的附加代理配置。有关如何配置这些值的信息,请参阅HTTP 输入属性

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

请参阅自动化报告生成

名称 必填 默认值 描述
account 默认账户 用于发送电子邮件的电子邮件账户
from - 发送电子邮件的电子邮件地址。只要 from 字段解析为有效的电子邮件地址,它就可以包含 Mustache 模板
to - to 收件人的电子邮件地址。只要 to 字段解析为有效的电子邮件地址,它就可以包含 Mustache 模板
抄送 - cc 收件人的电子邮件地址。只要 cc 字段解析为有效的电子邮件地址,它就可以包含 Mustache 模板
bcc - bcc 收件人的电子邮件地址。只要 bcc 字段解析为有效的电子邮件地址,它就可以包含 Mustache 模板
reply_to - 将在消息的 Reply-To 标头上设置的电子邮件地址。只要 reply_to 字段解析为有效的电子邮件地址,它就可以包含 Mustache 模板
SSL-SSH 配置文件执行的操作 - 电子邮件的主题。主题可以是静态文本,也可以包含 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 中描述的可选个人姓名。地址可以表示为 user@host.domain 形式的字符串,也可以表示为 Personal Name <user@host.domain> 形式的字符串。你还可以将电子邮件地址指定为包含 nameaddress 字段的对象。

地址列表
地址列表可以指定为数组:[ 'Personal Name <user1@host.domain>', 'user2@host.domain' ]

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

你可以在 elasticsearch.ymlxpack.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 SMTP 服务发送邮件

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

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

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

如果当 Watcher 尝试发送邮件时,你收到了提示你需要从网页浏览器继续登录过程的身份验证错误,则需要将 Gmail 配置为允许不够安全的应用程序访问您的账户

如果你的账户启用了两步验证,则必须生成并使用独特的应用密码从 Watcher 发送邮件。有关更多信息,请参阅使用应用密码登录

使用以下电子邮件账户设置从 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 密码,请使用 keystore 命令(请参阅安全设置

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

发送电子邮件时,你必须提供发件人地址,可以是在账户配置中指定的默认地址,也可以作为监视器中邮件操作的一部分。

注意

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

使用以下电子邮件账户设置从 Amazon Simple Email Service (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>
		
  1. 在某些情况下,Amazon SES 会对 email_defaults.from 进行验证,以确保它是有效的本地电子邮件账户。
  2. smtp.host 因区域而异。

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

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

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

使用以下电子邮件账户设置从 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>
		
  1. 某些组织将 Exchange 配置为验证 from 字段是否为有效的本地电子邮件账户。
  2. 许多组织支持将你的电子邮件地址用作用户名,不过如果遇到与身份验证相关的失败,最好向系统管理员进行确认。

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

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

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
		
© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.