11 Zabbix4.4.1系統教你實現sendEmail郵件報警


點擊返回:自學Zabbix之路

點擊返回:自學Zabbix4.0之路

點擊返回:自學zabbix集錦

Zabbix4.4.1系統教你實現sendEmail郵件報警

sendEmail是一個輕量級、命令行的SMTP郵件客戶端。如果你需要使用命令行發送郵件,那么sendEmail是非常完美的選擇。使用簡單並且功能強大.這個被設計用在php、bash、perl和web站點使用。

以上是sendEmail的簡單介紹,千萬不要和sendmail搞混掉了。

1. 下載安裝sendEmail 

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxvf  sendEmail-v1.56.tar.gz 
cd sendEmail-v1.56
mv sendEmail  /usr/local/bin/  

確認一下命令的權限:

SendEmail使用命令幫助

測試一下:

1 /usr/local/bin/sendEmail -f carlos@163.com  -t 4224179@qq.com  -s smtp.163.com -u "testsubject" -o message-content-type=html -o message-charset=utf8 -xu carlos@163.com   -xp xxxxx -m "test"

 1 /usr/local/bin/sendEmail    命令主程序
 2 -f carlos@163.com       發件人郵箱
 3 -t 4224179@qq.com         收件人郵箱
 4 -s smtp.163.com        發件人郵箱smtp服務器
 5 -u "testsubject"            郵件標題
 6 -o message-content-type=html   郵件內容的格式
 7 -o message-charset=utf8        郵件內容編碼
 8 -xu carlos@163.com         發件人郵箱用戶名
 9 -xp xxxxxx                  發件人郵箱密碼
10 -m "test"            郵件具體內容
11 </span>

2. 自定義腳本

 通過腳本報警是非常靈活的,因為我們可以通過腳本發送郵件,發送短信,發送微信等,腳本內部具體通過哪種方式報警,取決於我們怎樣編寫腳本。

2.1 創建目錄

mkdir  -p /usr/lib/zabbix/alertscripts/sendEmail.sh    # 創建目錄
vi /usr/lib/zabbix/alertscripts/sendEmail.sh   # 創建腳本

2.2  編寫腳本

在配置腳本類型的"報警媒介"之前,我們需要先編寫好對應的腳本,並且將腳本放置到對應的目錄中,以便zabbix能夠找到對應的腳本。那么此處,我們來動手編寫一個能夠發送郵件信息的腳本,這個腳本很簡單,此處我們直接使用sendEmail命令發送郵件,腳本內容如下:

#!/bin/bash
to=$1        #第一個參數代表郵件發送給哪個郵箱
subject=$2   #第二個參數代表郵件主題
message=$3   #第三個參數代表郵件內容
#url=$4
ech0 -e "$context" | mail -s "$subject""$to"
/usr/local/bin/sendEmail -f carlos@163.com  -t "$to"  -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu carlos@163.com   -xp xxxxx -m "$message"

從腳本內容可以看出,我們在腳本中接收了3個參數,既然定義了參數,那么zabbix在調用此腳本的時候,必然需要傳入對應的參數。
我們向腳本中傳入了3個參數,我們可以通過"腳本參數"設定需要傳入的參數,當zabbix調用對應腳本時,會自動把"腳本參數"中對應的值按照順序傳入對應的腳本中。如下圖,我們添加了三個參數。

其實,這種由大括號括起,並且由大寫字母組成的字符串在zabbix中被稱作"宏",我們可以理解為zabbix內置的變量,當不同的警告發生時,上述的三個"宏"的值會自動發生變化。

那么,除了上述的三個"宏",zabbix還有那些"宏"呢?其他"宏"都代表了什么含義呢?我們可以查看zabbix的官方在線幫助手冊,點擊查看

注意:
在zabbix3.0之前,上圖中的三個參數是默認傳入對應腳本的,不用再手動進行定義,但是從zabbix3.0開始,如果想要向對應的腳本傳入上述三個參數,則需要按照上圖進行定義。

2.3 編輯完成后,給腳本權限:

chmod +x sendEmail.sh
chown zabbix.zabbix sendEmail.sh

測一下:  (手動執行一次腳本,后面的參數分別對應接收人,主題,內容)

./sendEmail.sh 422417945@qq.com test 123

為什么測試不成功? 顯示“無主題” ,本次測試問題就是“subject”寫成了“subjext” 。往往不成功就是因為參數問題。 

2.4  編輯zabbix_server.conf文件,修改AlertScriptsPath參數,該參數用於指定外部腳本的絕對路徑。

vi /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

3  配置報警媒介

3.1   Administration –> Media types –> Create media type     media types選擇Script

Name:觸發器名稱
Type:介質類型
Script name:腳本名稱(需要先定義AlertScriptsPath,sendEmail.sh放在這個目錄下,寫絕對路徑沒用)
Script parameters:腳本參數
Description:腳本描述
Enabled:狀態

zabbix支持的報警媒介如下:

Email:郵件,這是最常用也是最傳統的一種報警媒介,郵件報警,zabbix通過配置好的SMTP郵件服務器向用戶發送對應的報警信息。
Script:腳本,當zabbix中的某些監控項出現異常時,也可以調用自定義的腳本進行報警,腳本的使用就比較靈活,具體怎樣報警全看你的腳本怎么寫。
SMS:短信,如果想要使用短信報警,則需要依賴短信網關(貌似需要北美的運行商)。
Jabber:即時通訊服務。
E Texting:商業的,收費的短信服務(北美運營商提供服務)。
Webhooks:api概念,是微服務api的使用范式之一。

但是目前zabbix4.4.0版本里面只保留以下四種:

 3.2 添加參數+腳本名稱

進一步測試郵件:   4.4.0 有一個"Test"測試按鍵。

3.3  創建一個用戶Administration –> Users –> Create user

 

  為新創建的user指定media:Administration –> Users –> Create user –> Media

 

3.4  創建action實現郵件報警Configuration –> Actions –> Create action

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM