sendEmail是一個輕量級,命令行的SMTP郵件客戶端。若是你須要使用命令行發送郵件,那麼sendEmail是很是完美的選擇:使用簡單而且功能強大.這個被設計用在php、bashphp
perl和web站點使用。html
請注意,不是sendmail。我第一次看到這個名字,直接yum install -y sendmail了linux
而後下面就蒙圈了。web
下載軟件vim
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gzbash
建立目錄服務器
mkdir /usr/local/bin網絡
解壓軟件dom
tar zxf sendEmail-v1.56.tar.gz -C /usr/src測試
進入目錄
cd /usr/src/sendEmail-v1.56
複製文件,並設置權限
cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail
安裝組件
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
進入zabbix自定義的指定目錄
能夠查看zabbix_server.conf配置文件AlertScriptsPath變量是如何定義的。
cd /usr/local/zabbix/alertscripts/
編輯腳本
vim sendEmail.sh
內容以下:
#!/bin/bash # to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -f ieee8023@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu ieee8023@163.com -xp xxxxxxx -m "$body"
說明:
上面有4個地方我用紫色加粗字體表示了
a@domain.com 表示發件人郵箱
smtp.exmail.qq.com 表示郵箱的smtp服務器,由於我是用的騰訊企業郵箱。若是是其餘郵箱,須要修改
password 表示發件人郵箱密碼
編輯完成後,給腳本權限
chmod +x sendEmail.sh
chown zabbix.zabbix sendEmail.sh
手動執行一次腳本,後面的參數分別對應接收人,主題,內容
./sendEmail.sh c@domain.com test 123
登陸c@domain.com的帳戶,查看郵件是否能夠收到
若是腳本執行沒有報錯,收不到郵件的話,請檢查linux網絡問題,iptables、selinux是否關閉。
進入zabbix管理頁面
點擊管理->報警媒介類型 點擊最右邊的建立媒體類型
輸入腳本名稱,類型選擇腳本
添加如下3個參數,分別對應sendEmail.sh腳本須要的3個參數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
解釋:不少人安裝zabbix 3.0以後,寫的腳本一直髮信不成功,手動執行時能夠的。
那是由於zabbix3.0以後,能夠自定義參數了。因此不寫參數,它是不會傳參數的。
在2.x版本不存在這個問題,默認會傳3個參數。
點擊Admin用戶
點擊添加
選擇sendEmail.sh腳本,輸入收件人的郵箱地址
點擊用戶羣組,點擊zabbix administrator後面的調用模式,點擊一下,就啓用了
點權限->添加
選擇全部
點擊更新
點擊配置->動做 點擊默認的動做
點擊動做->編輯
修改持續時間爲60秒
修改步驟爲3,表示觸發3次動做
選擇用戶Admin
選擇僅送到sendEmail.sh
點擊更新
解釋:默認的步驟是1-1,也便是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh腳本發生報警郵件給Admin用戶和zabbix administrator組。
假如故障持續了1個小時,它也只發送一次。若是改爲1-0,0是表示不限制.無限發送
間隔就是默認持續時間60秒。那麼一個小時,就會發送60封郵件。
若是須要短信報警的話,能夠再建立一條新的動做,選擇短信腳本。
下面開始測試郵件報警
等待幾分鐘,就會收到郵件報警了
點擊報表->動做日誌 能夠看到觸發動做的次數。只會有3次,除非test主機狀態改變,也就是正常的時候,會觸發一次,不然不會再觸發。
點擊 配置->動做->Report problems to Zabbix administrators
在默認信息每一行後面添加<br/>
列如:
故障消息<br/>
主機:{HOSTNAME}<br/>
IP:{IPADDRESS}<br/>
監控項:{ITEM.NAME}<br/>
觸發器:{TRIGGER.NAME}<br/>
鍵值:{ITEM.KEY}:{ITEM.VALUE}<br/>
時間:{DATE} {TIME}<br/>
由於我用sendEmail.sh腳本指定格式是html,因此換行就是<br/>
點擊更新
再添加幾臺主機
就這樣,郵件報警就寫完了