第一種實(shí)驗(yàn)
注:sendemail 不是sendmail....sendemail是用perl語(yǔ)言寫的一個(gè)smtp發(fā)郵件的小程序....詳情可自行查閱.....
- media
用戶配置下的media.
Administration--->Users--->users(右側(cè))or create user--->Mediat 添加郵件地址...(接收的郵件地址) - Media types
Administration---->Media types-----Create media type
name: 名字
type Script
Script name : sendemail.sh
enabled (?)
修改zabbix_server.conf
在410行的地方:AlertScriptsPath=/etc/zabbix/alertscripts (腳本存放目錄路徑,你也可以修改成其他路徑,注意權(quán)限)
這里有2個(gè)腳本:
第一個(gè)是zabbix調(diào)用的發(fā)送郵件的腳本. 他會(huì)調(diào)用第二個(gè)腳本去發(fā)送郵件.(Media types的script name:)
第二個(gè)是perl 寫的sendemail專門用來通過smtp發(fā)送郵件的.
第一個(gè)腳本:
[root@zabbix ~]# cat /etc/zabbix/alertscripts/sendemail.sh
#!/bin/bash
SMTP_server='smtp.qq.com' # SMTP服務(wù)器
username='************' # 用戶名
password='***********' # 密碼
from_email_address='**********' # 發(fā)件人Email地址
to_email_address="$1" # 收件人Email地址,zabbix傳入的第一個(gè)參數(shù)
message_subject_utf8="$2" # 郵件標(biāo)題,zabbix傳入的第二個(gè)參數(shù)
message_body_utf8="$3" # 郵件內(nèi)容,zabbix傳入的第三個(gè)參數(shù)
# 轉(zhuǎn)換郵件標(biāo)題為GB2312,解決郵件標(biāo)題含有中文,收到郵件顯示亂碼的問題。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 轉(zhuǎn)換郵件內(nèi)容為GB2312
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 發(fā)送郵件
sendEmail='/usr/bin/sendEmail'
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
echo "`date +"%F %T"` send to $to_email_address" >> /tmp/send.log
這個(gè)腳本解釋的很詳細(xì)我就不解釋了...
這里的用戶名和密碼是發(fā)件人的,,這個(gè)是通過SMTP發(fā)送郵件,有些人可能不懂,就和outlook差不多。可以使用QQ,163任何一個(gè)提供了SMTP的郵箱公司郵箱也可以。要修改的就是smtp,用戶名,密碼,發(fā)件人的郵箱。。。。smtp可以去郵箱提供商獲取,或者百度。。。
還有腳本要加權(quán)限
chmod +x sendemail.sh
第二個(gè)腳本:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz(不是sendmail,這個(gè)是perl 寫的一個(gè)使用smtp發(fā)送郵件的腳本)
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar xvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
cp sendEmail /usr/bin/
chmod +x /usr/bin/sendEmail
解壓: tar xvf sendEmail-v1.56.tar.gz
將里邊的sendEmail 復(fù)制到/usr/bin/
然后測(cè)試第一個(gè)腳本
/etc/zabbix/alertscripts/sendemail.sh test@qq.com zabbixtest " this is zabbix test mail ! "
如果能收到說明這兩個(gè)腳本都沒問題
- Actions
當(dāng)觸發(fā)tiggers時(shí)發(fā)生的動(dòng)作...這就是發(fā)送郵件的入口
Configuration --> Actions --> Create action

name: 就是名字
Default subject : 郵件標(biāo)題的格式
Default message: 郵件內(nèi)容
Recovery message: 這個(gè)是當(dāng)報(bào)警回復(fù)正常發(fā)送郵件的內(nèi)容. 這些變量都是系統(tǒng)定義好.你可以引用 也可以自己定義變量.


新建默認(rèn)是沒有的 我們new 一個(gè)新的.
From to 好像是發(fā)送次數(shù).setp間隔時(shí)間
operation type 是send message
發(fā)送給用戶還是組.
send only to : 里遍選擇第2步的Media types 的名字
先點(diǎn)上邊的Add 然后點(diǎn)下邊的Add
這樣基本就完成了..轉(zhuǎn)載http://www.cnblogs.com/idnf/p/4667650.html
附上我本地測(cè)試成功的腳本:
[root@localhost ~]# cat /etc/zabbix/alertscripts/sendemail.sh
#!/bin/bash
SMTP_server='smtp.163.com'
username='chengyinxiang93@163.com'
password='hello2017'
from_email_address='chengyinxiang93@163.com'
to_email_address="$1"
message_subject_utf8="$2"
message_body_utf8="$3"
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
sendEmail='/usr/bin/sendEmail'
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
echo "`date +"%F %T"` send to $to_email_address" >> /tmp/send.log
第二種實(shí)驗(yàn):zabbix使用sendEmail發(fā)送告警郵件
轉(zhuǎn)自http://qicheng0211.blog.51cto.com/3958621/1434514
一、安裝sendEmail
sendEmail是一個(gè)免費(fèi)、輕量級(jí)、命令行的SMTP郵件客戶端。
如果你需要使用命令行方式發(fā)送郵件,那么sendEmail是非常完美的選擇:使用簡(jiǎn)單、功能強(qiáng)大。
sendEmail下載地址:
http://caspian.dotconf.net/menu/Software/SendEmail/
sendEmail安裝方法:
shell# tar xvzf sendEmail-v1.56.tar.gz
shell# cp sendEmail-v1.56/sendEmail /usr/local/bin/
shell# chmod 755 /usr/local/bin/sendEmail
sendEmail命令選項(xiàng):

