如何借助Nagios監(jiān)測BGP會話?
譯文【2014年2月17日 51CTO外電頭條】作為一款用途廣泛的網(wǎng)絡(luò)監(jiān)控工具,Nagios可以監(jiān)測各種網(wǎng)絡(luò)元件(比如路由器和交換機(jī))的健康狀況。
除此之外,Nagios經(jīng)過配置后,還可以監(jiān)測路由器的邊界網(wǎng)關(guān)協(xié)議(BGP)會話;只要現(xiàn)有的一個或多個BGP會話出現(xiàn)了什么問題,就會發(fā)出警報(bào)。
現(xiàn)在有幾個面向Nagios的BGP監(jiān)測插件工具。這些工具適用于監(jiān)測路由器的關(guān)鍵BGP對等體,并且為它們發(fā)出警報(bào)。這篇教程將解釋如何使用Nagios插件工具,監(jiān)測BGP鄰居。
測試的平臺
- 測試后證明,與思科ASR 1000系列路由器非常兼容。
- 測試后證明,與思科3700系列第三層交換機(jī)非常兼容。
- 應(yīng)該與其他思科設(shè)備也能兼容。
- 測試后測試,與Quagga路由器無法兼容。
- 未在JunOS上進(jìn)行測試。
測試的拓?fù)浣Y(jié)構(gòu)
Nagios可以監(jiān)測路由器1的所有BGP會話。BGP鄰居AS 50和AS 70對正常工作而言至關(guān)重要,所以一個單獨(dú)的腳本將用于監(jiān)測這些特定的鄰居,萬一它們變得聯(lián)系不上,就發(fā)出警報(bào)。
在Nagios中為路由器1創(chuàng)建主機(jī)
在我們開始入手之前,我們將為路由器1定義一個主機(jī),如下所示。
- # vim /etc/nagios3/conf.d/bgp-host.cfg
- define host{
- use generic-host
- host_name router-1
- alias router-1
- address 100.100.100.100
- }
監(jiān)測路由器1的所有BGP會話
Nagios隨帶一款名為check_bgpstate的內(nèi)置工具,可以使用SNMP,檢查路由器的BGP狀態(tài)。這款工具可以手動運(yùn)行,通過提供必要的參數(shù),檢查路由器1。
- # /usr/lib/nagios/plugins/check_bgpstate -c myCommunity 100.100.100.100
- OK: host '100.100.100.100', sessions up: 4, down: 0, shutdown: 0
現(xiàn)在,我們將在Nagios中定義一個命令,以便使用這個工具,開始監(jiān)控路由器1的所有BGP會話。
- # vim /etc/nagios-plugins/config/bgp.cfg
- define command{
- command_name check_all_bgp
- command_line /usr/lib/nagios/plugins/check_bgpstate '$HOSTADDRESS$' -C '$ARG1$'
- }
鑒于該命令已準(zhǔn)備就緒,我們將定義一個新的服務(wù),這個服務(wù)將把該命令應(yīng)用于路由器1。
- # vim /etc/nagios3/conf.d/bgp-service.cfg
- define service {
- host_name router-1
- service_description All BGP session summary
- check_command check_all_bgp!myCommunity
- check_interval 1
- use generic-service
- notification_interval 0 ; set > 0 if you want to be re-notified
- }
如果需要添加額外的路由器,我們只需要為路由器2、路由器3等其他路由器定義相應(yīng)主機(jī),并且將命令check_all_bgp應(yīng)用于每一個路由器,就像應(yīng)用于路由器1那樣。
在重新啟動Nagios服務(wù)之前,通過執(zhí)行一次試運(yùn)行(dry run),證實(shí)所有的參數(shù)都已正確配置,如下所示。
- # nagios3 -v /etc/nagios3/nagios.cfg
如果一切看起來沒問題,我們就重新啟動Nagios服務(wù)。
- # service nagios3 restart
要是一切運(yùn)行順利,Nagios應(yīng)該會檢查所有BGP會話的概要情況,這可以在Nagios門戶網(wǎng)站處(即http://serverIP/nagios3 > Services)進(jìn)行證實(shí)。
監(jiān)測路由器1的某個或某些BGP鄰居
前面的check_bgpstate工具只為BGP會話概要(即上面3個,下面1個)提供了警報(bào)。要是檢測到任何有問題的BGP會話,用戶就需要人工登錄到路由器,檢查哪個BGP會話出了故障。
至于關(guān)鍵的BGP鄰居(比如拓?fù)浣Y(jié)構(gòu)圖中提到的AS 50和AS 70),你可能想要監(jiān)測個別的BGP鄰居。想讓Nagios能夠監(jiān)測某些BGP鄰居(比如AS 50和AS 70),并發(fā)出警報(bào),就要使用一個名為check_bgp的單獨(dú)腳本。
準(zhǔn)備check_bgp腳本
check_bgp腳本(***版本是0.4)可以從官方網(wǎng)站(http://exchange.nagios.org/directory/Plugins/Network-Protocols/BGP-2D4/check_bgp/details)下載。下載該腳本后,它被拷貝到Nagios插件目錄,并更名。另外針對腳本,設(shè)置必要的權(quán)限。
- # cp check_bgp.0.4.pl /usr/lib/nagios/plugins/check_bgp.pl
- # chmod +x /usr/lib/nagios/plugins/check_bgp.pl
鑒于腳本已準(zhǔn)備就緒,我們先進(jìn)行一番試運(yùn)行,檢查腳本的輸出結(jié)果。
- # cd /usr/lib/nagios/plugins/
- # ./check_bgp.pl -H 100.100.100.100 -C myCommunity -p 50.50.50.50
- OK - 50.50.50.50 (AS50) state is established(6). Established for Duration.
鑒于腳本已準(zhǔn)備可供使用,我們接下來配置Nagios。
準(zhǔn)備Nagios
首先我們在Nagios中定義一個命令,該命令會檢查某個BGP對等體。
- # vim /etc/nagios-plugins/config/
- define command{
- command_name check_bgp
- command_line /usr/lib/nagios/plugins/check_bgp.pl -H '$HOSTADDRESS$' -C '$ARG1$' -p '$ARG2$'
- }
鑒于命令已定義完畢,我們將定義兩個新的服務(wù),它們將把該命令分別應(yīng)用于AS 50和AS 70。
- # vim /etc/nagios3/conf.d/bgp-service.cfg
- define service {
- host_name router-1
- service_description BGP check with AS 50
- check_command check_bgp!myCommunity!50.50.50.50
- check_interval 1
- use generic-service
- notification_interval 0 ; set > 0 if you want to be re-notified
- }
- define service {
- host_name router-1
- service_description BGP check with AS 70
- check_command check_bgp!myCommunity!70.70.70.70
- check_interval 1
- use generic-service
- notification_interval 0 ; set > 0 if you want to be re-notified
- }
在我們重新啟動Nagios服務(wù)之前,執(zhí)行一次試運(yùn)行,證實(shí)所有的參數(shù)都正確配置,如下所示。
- # nagios3 -v /etc/nagios3/nagios.cfg
要是一切看起來沒問題,我們重新啟動Nagios服務(wù)。
- # service nagios3 restart
Nagios應(yīng)該會開始監(jiān)測路由器1中的兩個BGP鄰居:AS 50和AS 70。兩個BGP對等體的狀態(tài)可以在Nagios門戶網(wǎng)站(http://serverIP/nagios3 > Services)中加以核查。要是任何一個BGP會話中出現(xiàn)了可疑情況,Nagios就會發(fā)出警報(bào)。
要是一切運(yùn)行順利,Nagios門戶網(wǎng)站中應(yīng)該會顯示下面這個屏幕截圖。
但愿本文有所幫助。
原文鏈接:http://xmodulo.com/2014/02/monitor-bgp-sessions-nagios.html