11 一步一步Zabbix4.4.0系統教你實現sendEmail郵件報警

點擊返回:自學Zabbix之路php

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

點擊返回:自學zabbix集錦web

一步一步Zabbix4.4.0系統教你實現sendEmail郵件報警
api

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

以上是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使用命令幫助app

測試一下:微服務

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. 自定義腳本

 經過腳本報警是很是靈活的,由於咱們能夠經過腳本發送郵件,發送短信,發送微信等,腳本內部具體經過哪一種方式報警,取決於咱們怎樣編寫腳本。post

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

 

 

 

相關文章
相關標籤/搜索