本方式是使用外部郵箱帳號發送報警郵件到指定郵箱。web
好處是:此郵箱帳號既能發送郵件,也能接收郵件,並且避免被當作垃圾郵件。測試
[root@ltt01 ~]# yum -y install mailx
[root@ltt01 alertscripts]# yum -y install dos2unix
[root@ltt01 ~]# vi /etc/mail.rc
添加以下內容:spa
set from=外部郵箱地址 smtp=外部郵箱smtp地址 set smtp-auth-user=外部郵箱地址 smtp-auth-password=郵箱密碼 set smtp-auth=login
發送測試郵件3d
[root@ltt01 ~]# echo "zabbix test " | mail -s "zabbbix" 任意郵箱地址
echo後邊跟的是郵件內容, -s後跟的是郵件主題,最後是要發送的郵箱地址。unix
查看當前所設置語系調試
[root@ltt01 ~]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= [root@ltt01 ~]# echo $LANG en_US.UTF-8
查看zabbix報警腳本位置code
[root@ltt01 ~]# grep "AlertScriptsPath" /etc/zabbix/zabbix_server.conf ### Option: AlertScriptsPath # AlertScriptsPath=${datadir}/zabbix/alertscripts AlertScriptsPath=/usr/lib/zabbix/alertscripts
進入所在目錄server
[root@ltt01 ~]# cd /usr/lib/zabbix/alertscripts/
建立發送腳本,並編輯內容blog
[root@ltt01 alertscripts]# vi sendMail.sh #!/bin/sh #export LANG=en_US.UTF-8 //解決亂碼 FILE=/tmp/mailtmp.txt echo "$3" > $FILE dos2unix -k $FILE //解決內容成附件發送 /bin/mail -s "$2" $1 < $FILE
:wq保存退出事件
給腳本賦值運行權限
[root@ltt01 alertscripts]# ls -l total 4 -rw-r--r-- 1 root root 39 Apr 2 14:59 sendMail.sh [root@ltt01 alertscripts]# chmod +x sendMail.sh [root@ltt01 alertscripts]# ls -l total 4 -rwxr-xr-x 1 root root 39 Apr 2 14:59 sendMail.sh
測試發送腳本
[root@ltt01 alertscripts]# ./sendMail.sh 郵箱地址 "zabbix" "zabbix test"
管理--->報警媒介類型---->建立媒體類型
注意:腳本名稱與實際的腳本名稱一致
添加如下3個參數,分別對應sendEmail.sh腳本須要的3個參數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理--->用戶-----> 點擊Admin--->報警媒介--->添加--->選擇sendMail.sh,填寫收件郵箱
點擊更新,保存信息
管理---->用戶羣組----->點擊 zabbix administrators 調試模式爲已啓用
點權限---->點選擇
全選
點更新
配置--->動做----->建立動做
注意事件源要選擇觸發器
定義動做
定義操做
定義回覆操做
定義確認操做
點擊添加
打開四個XShell鏈接,等待接收郵件。