环境:zabbix2.2.4 ; centos6.5 ;
需求:zabbix 邮件报警
方案:利用163的邮箱或者公司内部的邮箱,用msmtp+mutt 完成邮件报警
实施步骤:
1;msmtp的安装
a; tar xf msmtp-1.4.17.tar.bz2
b; cd msmtp-1.4.17
c; mkdir -p /opt/local/etc
d; ./configure --prefix=/opt/local/ --sysconfdir=/opt/local/etc
2 ;配置msmtp
a; mkdir -p /var/log/zabbix //建立日志文件
touch /var/log/zabbix/msmtp.log
chown zabbix:zabbix /var/log/zabbix
b; vi /opt/local/msmtp/etc/msmtprc
account zabbix
host smtp.163.com //smtp 服务器
port 25
from [email protected]
auth login
tls off
user ssss8888 //发送邮件的邮箱账号
password 123456 //密码
logfile /var/log/zabbix/msmtp.log //日志
d; 测试msmtp
/opt/local/msmtp/bin/msmtp [email protected] //发送给这个qq邮箱
hello word! test mail //邮件内容
//ctrl+d 结束发送邮件
3; 进日志或者邮箱看下是否正常发送
4;安装mutt,测试mutt发送邮件
a; 配置
yum -y install mutt
vi /etc/Muttrc
set sendmail="/opt/local/msmtp/bin/msmtp"
set use_from=yes
set realname="[email protected]"
set editor="vi"
b;mutt命令测试发邮件
echo "helloworld" | mutt -s "hello" [email protected]
5;创建邮件脚本
a;编辑脚本
vi /opt/local/zabbix/share/zabbix/alertscripts/zext_msmtp.sh
#! /bin/bash
DEBUG=1
if [ $DEBUG -gt 0 ]
then
exec 2>>/var/log/zabbix/msmtp.log
set -x
fi
FROM='[email protected]'
MSMTP_ACCOUNT='zabbix'
# Parameters (as passed by Zabbix):
# $1 : Recipient
# $2 : Subject
# $3 : Message
recipient=$1
subject=$2
message=$3
date=`date --rfc-2822`
sed 's/$/\r/' <<EOF | /opt/local/msmtp/bin/msmtp --account $MSMTP_ACCOUNT $recipient
From: <$FROM>
To: <$recipient>
Subject: $subject
Date: $date
$message
EOF
b; 授权,改权限
chown zabbix:zabbix zext_msmtp.sh
chmod 755 zext_msmtp.sh
6;zabbix server配置里修改脚本位置
vi /opt/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/opt/local/zabbix/share/zabbix/alertscripts //打开参数,设置脚本位置
7;配置zabbix媒体类型,添加邮件报警
a;管理-示警媒介类型-创建媒体类型
b;管理-用户,对特定用户设置邮件报警
8;建立动作,设置用zext_msmtp 报警
组态-动作 来设置一个动作
9;设置好后,触发一个报警然动作执行,看是否收到邮件报警
查看动作是否执行成功,直接 监测中-事件 点开事件,查看,如下图