1 电子邮件

概述

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

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

配置

要将 email 配置为 media type:

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

Media type 选项卡包含通用 media type 属性:

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

导出 email media type 配置时,Password 会以明文形式导出。

以下参数是 email media type 的专用参数:

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

测试

要测试已配置的电子邮件介质类型是否正常工作:

  1. 在介质类型列表中找到相应的电子邮件。
  2. 单击列表最后一列中的 Test(将打开一个测试窗口)。
  3. 输入 Send to 收件人地址、消息正文,以及可选的主题。
  4. 单击 Test 发送测试消息。

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

用户媒介

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