簡介:
php
sendEmail是一個輕量級,命令行的SMTP郵件客戶端。若是你須要使用命令行發送郵件,那麼sendEmail是很是完美的選擇:使用簡單而且功能強大.這個被設計用在php、bash perl和web站點使用。以上是sendEmail的簡單介紹,這裏要和sendmail區別分開。html
具體配置:web
1、bash
下載軟件:服務器
[root@dell-09 app]# cd /data/app/
[root@dell-09 app]# wget -c http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
[root@dell-09 app]# tar -zxvf sendEmail-v1.56.tar.gz
[root@dell-09 app]# cd sendEmail-v1.56
[root@dell-09 sendEmail-v1.56]# cp -a sendEmail /usr/local/bin/
[root@dell-09 sendEmail-v1.56]# chmod 755 usr/local/bin/sendEmail
[root@dell-09 sendEmail-v1.56]# file /usr/local/bin/sendEmail
/usr/local/bin/sendEmail: a /usr/bin/perl -w script text executableapp
#查看版本
運維
[root@dell-09 sendEmail-v1.56]# /usr/local/bin/sendEmail
sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net>ide
#安裝依賴測試
[root@dell-09 sendEmail-v1.56]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL編碼
2、
測試郵件發送:
參數描述:
/usr/local/bin/sendEmail 命令主程序
-f ttlsafrom@163.com 發件人郵箱
-s smtp.163.com 發件人郵箱的smtp服務器
-u "zabbix test " 郵件的標題
-o message-content-type=html 郵件內容的格式,html表示它是html格式
-o message-charset=utf8 郵件內容編碼
-xu ttlsafrom@163.com 發件人郵箱的用戶名
-xp 123456 發件人郵箱受權碼(不是郵箱密碼)
-m "告警詳情" 郵件的具體內容
note:163郵箱須要開啓smtp及客戶端受權碼!
驗證:
3、下面開始設置zabbix的sendemail郵件發送腳本
[root@dell-09 sendEmail-v1.56]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep AlertScriptsPath
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/zabbix/alertscripts
[root@dell-09 sendEmail-v1.56]#
進入zabbix自定義的指定目錄,我這裏是/usr/local/zabbix
能夠查看zabbix_server.conf配置文件AlertScriptsPath變量是如何定義的。
找到AlertScriptsPath選項,能夠自定義腳本位置。
#建立mail.sh腳本
下面是sendemail的郵件發送腳本(這個腳本通用,確保了zabbix郵件報警信息不會出現中文亂碼)
若是用163郵箱,smtp地址是smtp.163.com
若是是騰訊企業郵箱,smtp是smtp.exmail.qq.com
腳本連接:
http://down.51cto.com/data/2274361
賦權限:
[root@dell-09 sendEmail-v1.56]#chmod 755 mail.sh
[root@dell-09 sendEmail-v1.56]#touch /tmp/sendEmail.log
[root@dell-09 sendEmail-v1.56]#chown zabbix.zabbix /tmp/sendEmail.log
[root@dell-09 sendEmail-v1.56]#chown zabbix.zabbix mail.sh
#測試發郵件
[root@dell-09 alertscripts]# pwd
/usr/local/zabbix/alertscripts
[root@dell-09 alertscripts]# ./mail.sh ccc@ccc.com merry christmas 測試
zabbix server配置:
①登錄zabbix界面,進行設置
注意:zabbix 3.0 須要在爲alert腳本定義參數,之前的版本參數都固定的,如今用戶能夠本身定義命令行的參數了。添加的參數也就是腳本中的$一、$二、$3等。
點擊"管理"->"報警媒介類型"->點擊最右邊的"建立媒體類型"
②配置用戶信息:
點擊「管理」->「用戶"->"zabbix"
點擊「管理」->「用戶羣組」,點擊zabbix administrator後面的調用模式。
點擊用戶羣組Zabbix administrators的」權限「,點擊」添加「,選擇全部權限 ,最後點擊下面的」更新「
③點擊「配置」->「動做」,這裏能夠點擊右邊的「建立動做」(事件源是」觸發器「,也就是Triggers),把默認的Report problems to Zabbix administrators修改成zabbix告警。
zabbix默認的告警內容不太好懂,因此作了如下修改:
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
④
1)計算方式
設置爲「與/或」,說明只要觸發其中任何一個都會發報警郵件
2)條件:
上面默認設置的是下面兩個:
A:維護狀態 非在 維護
B:觸發器值 = 問題
按照上面的設置後,當被監控主機宕機或zabbix_agent(10050端口)關閉後,就會發生報警~
可是這些遠遠不能知足咱們的運維監控需求。
好比當被監控主機的根磁盤爆滿時,須要發送報警郵件!這就須要額外添加上面「動做」裏的「條件」設置
如在「條件」裏追加「主機」和「模板」,將所監控的主機和被監控主機採用的模板都選上爲觸發條件
這樣,當任何一個條件被觸發時,都會發送報警郵件!
設置「操做」,能夠點擊」新的「添加操做規則,也能夠直接修改已有的操做規則:
默認的步驟是1-3,也便是從1開始到3結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給zabbix用戶和zabbix administrator組。
假如故障持續了1個小時,它也只發送3次,第1-3次(即前3次)郵箱發送給zabbix用戶,時間間隔爲0秒。
若是改爲1-0,0是表示不限制.無限發送
間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。
關鍵一步:須要重啓sever服務器
[root@dell-09 alertscripts]# /etc/init.d/zabbix_server restart
zabbix利用sendemail發送報警信息的設置就已經完成了
測試:停掉任何一臺agent服務
查看action日誌:
效果以下: