多语言展示
当前在线:1547今日阅读:183今日分享:45

zabbix 3.0.2邮件报警配置

zabbix邮件报警配置,虽然简单,但是配置起来还是有很多坑,特别是邮箱配置那一段,需要仔细研究。
工具/原料
1

sendemail软件

2

perl-Net-SSLeay和perl-IO-Socket-SSL依赖包

3

zabbix软件

方法/步骤
1

这里我首先认定你的zabbix已经配置好,然后才开始配置zabbix监控。先下载sendemail软件,这里要看清楚,不要下载到sendmail这个软件,中间差一个e,但是软件功能差别很大。然后安装那两个依赖包,命令是:yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

2

下载完成后,解压软件,然后将sendemail复制到/usr/local/bin/目录下,并加上可执行权限,然后修改用户和群组。

3

修改zabbix server的配置文件,配置报警脚本的目录。在zabbix_server.conf中找到AlertScriptsPath这一行,在zabbix3.0.2中在448行,修改为如下内容AlertScriptsPath=/usr/local/zabbix3/alertscripts

4

创建这个目录,然后在这个目录下创建报警脚本sendmail.shcd /usr/local/zabbix3mkdir alertscripts && cd alertscriptsvim mail.sh下面是脚本内容(涂黑部分是你的邮箱和密码,-f和-xu参数后面跟邮箱,-xp后面跟授权码)

6

在sendemail中1906行的内容,从if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {修改为if (! IO::Socket::SSL->start_SSL($SERVER)) {即不指定SSL的版本,让程序来自己选择。这样修改以后可以发送邮件,但还有提示信息,不影响邮件功能的使用。后面就到了第二个问题

7

问题(2):经过测试后发现,163、126的邮箱不使用ssl加密可以正常发送邮件,但是要在sendemail.sh脚本中加上 -o tls=no 这一行,才能正常发送邮件。(图片上是tls=yes,是后来我使用加密模式测试126邮箱使用的,读者改为tls=no即可)。而对于qq邮箱,经过测试发现,必须使用ssl加密,因此需要使用-o tls=yes/auto参数(这两个参数任选一个即可)才能正常发送邮件。同时,不管你使用的是163邮箱还是qq邮箱,你都必须开通pop3服务,而且qq邮箱还要求使用第三方客户端发送邮件是必须使用授权码登录,使用账号密码验证时,会出现下面图片中的错误。至于邮箱的授权码,读者自己去设置就好。

8

经过上面两个问题的处理,即修改sendemail里面的代码、配置tls,然后配置好授权码后,就可以测试邮件发送功能了,测试命令如下:./mail.sh  你要发送的邮箱   邮件标题  邮件内容例如./mail.sh  147****969@qq.com   测试邮件  测试内容发送成功后会收到类似于这样的提示Nov 09 09:54:42 zabbix sendEmail[22743]: Email was sent successfully!同时在邮箱里也可以看到邮件内容

zabbix web端配置
1

上面的邮件脚本配置好后,就要在web端添加报警媒介,在web页面的管理,报警媒介类型页面,点击右边的创建媒体类型

2

进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分别对于mail.sh中的to、subject和body。添加完成后点下面的更新按钮,我们的报警媒介就创建完成了

3

创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户linux,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击更新,就将创建好的报警媒介关联到我们的用户上面了。

4

现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。

5

在动作这一页名称中写入我们定义的动作名,勾选恢复信息,即系统恢复正常时也发送邮件。然后在条件里添加需要的触发报警条件,我这里是在监控的设备出现严重故障以上时,才报警。最后选择操作页面,默认操作步骤持续时间60秒,步骤1-3,步骤持续时间60s,发送到用户群组选择Zabbix administrator,用户选择我们刚刚关联报警媒介的linux用户,仅送到一栏选择邮件脚本报警。点击添加按钮新增动作。

6

添加好以后就可以看到我们添加的动作名,以及该动作已启用的状态。

3. 报警测试
1

因为我们在上面设置触发动作的条件是出现严重故障时,才会触发报警动作。我们这里选择关掉一台服务器的zabbix-agent来触发这个故障。从下图中可以看到agent已经正常关闭,等到一定时间后触发报警。

2

在监控页面上过了5分钟以后就看到了报警信息,然后再过一会儿也看到了邮件正常发送的信息,这个地方要注意的是,上面修改了报警脚本目录后,一定要重启zabbix_server进程,如果不重启的话,会发现找不到这个脚本,因为默认的脚本是位于/usr/local/zabbix/share/zabbix/alertscripts/目录下。

3

打开邮箱,查看是否收到报警邮件,确实已经收到了报警邮件。

注意事项
1

配置的过程在网上有很多,大同小异,但是要注意的是中间的认证过程,特别是不同邮箱的认证。

2

在大脑里应该有一个清晰的流程,这样出现错误的时候能比较容易分析错误所在。

推荐信息