1.msmtp部署配置
安装msmtp
tar jxvf msmtp-1.4.30.tar.bz2
cd msmtp-1.4.30
./configure
make
make install
 
2.配置msmtp 
which msmtp 查看msmtp路径
/usr/local/bin/msmtp --version 查看配置文件路径
zabbix 邮件报警部署_zabbix
touch /var/log/myhoop_baojing.log 创建日志文件
chown zabbix:zabbix /var/log/myhoop_baojing.log

3.配置文件msmtprc (此文件需要手动创建)
touch  /usr/local/etc/msmtprc 
chmod 700 /usr/local/etc/msmtprc  #明文密码存在设置600权限
chown zabbix:zabbix /usr/local/etc/msmtprc
 
msmtprc文件内容:
  1. account zabbix              #调用时的用户 
  2. host smtp.qq.com            #邮件服务器 
  3. port 25  
  4. from myhoop@qq.com          #发送邮件的邮箱地址 
  5. auth login                  #验证方式 
  6. tls off                     #不使用tls 
  7. user myhoop@qq.com          #发送邮件的邮箱用户名(和地址填一样)            
  8. password xxxxxxx            #发送邮件的邮箱密码 
  9. logfile /var/log/myhoop_baojing.log     #记录日志 
 4.配置shell文件
修改报警脚本路径
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/bin

touch /usr/bin/myhoop_baobing.sh
chmod 755 /usr/bin/myhoop_baobing.sh
chown zabbix:zabbix /usr/bin/myhoop_baobing.sh

脚本的内容如下:
  1. #! /bin/sh 
  2. DEBUG=1 
  3. if [ $DEBUG -gt 0 ] 
  4. then         
  5. exec 2>>/var/log/myhoop_jingbao.log         
  6. set -x 
  7. fi 
  8. FROM='myhoop@qq.com' 
  9. MSMTP_ACCOUNT='zabbix' 
  10. # Parameters (as passed by Zabbix): 
  11. #  $1 : Recipient 
  12. #  $2 : Subject 
  13. #  $3 : Message 
  14. recipient=$1 
  15. subject=$2 
  16. message=$3 
  17. date=`date --rfc-2822` 
  18. sed 's/$/\r/' <<EOF | /usr/local/bin/msmtp --account $MSMTP_ACCOUNT $recipient 
  19. From: <$FROM
  20. To: <$recipient> 
  21. Subject: $subject 
  22. Date: $date 
  23. $message 
  24. EOF  
注意:/usr/local/bin/msmtp根据自己安装的路径写
5.zabbix配置
使用admin登录zabbix,Administration--Media types--点右上角Create mdia type
Description:填写一个名称
Type:选择Script
Script name:填写你上面创建的shell脚本名称
zabbix 邮件报警部署_报警邮件_02
Save 保存

Administration--Users--右上角下拉菜单选择User--找到Admin用户,点开编辑--Media--Add添加
Type:选择创建的Media
Send to:写你接收邮件的地址
其他默认
zabbix 邮件报警部署_zabbix_03
Save 保存

创建Actions
Configuration--Actions--右上角Create action
如下图
zabbix 邮件报警部署_zabbix_04
然后点Operations--Edit编辑
 

zabbix 邮件报警部署_shell_05

至此所有配置结束,创建一个触发测试一下。

停掉FTP服务:servie vsftpd stop
zabbix 邮件报警部署_报警邮件_06
开启FTP服务:service vsftpd start
zabbix 邮件报警部署_msmtp_07
 
排错思路:
1.测试主机是否可以连接smtp服务器:
ping smtp.qq.com
2.测试msmtp配置是否正确。
sh /usr/bin/myhoop_baojing.sh
查看日志
cat /var/log/myhoop_baojing.log
3.检查zabbix的设置,需要注意的是media里面script name 不需要写路径,直接写脚本名。
4.检查是不是定义了zabbix脚本的路径
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/bin
5.如果报/usr/local/etc/msmtprc文件的错误,请把#注释掉的部分删除掉测试,我就遇到过这个注释报错。

注意此文大部分内容参照了下面博主的博客,有少部分是自己实际实施中遇到的问题做出的总结。
http://waringid.blog.51cto.com/65148/1142579,在此非常感谢博主。