网站搜索

如何设置 Zabbix 将电子邮件警报发送到 Gmail 帐户


如果您使用 Zabbix 来监控您的基础设施,您可能希望从公共互联网域上的本地域接收电子邮件警报,即使您不拥有带有邮件的有效注册互联网域名。您可以自行配置的服务器。

本教程将简要讨论如何设置Zabbix服务器,使用SSMTP程序将邮件报告发送到Gmail地址,而不需要安装和配置任何本地MTA守护进程,例如PostfixExim等。

要求

  • 如何在 RHEL/CentOS 和 Debian/Ubuntu 上安装 Zabbix – 第 1 部分

第 1 步:安装和配置 SSMTP

1. SSMTP是一个小软件,它不实现邮件服务器的任何功能,而只是将电子邮件从本地计算机传送到外部电子邮件地址。 邮件中心

要安装 SSMTP 程序以及用于发送邮件的 mailutils 软件包,请在基于 RedHat 的发行版和 Debian 之类的服务器上发出以下命令:

yum install msmtp mailx               [On RHEL/CentOS] 
sudo apt-get install ssmtp mailutils       [On Debian/Ubuntu]

2. 在系统上安装软件包后,通过打开主配置文件来配置 SSMTP 程序以将本地电子邮件发送到您的 Gmail 帐户使用您喜欢的文本编辑器和 root 权限进行编辑,并使用以下参数设置:

vi /etc/msmtprc                       [On RHEL/CentOS]
sudo nano /etc/ssmtp/ssmtp.conf            [On Debian/Ubuntu]

GMAIL 帐户的MSMTP 设置。

#set default values for all following accounts.
defaults
auth           on
tls            on
tls_trust_file    /etc/pki/tls/certs/ca-bundle.crt
logfile        ~/.msmtp.log
Gmail
account        gmail
host           smtp.gmail.com
port           587
from           [email 
user           [email 
password       gmailpassword

Set a default account
account default : gmail

GMAIL 帐户的SSMTP 设置。

[email 
mailhub=smtp.gmail.com:587
rewriteDomain=your_local_domain
hostname=your_local_FQDN
UseTLS=Yes
UseSTARTTLS=Yes
AuthUser=Gmail_username
AuthPass=Gmail_password
FromLineOverride=YES

第 2 步:Gmail 测试 Zabbix 电子邮件警报

3. 下一步是通过发出以下命令将本地生成的电子邮件发送到 Gmail 帐户。

echo "Body test email from 'hostname -f' "| mail -s "subject here" [email 

4. 通常,Gmail 会阻止您的帐户对其服务器进行不同类型的身份验证,因此,如果您收到错误“

5. 在您的 Gmail 帐户上启用不太安全的应用程序功能后,再次运行上述邮件命令,并在几秒钟检查本地生成的电子邮件是否已成功发送 - 您通常应该看到电子邮件是从 Gmail 传入的。

步骤3:配置Zabbix Sendmail脚本

6.进一步,根据$(which mail)命令创建以下Bash脚本到Zabbix alertscripts目录,内容如下赋予它执行权限:

vi /usr/local/share/zabbix/alertscripts/zabbix-sendmail            [On RHEL/CentOS]
sudo nano /usr/local/share/zabbix/alertscripts/zabbix-sendmail     [On Debian/Ubuntu]

脚本内容:

#!/bin/bash
echo "$3" | /usr/bin/mail -s "$2" $1

接下来,设置脚本文件的执行权限。

chmod +x /usr/local/share/zabbix/alertscripts/zabbix-sendmail

7. 接下来,如前所述,通过向 Gmail 帐户发送本地电子邮件来测试脚本功能。上面解释了使用位置参数运行脚本的方法:

/usr/local/share/zabbix/alertscripts/zabbix-sendmail [email  "Subject here" "Body of the message here"

然后,验证Gmail收件箱并检查新的本地邮件是否已到达。

步骤 4:配置 Zabbix 以将警报发送到 Gmail

8. 如果到目前为止我们的测试成功,那么您可以进入下一步并设置 Zabbix 将生成的电子邮件警报发送到 Gmail。首先,登录 Zabbix Web 界面并导航到以下菜单:管理 -> 媒体类型 -> 创建媒体类型。

9. 在下一个屏幕上输入任意名称,以唯一标识 Zabbix 配置中的脚本(在此示例中Send-Email -使用脚本),从列表中选择脚本作为类型,然后输入之前创建的 Bash 脚本的名称(zabbix-sendmail 在本教程中使用)从命令行发送电子邮件(不要使用脚本的路径,仅使用脚本名称)。完成后,点击下面的添加按钮以反映更改。

10. 此外,让我们配置一个电子邮件地址,您将向其发送 Zabbix 警报。转到个人资料 -> 媒体 -> 添加,然后会出现一个新的弹出窗口。

在这里,为类型选择您之前命名的脚本名称(在本例中使用Send-Email-Script),输入Gmail 您将向其发送电子邮件的地址,选择电子邮件报告应有效发送的时间段(周、小时),选择您希望在 Gmail 地址上接收的邮件的严重性,然后选择启用< 作为状态,然后点击添加按钮添加媒体。最后点击更新按钮应用配置。

11. 在下一步中,通过导航到配置 -> 操作启用默认 Zabbix 警报,选择事件源< – > 从右侧菜单中选择触发器,然后点击禁用状态以启用它。对事件源 - > 内部或其他自定义创建的操作重复该步骤,即可完成。

等待一段时间,Zabbix 开始收集信息并生成一些报告,然后验证您的 Gmail 收件箱,您应该会看到一些提交的 Zabbix 警报迄今为止。

就这样!虽然本指南主要侧重于使用 Gmail SMTP 服务器作为邮件集线器将 Zabbix 警报发送到 Gmail 帐户,但使用相同的配置,您也可以通过以下方式将 Zabbix 电子邮件警报进一步推送到其他有效的互联网电子邮件帐户:依靠 Gmail 通过 SMTP 服务器路由您的电子邮件。