二、zabbix服務(wù)器端發(fā)送郵件腳本
假如zabbix 配置目錄位置在/etc/zabbix/
1.創(chuàng)建/etc/zabbix/alertscripts目錄
shell# mkdir -p /etc/zabbix/alertscripts
shell# chown -R zabbix:zabbix /etc/zabbix/alertscripts
修改/etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts
修改后重啟zabbix server。
2.創(chuàng)建發(fā)送郵件腳本
# vim /etc/zabbix/alertscripts/SendEmail.sh
#!/bin/bash
#
# Filename: SendEmail.sh
# Revision: 1.0
# Date: 2014/07/04
# Author: Qicheng
# Email:
# Website: http://qicheng0211.blog.51cto.com/
# Description: zabbix郵件告警腳本
# Notes: 使用sendEmail
#
# 腳本的日志文件
LOGFILE="/tmp/Email.log"
:>"$LOGFILE"
exec 1>"$LOGFILE"
exec 2>&1
SMTP_server='smtp.163.com' # SMTP服務(wù)器,變量值需要自行修改
username='zabbix@163.com' # 用戶名,變量值需要自行修改
password='zabbix' # 密碼,變量值需要自行修改
from_email_address='zabbix@163.com' # 發(fā)件人Email地址,變量值需要自行修改
to_email_address="$1" # 收件人Email地址,zabbix傳入的第一個(gè)參數(shù)
message_subject_utf8="$2" # 郵件標(biāo)題,zabbix傳入的第二個(gè)參數(shù)
message_body_utf8="$3" # 郵件內(nèi)容,zabbix傳入的第三個(gè)參數(shù)
# 轉(zhuǎn)換郵件標(biāo)題為GB2312,解決郵件標(biāo)題含有中文,收到郵件顯示亂碼的問題。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
# 轉(zhuǎn)換郵件內(nèi)容為GB2312,解決收到郵件內(nèi)容亂碼
message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_body_utf8
EOF`
[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
# 發(fā)送郵件
sendEmail='/usr/local/bin/sendEmail'
set -x
$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312
然后執(zhí)行下面的命令,設(shè)置腳本和日志文件權(quán)限:
shell# touch /tmp/Email.log
shell# chown zabbix:zabbix /tmp/Email.log
shell# chown zabbix:zabbix /etc/zabbix/alertscripts/SendEmail.sh
shell# chmod +x /etc/zabbix/alertscripts/SendEmail.sh
3.測(cè)試發(fā)送郵件
shell# /etc/zabbix/alertscripts/SendEmail.sh xxxxxx@qq.com "測(cè)試郵件標(biāo)題" "測(cè)試郵件內(nèi)容"

三、配置Email告警方式
選擇【Administration】->【Media types】,進(jìn)入告警方式配置界面,創(chuàng)建Email告警方式,如下圖:

四、配置用戶的郵箱地址
選擇【Administration】->【Users】,進(jìn)入用戶配置界面,在"Media"選項(xiàng)卡中配置用戶接收告警的郵箱地址。點(diǎn)擊"Add",在彈出的窗口中輸入用戶郵箱,見下圖:

五、定義action
進(jìn)入告警動(dòng)作配置界面(Actions),創(chuàng)建新的action。
具體配置給出官方鏈接:https://www.zabbix.com/documentation/2.2/manual/config/notifications/action
這里只介紹告警標(biāo)題和內(nèi)容的配置,如下圖:

zabbix默認(rèn)的告警內(nèi)容不豐富,信息不足,所以把我的配置介紹給大家,大家可以參照修改:
<pre>
告警主機(jī):{HOST.NAME}
主機(jī)IP: {HOST.IP}
告警時(shí)間:{EVENT.DATE} {EVENT.TIME}
告警等級(jí):{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
事件ID: {EVENT.ID}
</pre>
收到的告警郵件示例:

本文出自 “啟程的Linux博客” 博客