zabbix添加邮件报警

282 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、mailx安装配置(zabbix-server服务器)

(1)安装mailx
yum -y install mailx

在这里插入图片描述

(2)检查其他邮件服务器状态

服务器上如果安装了sendmail及postfix,需要确保是关闭状态并关掉开机自启

(3)配置mailx

以QQ邮箱为例

vim /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8					#设置字符,防止乱码
set smtp=smtp.qq.com								#邮箱的smtp服务器地址,一般在邮箱的设置中寻找
set from=xxxxx@qq.com								#设置发件人邮箱
set smtp-auth-user=xxxxx@qq.com						#邮箱登录账号,即发件人邮箱
set smtp-auth-password=xxxxx						#邮箱密码或者授权码
set smtp-auth=login									#设置进行验证登录

在这里插入图片描述

(4)测试邮件发送

尝试给一个地址为“xxxxxx@qq.com”的邮箱发送一封测试邮件

echo "HEllo_test_test1" | mailx -v -s "zabbix_test_mail" xxxxxx@qq.com

如下提示即为发送成功,并且检查邮箱也能收到邮件,如找不到可能在垃圾箱内
在这里插入图片描述
在这里插入图片描述

二、编写zabbix调用脚本(zabbix-server服务器)

一般编译安装的zabbix,调用脚本默认路径为/usr/local/share/zabbix/alertscripts/,如不是这个目录,find一下即可,根据实际情况编写

(1)编写脚本

进到脚本目录,编写一个名字为sendmail.sh的脚本

cd /usr/local/share/zabbix/alertscripts/
touch sendmail.sh

写入如下内容,附带说明

#!/bin/bash 
#export.UTF-8
#zabbix sendmail scripts

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

#说明:
#export.UTF-8  防止出现乱码
#$1表示收件人的地址   $2表示邮件的标题   $3表示邮件的正文
#添加变量的原因:防止邮件发送后正文不显示或正文被当做附件发送
#在tmp下添加一个日志文件
(2)日志文件创建及权限添加

创建日志文件,与上面脚本文件中的目录及名字对应

cd /tmp
touch sendmail.log

分别给脚本及日志文件添加权限

chmod 777 sendmail.sh
chmod 777 sendmail.log

如果没权限,后期再zabbix报警发送邮件时,会报没有权限的错误
在这里插入图片描述

(3)测试脚本
sh /usr/local/share/zabbix/alertscripts/sendmail.sh xxxxxx@qq.com "zabbix_test_scripts" "zabbix_test_mail"

在这里插入图片描述

三、zabbix页面配置

(1)创建报警媒介类型

在这里插入图片描述
添加报警媒介类型,分别选择或填入如下信息
在这里插入图片描述

(2)添加报警媒介,也就是添加收件人地址

在这里插入图片描述
点开后,点“报警媒介”,添加
在这里插入图片描述
类型选我们自己添加的脚本类型,收件人写收件邮箱地址
在这里插入图片描述
在这里插入图片描述

(3)配置报警动作

在这里插入图片描述
分别按照自己的需求设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、测试

模拟一个报警,如硬盘占用超过了80%,I/O异常这种,我们可以在zabbix页面看到正常的报警,同时会看到zabbix会将报警信息通过邮件发送到我们事先设置好的邮箱中
在这里插入图片描述
在这里插入图片描述