电子邮件

概述

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

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

配置

要将 email 配置为媒体类型:

  1. 转到 Alerts > Media types
  2. 单击 Create media type(或在预定义媒体类型列表中单击 Email)。

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

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

导出 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 地址。
支持添加带有实际 email 地址的发件人显示名(例如,Zabbix_info <[email protected]>)。
与 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 的值。
支持 User macros
Password 用于认证的密码。
这会设置 CURLOPT_PASSWORD 的值。
支持 User macros
此处输入的值在导出媒体类型配置时会按原样导出。为避免在导出的文件中暴露敏感凭据,请使用用户宏(例如,{$EMAIL_SMTP_PASSWORD})代替字面密码——导出时会保留宏引用,而密钥值应在目标系统上重新配置。
OAuth tokens 单击 Configure,在新窗口中设置用于获取 OAuth tokens 的参数。
仅当 Authentication 字段中选择了 "OAuth" 时,此字段才可用。
Message format 选择消息格式:
HTML - 以 HTML 形式发送;
Plain text - 以纯文本形式发送。

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

另请参见 common media type parameters,了解如何配置默认消息和告警处理选项。

OAuth 令牌

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

导出电子邮件媒体类型配置时,Client secret 会以明文形式导出。

Parameter Description
Redirection endpoint 输入 Zabbix 前端 URL,OAuth 服务将通过该 URL 重定向回 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 发送测试消息。

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

用户媒介

配置好电子邮件媒介类型后,转到 Users > Users 部分,编辑用户配置文件,为该用户分配电子邮件媒介。 有关设置用户媒介的步骤(这些步骤适用于所有媒介类型),请参见 Media types 页面。