Zabbix利用msmtp+mutt發送郵件報警
Zabbix利用msmtp+mutt發送郵件報警
Zabbix支持多種報警的方式,其中成本最低、最方便的就是郵件報警的方式了。但是因為它不支持郵件的用戶認證,這種方式現在也非常少見,同時安全性也差,如果在本機建郵件服務器的話也容易被誤入垃圾郵件。
現在我們使用163的郵箱或者自己公司內部的郵箱,利用msmtp+mutt完成郵件的報警。(當然也可以利用移動139的郵箱或者聯通沃郵箱,可以達到短信通知)
1.msmtp的安裝
wget http://jaist.dl.sourceforge.net/project/msmtp/msmtp/1.4.32/msmtp-1.4.32.tar.bz2
tar jxvf msmtp-1.4.32.tar.bz2
cd msmtp-1.4.32
mkdir -p /usr/local/msmtp/etc
./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etc
make && make install
2.配置msmtp
mkdir -p /var/log/zabbix
touch /var/log/zabbix/msmtp.log
chown zabbix.zabbix /var/log/zabbix
vi /usr/local/msmtp/etc/msmtprc
account default
host smtp.163.com //SMTP服務器
port 25
from [email protected]
auth login
tls off
user [email protected] //郵箱用戶名
password zabbix //郵箱密碼
logfile /var/log/zabbix/msmtp.log //日誌路徑
如果在上面配置的時候沒有加上–sysconfdir=/usr/local/msmtp/etc選項,msmtp默認讀取的是當前用戶的主文件夾中(例如root用戶則查找/root,zabbix用戶則查找/home/zabbix)的.msmtprc文件
3.測試msmtp
/usr/local/msmtp/bin/msmtp [email protected]
hello world
this is a test mail!
//按Ctrl+D結束即可發送郵件
查看日誌是否正常
Mar 20 15:01:42 host=smtp.163.com tls=off auth=on [email protected] [email protected] [email protected] mailsize=26 smtpstatus=250 smtpmsg=‘250 Mail OK queued as smtp7,C8CowEB5MVOwkypTKWWWAA–.1291S2 1395299252‘ exitcode=EX_OK
4.安裝mutt
yum -y install mutt
編輯/etc/Muttrc.local文件
set sendmail="/usr/local/msmtp/bin/msmtp"
set use_from=yes
set realname="[email protected]"
set editor="vi"
5.測試mutt
1
echo "helloworld" | mutt -s "撒打發斯蒂芬" [email protected]
//郵件內容為helloworld
//主題為test
//如果需要發送多人的話可以繼續添加收件人
//其實這個還可以添加附件 只需要在最後添加 -a /root/test.txt
//案例:echo "helloworld" | mutt -s "test" [email protected] [email protected] -a /root/test.txt
6.創建郵件報警腳本
vi /usr/local/zabbix-2.2.2/share/zabbix/alertscripts/email
#!/bin/bash
echo "$3" | mutt -s "$2" $1
對文件進行授權
chown zabbix.zabbix /usr/local/zabbix-2.2.2/share/zabbix/alertscripts/email
chmod 755 /usr/local/zabbix-2.2.2/share/zabbix/alertscripts/email
7.配置zabbix_server.conf
報警腳本的位置是由zabbix_server.conf中的參數決定的,權限位置不正確或者權限不對將無法工作
vi /usr/local/zabbix-2.2.2/etc/zabbix_server.conf
//修改報警腳本路徑
AlertScriptsPath=/usr/local/zabbix-2.2.2/share/zabbix/alertscripts
8.配置zabbix媒體類型
我這裏是直接替換zabbix默認的郵件方式
然後將Email修改成腳本方式
然後修改自己的郵件地址,就可以收到報警郵件了.
Zabbix利用msmtp+mutt發送郵件報警