1 电子邮件

概述

要将电子邮件配置为消息的传递渠道,您需要将电子邮件配置为媒体类型,并为用户分配特定的电子邮件地址。

单个事件的多个通知将归并到同一个电子邮件会话线程中。

配置

要将 email 配置为媒体类型:

  1. 转到 告警 > 媒体类型
  2. 单击 创建媒体类型(或者在预定义媒体类型列表中单击 Email)。

媒体类型 选项卡包含通用的媒体类型属性:

所有必填输入字段都用红色星号标记。

导出 email 媒体类型配置时,密码会以明文形式导出。

以下参数是 email 媒体类型特有的:

Parameter Description
Email provider 选择 email 提供商:Generic SMTPGmailGmail relayOffice365Office365 relay
如果选择与 Gmail/Office365 相关的选项,则只需提供发件人 email 地址和密码;SMTP serverSMTP server portSMTP heloConnection security 等选项将由 Zabbix 自动填充。另请参见:Automated Gmail/Office365 media types
SMTP server 设置用于处理外发消息的 SMTP 服务器。
仅当选择 Generic SMTP 作为 email 提供商时,此字段可用。
SMTP server port 设置用于处理外发消息的 SMTP 服务器端口。
仅当选择 Generic SMTP 作为 email 提供商时,此字段可用。
Email 此处输入的地址将用作发送消息的 From 地址。
支持添加发件人显示名称(例如上方截图中 Zabbix_info [email protected] 里的 "Zabbix_info")以及实际的 email 地址。
与 RFC 5322 允许的内容相比,Zabbix email 中对显示名称有一些限制,示例如下:
有效示例:
[email protected](仅 email 地址,无需使用尖括号)
Zabbix_info [email protected](显示名称和尖括号中的 email 地址)
∑Ω-monitoring [email protected](显示名称中包含 UTF-8 字符)
无效示例:
Zabbix HQ [email protected](有显示名称,但 email 地址周围没有尖括号)
"Zabbix@<H(comment)Q>" <[email protected]>(尽管符合 RFC 5322,但 Zabbix email 不支持带引号的对和注释)
SMTP helo 设置正确的 SMTP helo 值,通常为域名。
如果留空,将发送 email 的域名(即 Email 字段中 @ 后面的部分)。如果无法获取域名,将记录一条调试级别警告,并使用服务器主机名作为 HELO 命令的域名。
仅当选择 Generic SMTP 作为 email 提供商时,此字段可用。
Connection security 选择连接安全级别:
None - 不使用 CURLOPT_USE_SSL 选项
STARTTLS - 使用 CURLOPT_USE_SSL 选项,值为 CURLUSESSL_ALL
SSL/TLS - 可选使用 CURLOPT_USE_SSL
SSL verify peer 勾选复选框以验证 SMTP 服务器的 SSL 证书。
服务器配置指令 "SSLCALocation" 的值应放入 CURLOPT_CAPATH 以进行证书验证。
这会设置 cURL 选项 CURLOPT_SSL_VERIFYPEER
SSL verify host 勾选复选框以验证 SMTP 服务器证书的 Common Name 字段或 Subject Alternate Name 字段是否匹配。
这会设置 cURL 选项 CURLOPT_SSL_VERIFYHOST
Authentication 选择认证级别:
None - 不设置任何 cURL 选项
Username and password - 表示 "AUTH=*",由 cURL 决定认证机制
OAuth - OAuth 认证
Office365 relay email 提供商不支持 OAuth 认证。
Username 用于认证的用户名。
这会设置 CURLOPT_USERNAME 的值。
支持用户宏
Password 用于认证的密码。
这会设置 CURLOPT_PASSWORD 的值。
支持用户宏
此处输入的值在导出媒体类型配置时会按原样导出。为避免在导出的文件中暴露敏感凭据,请使用用户宏(例如 {$EMAIL_SMTP_PASSWORD})代替字面密码 — 导出时会保留宏引用,而密钥值应在目标系统上进行(重新)配置。
OAuth tokens 单击 Configure,在新窗口中设置用于获取OAuth tokens 的参数。
仅当在 Authentication 字段中选择 "OAuth" 时,此字段才可用。
Message format 选择消息格式:
HTML - 以 HTML 发送
Plain text - 以纯文本发送

要启用 SMTP 认证,Zabbix 服务器必须使用 --with-libcurl 编译选项进行编译,该选项需要 libcurl(版本详情请参见服务器要求)。

另请参见通用媒体类型参数,了解如何配置默认消息和告警处理选项。

OAuth 令牌

检索 OAuth 令牌需要以下参数:

导出电子邮件媒体类型配置时,客户端密钥会以明文形式导出。

Parameter Description
Redirection endpoint 输入 Zabbix 前端 URL,OAuth 服务将把 OAuth 授权重定向回该地址(格式为 https://<zabbix-frontend-url>/zabbix.php?action=oauth.authorize)。
当定义了 frontend URL 时,新建电子邮件媒体类型会自动设置该值。
Client ID 输入在 OAuth 授权服务器中注册的客户端应用的唯一标识符。
Client secret 输入在 OAuth 授权服务器中注册的客户端应用的私有密钥。
Authorization endpoint 输入用于请求用户授权的 OAuth 授权服务器 URL。
Authorization parameters 输入授权端点的参数。
Authorization code 输入授权码:
Automatic - 代码将通过重定向页面自动获取
Manual - 如果自动获取失败,请手动输入代码
Token endpoint 输入 OAuth 授权服务器 URL,用于将授权码交换为访问令牌和刷新令牌。
Token parameters 输入访问令牌的参数。

OAuth 令牌的检索为 GmailGmail relayOffice365 电子邮件提供商提供了自动化功能。只需提供 Redirection endpointClient IDClient secret 参数值。Zabbix 会自动填充其他必需值(请参见按提供商划分的 OAuth URL 默认值)。

OAuth 访问令牌和刷新令牌获取

提交 OAuth 参数后:

  1. 将打开一个浏览器弹窗,引导用户访问授权端点

  2. 用户在 OAuth 服务中授权 Zabbix。

  3. OAuth 服务会将用户重定向到 Zabbix 前端操作 oauth.authorize,并附带授权码和作用域值。

  4. 随后,Zabbix 将向令牌端点发出请求,以使用授权码换取访问令牌和刷新令牌。

测试

要测试已配置的 email 媒体类型是否正常工作:

  1. 在媒体类型的 列表 中找到相关的 email。
  2. 点击列表最后一列中的 Test(将打开一个测试窗口)。
  3. 输入 Send to 收件人地址、消息正文,并可选填写主题。
  4. 点击 Test 发送测试消息。

测试成功或失败的消息将显示在同一窗口中:

用户媒介

配置好电子邮件媒介类型后,前往 用户 > 用户 部分并编辑用户资料,将电子邮件媒介分配给该用户。
适用于所有媒介类型的用户媒介设置步骤,请参见媒介类型页面。