將交換機加入到zabbix監控系統中之後,接下來應該做什麼呢,對了,就是要實時的知道交換機的在線狀態,這裏使用ICMP監控和郵件報警來實現這個目的。
一、ICMP監控
Zabbix處理ICMP ping請求使用的fping這個命令,zabbix-3.0中默認是沒有安裝的,所以我們首先安裝fping。
1.1 fping安裝
下載fping
命令:cd /usr/local/src
wget http://www.fping.org/dist/fping-3.13.tar.gz
解壓fping
命令:tar -zxf fping-3.13.tar.gz
編譯安裝
命令:cd fping-3.13
./configure #默認會直接安裝在 /usr/local/sbin
make
make install
1.2 修改fping的路徑
zabbix默認fping的路徑是/usr/sbin/,不過在我安裝的zabbix-3.0的zabbix_server.conf中並沒有找到有關fping的配置,所以這裏直接將安裝好的fping copy 到默認路徑下。
命令:cp /usr/local/sbin/fping /usr/sbin/fping
1.3 修改fping權限
修改fping權限,讓用戶zabbix可以執行fping。
命令:chown root:zabbix /usr/sbin/fping
chmod 4710 /usr/sbin/fping
1.4 用戶zabbix測試fping
命令:su zabbix
fping 192.168.*.*
192.168.*.* is alive #表示fping命令返回成功
1.5 爲Template增加ICPM監控項
在原有的Template上增加 Template ICMP Ping,因爲所有交換機都需要的,所以在Template上增加,就等爲於所有交換機都加上了。
① 打開增加Template界面Configuration->Templates->在列表中選擇一個模板->Linked templates->Select。
②選擇Template ICMP Ping。注意在Group那裏要選擇Templates。
③點擊Add,確定增加這個模板給到這個Host,這一步很重要。
④確定Linked templates裏面有我們剛纔選擇的模板之後,點擊Update,創建完成。
創建完成後的狀態如下圖, 一個Application,並且會自動創建三個triggers。
Application 的情況如下圖,ICMP帶有三個Items。
三個Items的配置如下圖
創建好的ICMP模板會自動創建三個triggers,這三個triggers就是我們監控交換機在線狀態要用到的觸發器。
1.6 建立Graph數據圖表
在原有的Template上增加 Graph,因爲所有交換機都需要的,所以在Template上增加,就等爲於所有交換機都加上了。
①打開增加Graph界面Configuration->Templates->在列表中選擇一個模板->Graphs->Create Graph。
②點擊Add增加要監控的ICMP項目。
③勾選ICMP loss,ICMP ping,ICMP response time 這三項,點擊Select。
④點擊Add,創建完成。
⑤打開ICMP的監控圖表界面 Monitoring->Graphs->Group(Switch)->Host(選擇一臺交換機)->Graph(Ping Test)。
二、郵件報警
本文通過配置腳本來發送郵件,只需要用到mailx功能,不需要安裝sendmail或sendEmail。Zabbix-3.0已自動安裝好mailx,所以我們直接配置郵件發送端信息。
2.1 配置/etc/mail.rc
在/etc/mail.rc最後增加以下幾行:
#set for zabbix
#set sendcharsets=iso-8859-1,utf-8
set [email protected] smtp=mail.tryrus.com
set smtp-auth-user=tryrus smtp-auth-password=tryrus123456
set smtp-auth=login
#set sendcharsets=iso-8859-1,utf-8 #配置發送郵件的字符格式**非常重要,不然發送的郵件內容會變成附件
set from #配置發件郵箱地址
smtp #配置發件郵箱地址的郵箱服務器名稱。如果是163這種提供公共服務的郵箱服務器應=smtp.163.com,如是公司內部使用的exchang郵箱服務器應=mai.公司域名,一般公司的exchang郵箱服務器不提供對外服務,所以POP服務都是關閉的
set smtp-auth-user #配置發件郵箱地址的登陸名字,不帶域名
smtp-auth-password #配置發件郵箱地址的登陸密碼
set smtp-auth #配置認證登陸
2.2 測試mailx
命令:
su zabbix
echo "郵件內容" | mailx -s "標題" [email protected]
在郵箱中接收到的郵件如下圖所示
2.3 配置send_email.sh腳本
cd /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/
vim send_email.sh
send_email是zabbix中配置需要用到的,腳本如下。
#!/bin/bash
#Program:
#This program is used to send email to admin
#History:
#2016/05/09 tryrus First release
#export LANG=en_US.UTF-8 //我用的是英文版的,這行可以不要,但還是加上爲好
#export LANG=zh_CN.UTF-8 //解決發送的中文變成了亂碼的問題,如果郵件中沒有中文,不要也沒關係,但是誰能保證後來者不在郵件中插進一些中文呢。
body=/tmp/alertlog.txt
to=$1 #Media types中的第一個參數,即郵件收件人郵箱地址,等下會講到。
subject=$2 #Media types中的第二個參數,即郵件主題。
echo "$3" >$body #Media types中的第三個參數,即郵件內容。
dos2unix -k $body #將郵件內容轉爲linux可識別的格式,**非常重要,不然發送的郵件內容會變成附件
cat $body | mailx -s "$subject" "$to"
爲用戶zabbix增加對腳本send_email.sh的可執行權限
chown zabbix.zabbix /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh #設置腳本所有者爲用戶zabbix
chmod +x /usr/local/zabbix-3.0.1/share/zabbix/alertscripts/send_email.sh #設置腳本執行權限
2.4 配置zabbix_server.conf
在zabbix_server.conf中配置腳本地址,命令如下
vim /usr/local/zabbix-3.0.1/etc/zabbix_server.conf
#AlertScriptsPath=/usr/local/zabbix-3.0.1/share/zabbix/alertscripts 注意確實是帶#這個符號的,**非常重要,不然發送的郵件內容會變成附件
2.4 創建郵件發送類型
打開創建media type界面Configuration->Media types->Create media type
創建Media type
①輸入Media type的名字Send_email。
②選擇type的類型爲Script。
③輸入腳本的名字,是要帶後綴的。
④增加這三個腳本參數,不然腳本里面的$1,$2,$3就沒有數據來源了。第一個參數的數據是傳遞給$1,以此類推,如果更改這三個參數的順序,記得更改腳本里面的賦值順序。
⑤點擊Add,創建完成。
創建完成後如下圖所示。
2.5 創建用戶郵件報警地址
打開創建用戶郵件報警地址界面Configuration->Users->選擇需配置郵件報警的用戶->Media->Add
在Media選項中我們要做如下配置。
①Type選擇我們剛剛創建的Send_email。
②填寫收件人的郵箱地址。
③其它全部默認即可,點擊Add,創建完成。
創建完成後如下圖所示,不要忘記點Update來保存配置。
2.6 創建zabbix郵件報警的動作
打開創建Action界面Configuration->Actions->Create action
①輸入Action的名字Send_email。
②這個參數默認即可。
③可以按照我以下的參數及格式配置。
Hostname:{HOSTNAME1}
Trigger date:{EVENT.DATE} {EVENT.TIME}
Trigger name: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Item values:
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
Original event ID: {EVENT.ID}
④這個勾上,表示觸發器正常後會發送一份恢復確認的郵件。
⑤激活這個觸發動作。
⑥選擇Conditons選項,將Type of calculation修改成爲or,其它默認即可。
⑦選擇Operations選項,點擊Action operations選項中的New,設置這個觸發動作的其它信息。
⑧Default operaion step duration 修改成60s。
⑨Operation type選擇Send message。
⑩Send to User groups 或Send to Users 選擇這個觸發動作要發送郵件的對像,羣組或單個用戶。點擊Add,創建完成。
創建完成後如下圖所示。
2.7 測試zabbix郵件報警
創建一個不存在的交換機來進行測試,創建完成等待一分鐘左右的時候後,可以在Monitoring->Triggers中看到被觸發器報故障的交換機。
在Monitoring->Events中看可以看到這臺交換機詳細故障情況,以及報警郵件的發送情況,如下圖所示,Actions的狀態爲Sent,即表示郵件已發送完成。
在郵箱中收到的郵件如下圖所示。
OK ,到這裏,我們要實現的功能已全部實現,完成目標。
謝謝你打開這篇博文,並一直堅持看到了這裏,如果覺得對你有幫助,請不要吝嗇在右下角的贊上點一下。