zabbix 邮件报警部署
精选
转载
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 查看配置文件路径
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文件内容:
- account zabbix #调用时的用户
- host smtp.qq.com #邮件服务器
- port 25
- from myhoop@qq.com #发送邮件的邮箱地址
- auth login #验证方式
- tls off #不使用tls
- user myhoop@qq.com #发送邮件的邮箱用户名(和地址填一样)
- password xxxxxxx #发送邮件的邮箱密码
- 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
脚本的内容如下:
- #! /bin/sh
- DEBUG=1
- if [ $DEBUG -gt 0 ]
- then
- exec 2>>/var/log/myhoop_jingbao.log
- set -x
- fi
- FROM='myhoop@qq.com'
- MSMTP_ACCOUNT='zabbix'
- # Parameters (as passed by Zabbix):
- # $1 : Recipient
- # $2 : Subject
- # $3 : Message
- recipient=$1
- subject=$2
- message=$3
- date=`date
- sed 's/$/\r/' <<EOF | /usr/local/bin/msmtp
- From: <$FROM>
- To: <$recipient>
- Subject: $subject
- Date: $date
- $message
- EOF
注意:/usr/local/bin/msmtp根据自己安装的路径写
5.zabbix配置
使用admin登录zabbix,Administration--Media types--点右上角Create mdia type
Description:填写一个名称
Type:选择Script
Script name:填写你上面创建的shell脚本名称
Save 保存
Administration--Users--右上角下拉菜单选择User--找到Admin用户,点开编辑--Media--Add添加
Type:选择创建的Media
Send to:写你接收邮件的地址
其他默认
Save 保存
创建Actions
Configuration--Actions--右上角Create action
如下图
然后点Operations--Edit编辑
至此所有配置结束,创建一个触发测试一下。
停掉FTP服务:servie vsftpd stop
开启FTP服务:service vsftpd start
排错思路:
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,在此非常感谢博主。