1 电子邮件

概述

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

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

配置

要将电子邮件配置为媒介类型:

  1. 前往 报警 > 媒介类型
  2. 点击 创建媒介类型(或在预定义媒介类型列表中点击 Email)。

媒介类型 选项卡包含媒介类型的一般属性:

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

导出电子邮件媒介类型配置时,密码会以明文形式导出。

以下参数是电子邮件媒介类型特有的:

Parameter Description
Email provider 选择电子邮件提供商:Generic SMTPGmailGmail relayOffice365Office365 relay
如果选择与 Gmail/Office365 相关的选项,则只需提供发件人电子邮件地址和密码;SMTP serverSMTP server portSMTP heloConnection security 等选项将由 Zabbix 自动填充。另请参见:自动化 Gmail/Office365 媒介类型
SMTP server 设置用于处理外发消息的 SMTP 服务器。
仅当选择 Generic SMTP 作为电子邮件提供商时,此字段可用。
SMTP server port 设置用于处理外发消息的 SMTP 服务器端口。
仅当选择 Generic SMTP 作为电子邮件提供商时,此字段可用。
Email 此处输入的地址将用作所发送消息的 From 地址。
支持在实际电子邮件地址前添加发件人显示名称(如上图中的 Zabbix_info zabbix\@company.com 里的 "Zabbix_info")。
与 RFC 5322 所允许的格式相比,Zabbix 电子邮件中的显示名称存在一些限制,示例如下:
有效示例:
zabbix\@company.com(仅电子邮件地址,无需使用尖括号)
Zabbix_info zabbix\@company.com(显示名称和置于尖括号中的电子邮件地址)
∑Ω-monitoring zabbix\@company.com(显示名称中包含 UTF-8 字符)
无效示例:
Zabbix HQ zabbix\@company.com(存在显示名称,但电子邮件地址未用尖括号括起)
"Zabbix\@\<H(comment)Q\>" zabbix\@company.com(尽管根据 RFC 5322 这是有效的,但 Zabbix 电子邮件不支持带引号的字符对和注释)
SMTP helo 设置正确的 SMTP helo 值,通常为域名。
如果为空,将发送电子邮件的域名(即 Email 字段中 @ 后面的部分)。如果无法获取域名,将记录一条调试级别警告,并发送服务器主机名作为 HELO 命令中的域名。
仅当选择 Generic SMTP 作为电子邮件提供商时,此字段可用。
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 电子邮件提供商不支持 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 令牌需要以下参数:

参数 说明
重定向端点 输入 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 发送测试消息。

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

用户介质

配置好电子邮件介质类型后,进入 用户 > 用户 部分并编辑用户资料,将电子邮件介质分配给该用户。
设置用户介质的步骤对所有介质类型都通用,详见介质类型页面。