1 电子邮件

概述

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

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

配置

要将 email 配置为媒体类型:

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

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

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

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

以下参数是 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(版本详细信息请参见 server 要求)。

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

OAuth 令牌

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

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

对于 GmailGmail relayOffice365 电子邮件提供商,OAuth 令牌检索具有自动化功能。只需提供 重定向端点客户端 ID客户端密钥 参数值。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 发送测试消息。

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

用户媒介

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