說明:
本文講如何經過shell腳本實現zabbix發送告警郵件,共有5步
1.設置mailx帳號:是配置mailx的發信帳號
2.zabbix服務器端編寫郵件發送腳本:是增長zabbix的告警方式,增長經過sendmail.sh腳本方式調用mailx工具
3.zabbix後臺配置shell郵件告警方式:是配置zabbix的告警方式,經過郵箱、短信、仍是腳本方式等
4.配置用戶的郵箱地址:是配置誰來接收告警郵件
5.定義action:是達到觸發條件時,誰接收告警郵件、經過怎樣的告警方式html
因此若是有問題的話,只須要按照上面那樣一步一步查詢下來便可!linux
具體:
1、設置mailx帳號,linux能夠經過自帶的mail實現發送外部smtp郵件,更具體的能夠參考「linux使用mail發送外部smtp郵件」
1. 設置mailx帳號,建議用163的郵箱。若是換成QQ郵箱會出現沒法發送,估計是QQ郵箱哪裏作了限制shell
# cp /etc/mail.rc /etc/mailrc.bak.20150307 # cat /etc/mail.rc //內容以下 set from=123456@163.com set smtp=smtp.163.com set smtp-auth-user=123456 set smtp-auth-password=123456 set smtp-auth=login
2.測試發送郵件,看654321@coolnull.com有收到來自123456@163.com的郵件嘛vim
# echo hello word | mail -s " title" 654321@coolnull.com
2、zabbix服務器端編寫郵件發送腳本
1.修改zabbix_server.conf配置文件,指定zabbixbash
# vim /usr/local/zabbix/etc/zabbix_server.conf //修改alert scripts爲如下路徑 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
2.建立郵件發送腳本服務器
# vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh //如下爲腳本內容 #!/bin/bash # use mailx to send mail # 20141127 carl 1st # PATH # echo "$3" | mail -s "$2" "$1"
3. 更改屬主及賦予可執行權限工具
# chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh # chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
4. 測試郵件發送腳本測試
# /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 654321@coolnull.com "測試郵件標題" "測試郵件內容"
3、zabbix後臺配置shell郵件告警方式
Administration|Media types,進入告警方式配置界面,建立sendmail.sh告警方式,以下圖
name隨便寫這裏就寫sendmail.sh;type選擇scripts;Script name則輸入上一步編寫的腳本名稱,即sendmail.sh
4、配置用戶的郵箱地址
Administration|Users,進入用戶配置界面,在」Media」選項卡中配置用戶接收告警的郵箱地址。點擊」Add」,在彈出的窗口中輸入用戶郵箱,見下圖:
type選擇剛剛上步建立的sendmail.sh;sendto則是要接收告警的郵件地址
5、定義action
Configuration|Action,Event source選擇triggers,我這邊是修改已有的Actions,具體以下
send to users選擇admin用戶(上一步剛定義了admin的郵件地址);send only to 則只選sendmail.sh告警方式。spa