一、設(shè)置報(bào)警腳本
- 這里有兩個(gè)版本,我用的是python版
1. shell版
1.1 安裝mail
yum install -y mailx sendmail
service sendmail start
1.2 配置mail
> vim /etc/mail.rc
set from=iphone3000@126.com
set smtp=smtp.126.com
set smtp-auth-user=iphone3000
set smtp-auth-password=xxxxxx
set smtp-auth=login
1.3 發(fā)送測(cè)試郵件
echo "aaa"|mail -s 'aaa' 763836801@qq.com
檢查郵箱可以看到郵件
1.4 郵件發(fā)送腳本
> vim /usr/local/zabbix/scripts/send_mail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
1.5 發(fā)送測(cè)試郵件
> /usr/local/zabbix/scripts/send_mail.sh 763836801@qq.com 'aaa' 'ccc'
檢查郵箱可以看到郵件
2 python版
2.1 郵件發(fā)送腳本
> vim /usr/local/zabbix/scripts/send_mail.py
#!/usr/bin/env python
#coding:utf8
# 導(dǎo)入 smtplib 和 MIMEText
import sys,getpass
import smtplib
from email.mime.text import MIMEText
# 發(fā)送郵件函數(shù)
def send_mail(to_list, sub,context):
me = mail_user + "<"+mail_user+"@"+mail_postfix+">"
msg = MIMEText(context)
msg['Subject'] = sub
msg['From'] = me
msg['To'] = "".join(to_list)
try:
send_smtp = smtplib.SMTP()
send_smtp.connect(mail_host)
send_smtp.login(mail_user, mail_pass)
send_smtp.sendmail(me, to_list, msg.as_string())
send_smtp.close()
return True
except Exception, e:
print str(e)
return False
# 設(shè)置服務(wù)器名稱暂幼、用戶名拯勉、密碼以及郵件后綴
mail_host = "smtp.126.com"
mail_user = "iphone3000@126.com"
mail_pass = "xxxxxxxx"
mail_postfix="126.com"
mailto_list = sys.argv[1]
sub= sys.argv[2]
context=sys.argv[3]
if send_mail(mailto_list,sub,context):
print "Send mail succed!"
else:
print "Send mail failed!"
2.2 發(fā)送測(cè)試郵件
> /usr/local/zabbix/scripts/send_mail.py 763836801@qq.com 'aaa' 'ccc'
檢查郵箱可以看到郵件
注意: 有可能報(bào)警發(fā)送了郵件贼涩,你沒(méi)收到,這時(shí)請(qǐng)查看發(fā)件方是不是郵件被退回了膊存。
二、zabbix后臺(tái)web界面配置
1. 設(shè)置media類型
Administration > Media types
name這里可以隨便自己定義忱叭,type選擇scripts隔崎;Script name則輸入上一步編寫的腳本名稱;
再添加以下3個(gè)參數(shù)窑多,分別對(duì)應(yīng)腳本需要的3個(gè)參數(shù):收件人地址仍稀、主題、詳細(xì)內(nèi)容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
- 2.x版本默認(rèn)會(huì)傳3個(gè)參數(shù)
2. 創(chuàng)建action
Configuration>Actions
設(shè)置觸發(fā)條件
設(shè)置報(bào)警內(nèi)容和關(guān)聯(lián)報(bào)警腳本
修改持續(xù)時(shí)間為60秒
修改步驟為3,表示觸發(fā)3次動(dòng)作
Recovery operations 同上
3. 對(duì)用戶添加報(bào)警方式
Configuration>Users
4. 設(shè)置執(zhí)行腳本的路徑
> vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/scripts
設(shè)置755執(zhí)行權(quán)限和zabbix用戶屬組權(quán)限
5. 測(cè)試
> /etc/init.d/zabbix_agentd stop
- 自此zabbix郵件報(bào)警配置完成~