這個很早之前就作過這個測試,忽然間找到了。不過當時記得是參考誰的文檔來着,,具體忘記了。。找不到源文檔了。。php
sendEmail是一個輕量級,命令行的SMTP郵件客戶端。若是你須要使用命令行發送郵件,那麼sendEmail是很是完美的選擇:使用簡單而且功能強大.這個被設計用在php、bashhtml
perl和web站點使用。以上是sendEmail的簡單介紹,千萬不要和sendmail搞混掉了。web
一、下載sendEmail軟件以及解壓bash
[root@Server ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz [root@Server ~]# tar fxz sendEmail-v1.56.tar.gz [root@Server ~]# cd sendEmail-v1.56 [root@Server sendEmail-v1.56]# ll total 116 -rw-r--r-- 1 root root 13329 Sep 30 2009 CHANGELOG -rw-r--r-- 1 root root 7949 Sep 30 2009 README -rw-r--r-- 1 root root 4701 Sep 30 2009 README-BR.txt -rwxr-xr-x 1 root root 80213 Sep 30 2009 sendEmail lrwxrwxrwx 1 root root 9 Apr 29 18:19 sendEmail.pl -> sendEmail -rw-r--r-- 1 root root 1229 Sep 30 2009 TODO [root@Server sendEmail-v1.56]# cp sendEmail /usr/local/bin/ [root@Server sendEmail-v1.56]# ll /usr/local/bin/sendEmail -rwxr-xr-x 1 root root 80213 Sep 30 2009 /usr/local/bin/sendEmail [root@Server sendEmail-v1.56]# yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
二、使用sendEmail測試發送郵件
服務器
[root@Server ~]# /usr/local/bin/sendEmail -f vip@163.com -t 19672@qq.com \ > -s smtp.163.com -u "我是郵件主題" -o message-content-type=html \ > -o message-charset=utf8 -xu vip@163.com -xp 123 -m "我是郵件內容" Apr 29 22:22:19 server sendEmail[75870]: Email was sent successfully!
命令說明:ide
/usr/local/bin/sendEmail 命令主程序 -f yzkc_vip@163.com 發件人郵箱 -s smtp.163.com 發件人郵箱的smtp服務器 -u "我是郵件主題" 郵件的標題 -o message-content-type=html 郵件內容的格式,html表示它是html格式 -o message-charset=utf8 郵件內容編碼 -xu yzkc_vip@163.com 發件人郵箱的用戶名 -xp 123 發件人郵箱密碼 -m "我是郵件內容" 郵件的具體內容 發送成功以後會有以下提示: Apr 29 22:22:19 server sendEmail[75870]: Email was sent successfully!
三、進入zabbix自定義的指定目錄,在zabbix_server.conf配置文件AlertScriptsPath查看得知
測試
[root@Server zabbix]# mkdir /var/lib/zabbixsrv/externalscripts [root@Server zabbix]# mkdir /var/lib/zabbixsrv/alertscripts [root@Server zabbixsrv]# chown zabbix.zabbix externalscripts/ -R
在/var/lib/zabbixsrv/alertscripts目錄下建立腳本爲sendEmail.sh,內容以下:編碼
[root@Server alertscripts]# cat sendEmail.sh #!/bin/bash to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -f vip@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu vip@163.com -xp 123 -m "$body" [root@Server alertscripts]# chmod +x sendEmail.sh [root@Server alertscripts]# chown zabbix.zabbix /var/lib/zabbixsrv/ -R
4.進入zabbix管理頁面url
點擊管理->報警媒介類型 點擊最右邊的建立媒體類型spa
輸入腳本名稱,類型選擇腳本
添加如下3個參數,分別對應sendEmail.sh腳本須要的3個參數:收件人地址、主題、詳細內容
{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
解釋:不少人安裝zabbix 3.0以後,寫的腳本一直髮信不成功,手動執行時能夠的。
那是由於zabbix3.0以後,能夠自定義參數了。因此不寫參數,它是不會傳參數的。
在2.x版本不存在這個問題,默認會傳3個參數。
先建立個組OPS組
在OPS組下建立用戶
選擇sendEmail.sh腳本,輸入收件人的郵箱地址
點擊配置->動做->觸發器 新建action
點擊操做,名字以及默認的發送郵件故障和恢復標題,勾選Recovery message故障恢復的時候也會發送mail信息
Zabbix-Monitor-{TRIGGER.STATUS}
告警主機: {HOSTNAME1}<br/> 告警IP: {HOST.CONN}<br/> 告警時間: {EVENT.DATE} {EVENT.TIME}<br/> 告警等級: {TRIGGER.SEVERITY}<br/> 告警信息: {TRIGGER.NAME}<br/> 告警項目: {TRIGGER.KEY1}<br/> 問題詳情: {ITEM.NAME}: {ITEM.VALUE}<br/> 當前狀態: {TRIGGER.STATUS}: {ITEM.VALUE1}<br/> 事件ID: {EVENT.ID}<br/>
再也不維護內的機器或者是觸發器的值爲PROBLEM的都會報警觸發條件
解釋:默認的步驟是1-1,也便是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給OPS組
假如故障持續了1個小時,它也只發送一次。若是改爲1-0,0是表示不限制.無限發送
間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。
若是須要短信報警的話,能夠再建立一條新的動做,選擇短信腳本。
下面開始測試郵件報警
先添加一臺主機Ubuntu,過會吧Ubuntu的agent服務中止後,過會就會收到mail
報警聯繫人的郵箱收到的郵件
點擊報表->動做日誌 能夠看到觸發動做的次數。只會有3次,除非Ubuntu主機狀態改變,也就是正常的時候,會觸發一次,不然不會再觸發。
看到zabbix界面報警後,能夠吧一些相關信息更改成處理中,這樣郵件就不會持續報警了、
Ubuntu主機的agent的服務正常後mail內容以下
其實主題Zabbix-Monitor-{TRIGGER.STATUS}能夠改爲中文的。網頁顯示正常,可是foxmail客戶端,顯示亂碼。
因此主題仍是用的英文,內容裏面的中文仍是顯示正常的。恩,那就先這樣吧。