一个监控系统,缺少了实时告警功能,会有很大的缺憾。本着不花一分钱的原则,这里我使用告警邮件,然后将告警邮件与微信绑定,实现实时告警功能。注意,我的工作邮箱是使用QQ企业邮箱,因此,可以很方便的让邮箱与QQ绑定,让邮箱与微信绑定,至于其他邮箱是否可以绑定,需要视情况而定。我的建议是,可以直接使用个人的QQ邮箱。
言归正传,下面是配置步骤。我在zabbix server服务器上采用了msmtp + mutt 实现邮件发送功能。具体msmtp和mutt是什么东东,自己上网查去。另,主机环境是rhel6.3-64位。
1、下载解压msmtp安装包:
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.30.tar.bz2?big_mirror=0
如果是rhel5,使用下面的版本:
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.17.tar.bz2?big_mirror=0
下载完成后解压:
tar jxvf msmtp-1.4.30.tar.bz2
2、编译安装
cd msmtp-1.4.30 && configure --prefix=/usr/local/msmtp make make install
3、配置msmtp账号
cd /usr/local/msmtp && mkdir etc
使用vi新建文件,输入:vi /usr/local/msmtp/etc/msmtprc ,编辑内容如下:
# Set default values for all following accounts.
defaults
logfile /usr/local/msmtp/msmtp.log
# The SMTP server of the provider.
account zycloudalarm #这里根据实际情况修改,账户名
host smtp.exmail.qq.com #这里根据实际情况修改,邮件服务器地址
from [email protected] #这里根据实际情况修改,发件人地址
auth login
user [email protected] #这里根据实际情况修改,邮箱用户地址
password cloud123 #这里根据实际情况修改,邮箱密码
account default : zycloudalarm #这里根据实际情况修改,邮箱用户名
测试:
/usr/local/msmtp/bin/msmtp [email protected]
上面的“[email protected]”换成你的实际使用的邮箱。
4、安装mutt:
yum install -y mutt
vi /etc/Muttrc.local ,编辑mutt的总设置,修改以下几行
set from="[email protected]"
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="Zhengyuan Cloud Alarm"
set editor="vi"
测试:
echo "测试" |mutt -s "测试" [email protected]
上面的“[email protected]”换成你的实际使用的邮箱。
5、配置告警脚本,首先增加告警脚本:
vi /etc/zabbix/alertscripts/muttmail.sh
#!/bin/bash
# $1 sendmail address
# $2 sendmail subject
# $3 file
echo "$3" | mutt -s "$2" $1
增加告警脚本可执行权限:
chmod +x /etc/zabbix/alertscripts/muttmail.sh
6、如果遇到中文乱码,在Muttrc.local中添加下面配置:
charset-hook ^us-ascii$ gb2312 # 用gb2312编码显示未设置编码的信件
charset-hook ^big5$ big5 # 用big5编码显示繁体信件
charset-hook !utf-8 gb2312 # 用gb2312编码显示非utf-8编码的信件
set assumed_charset = "gb2312" # 用gb2312编码显示未经MIME编码的信件
set rfc2047_parameters = yes # 用gb2312编码显示中文附件名