注:sendemail 不是sendmail....sendemail是用perl語言寫的一個smtp發郵件的小程序....詳情可自行查閱.....小程序
1. media
用戶配置下的media.
Administration--->Users--->users(右側)or create user--->Mediat 添加郵件地址...(接收的郵件地址)bash
2. Media types
Administration---->Media types-----Create media type
name: 名字
type Script
Script name : sendemail.sh
enabled (☑)服務器
修改zabbix_server.conf
在410行的地方:AlertScriptsPath=/etc/zabbix/alertscripts (腳本存放目錄路徑,你也能夠修改爲其餘路徑,注意權限)測試
這裏有2個腳本:
第一個是zabbix調用的發送郵件的腳本. 他會調用第二個腳本去發送郵件.(Media types的script name:)
第二個是perl 寫的sendemail專門用來經過smtp發送郵件的.
第一個腳本: this
[root@zabbix ~]# cat /etc/zabbix/alertscripts/sendemail.sh #!/bin/bash SMTP_server='smtp.qq.com' # SMTP服務器 username='************' # 用戶名 password='***********' # 密碼 from_email_address='**********' # 發件人Email地址 to_email_address="$1" # 收件人Email地址,zabbix傳入的第一個參數 message_subject_utf8="$2" # 郵件標題,zabbix傳入的第二個參數 message_body_utf8="$3" # 郵件內容,zabbix傳入的第三個參數 # 轉換郵件標題爲GB2312,解決郵件標題含有中文,收到郵件顯示亂碼的問題。 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" # 轉換郵件內容爲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" # 發送郵件 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
這個腳本解釋的很詳細我就不解釋了...
這裏的用戶名和密碼是發件人的,,這個是經過SMTP發送郵件,有些人可能不懂,就和outlook差很少。能夠使用QQ,163任何一個提供了SMTP的郵箱公司郵箱也能夠。要修改的就是smtp,用戶名,密碼,發件人的郵箱。。。。smtp能夠去郵箱提供商獲取,或者百度。。。spa
還有腳本要加權限.net
chmod +x sendemail.shcode
第二個腳本:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz(不是sendmail,這個是perl 寫的一個使用smtp發送郵件的腳本)server
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 blog
將裏邊的sendEmail 複製到/usr/bin/
而後測試第一個腳本
/etc/zabbix/alertscripts/sendemail.sh test@qq.com zabbixtest " this is zabbix test mail ! "
若是能收到說明這兩個腳本都沒問題
3. Actions
當觸發tiggers時發生的動做...這就是發送郵件的入口
Configuration --> Actions --> Create action
懶得寫我直接就上圖了!
name: 就是名字
Default subject : 郵件標題的格式
Default message: 郵件內容
Recovery message: 這個是當報警回覆正常發送郵件的內容. 這些變量都是系統定義好.你能夠引用 也能夠本身定義變量.
這個是發送郵件的一些條件,這個好像本身改過,按本身的需求來
新建默認是沒有的 咱們new 一個新的.
From to 好像是發送次數.setp間隔時間
operation type 是send message
發送給用戶仍是組.
send only to : 裏遍選擇第2步的Media types 的名字
先點上邊的Add 而後點下邊的Add
這樣基本就完成了..