Nagios監控BGP會話

做爲一款用途普遍的網絡監控工具,Nagios能夠監測各類網絡元件(好比路由器和交換機)的健康情況。除此以外,Nagios通過配置後,還能夠監測路由器的邊界網關協議(BGP)會話;只要現有的一個或多個BGP會話出現了什麼問題,就會發出警報。ios

wKioL1MBeUjSU_9jAADbRPadsrI661.jpg

如今有幾個面向Nagios的BGP監測插件工具。這些工具適用於監測路由器的關鍵BGP對等體,而且爲它們發出警報。這篇教程將解釋如何使用Nagios插件工具,監測BGP鄰居。vim

測試的平臺網絡

  • 測試後證實,與思科ASR 1000系列路由器很是兼容。 session

  • 測試後證實,與思科3700系列第三層交換機很是兼容。 併發

  • 應該與其餘思科設備也能兼容。 ide

  • 測試後測試,與Quagga路由器沒法兼容。 工具

  • 未在JunOS上進行測試。 測試

測試的拓撲結構網站

Nagios能夠監測路由器1的全部BGP會話。BGP鄰居AS 50和AS 70對正常工做而言相當重要,因此一個單獨的腳本將用於監測這些特定的鄰居,萬一它們變得聯繫不上,就發出警報。spa

在Nagios中爲路由器1建立主機

在咱們開始入手以前,咱們將爲路由器1定義一個主機,以下所示。

 
 
  1. # vim /etc/nagios3/conf.d/bgp-host.cfg

  2. define host{

  3. use                     generic-host

  4. host_name               router-1

  5. alias                    router-1

  6. address                  100.100.100.100

  7. }

監測路由器1的全部BGP會話

Nagios隨帶一款名爲check_bgpstate的內置工具,可使用SNMP,檢查路由器的BGP狀態。這款工具能夠手動運行,經過提供必要的參數,檢查路由器1。

 
 
  1. # /usr/lib/nagios/plugins/check_bgpstate -c myCommunity 100.100.100.100

  2. OK: host '100.100.100.100', sessions up: 4, down: 0, shutdown: 0

如今,咱們將在Nagios中定義一個命令,以便使用這個工具,開始監控路由器1的全部BGP會話。

 
 
  1. # vim /etc/nagios-plugins/config/bgp.cfg

  2. define command{

  3. command_name    check_all_bgp

  4. command_line    /usr/lib/nagios/plugins/check_bgpstate '$HOSTADDRESS$' -C '$ARG1$'

  5. }

鑑於該命令已準備就緒,咱們將定義一個新的服務,這個服務將把該命令應用於路由器1。

 
 
  1. # vim /etc/nagios3/conf.d/bgp-service.cfg

  2. define service {

  3. host_name       router-1

  4. service_description     All BGP session summary

  5. check_command       check_all_bgp!myCommunity

  6. check_interval      1

  7. use         generic-service

  8. notification_interval   0 ; set > 0 if you want to be re-notified

  9. }

若是須要添加額外的路由器,咱們只須要爲路由器二、路由器3等其餘路由器定義相應主機,而且將命令check_all_bgp應用於每個路由器,就像應用於路由器1那樣。

在從新啓動Nagios服務以前,經過執行一次試運行(dry run),證明全部的參數都已正確配置,以下所示。

 
 
  1. # nagios3 -v /etc/nagios3/nagios.cfg

若是一切看起來沒問題,咱們就從新啓動Nagios服務。

 
 
  1. # service nagios3 restart

要是一切運行順利,Nagios應該會檢查全部BGP會話的概要狀況,這能夠在Nagios門戶網站處(即http://serverIP/nagios3 > Services)進行證明。

wKioL1MBenGCGCdvAADHxmK125o624.jpg

監測路由器1的某個或某些BGP鄰居

前面的check_bgpstate工具只爲BGP會話概要(即上面3個,下面1個)提供了警報。要是檢測到任何有問題的BGP會話,用戶就須要人工登陸到路由器,檢查哪一個BGP會話出了故障。

至於關鍵的BGP鄰居(好比拓撲結構圖中提到的AS 50和AS 70),你可能想要監測個別的BGP鄰居。想讓Nagios可以監測某些BGP鄰居(好比AS 50和AS 70),併發出警報,就要使用一個名爲check_bgp的單獨腳本。

準備check_bgp腳本

check_bgp腳本(最新版本是0.4)能夠從官方網站(http://exchange.nagios.org/directory/Plugins/Network-Protocols/BGP-2D4/check_bgp/details)下載。下載該腳本後,它被拷貝到Nagios插件目錄,並改名。另外針對腳本,設置必要的權限。

 
 
  1. # cp check_bgp.0.4.pl /usr/lib/nagios/plugins/check_bgp.pl

  2. # chmod +x /usr/lib/nagios/plugins/check_bgp.pl

鑑於腳本已準備就緒,咱們先進行一番試運行,檢查腳本的輸出結果。

 
 
  1. # cd /usr/lib/nagios/plugins/

  2. # ./check_bgp.pl -H 100.100.100.100 -C myCommunity -p 50.50.50.50

  3. OK - 50.50.50.50 (AS50) state is established(6). Established for Duration.

鑑於腳本已準備可供使用,咱們接下來配置Nagios。

準備Nagios

首先咱們在Nagios中定義一個命令,該命令會檢查某個BGP對等體。

 
 
  1. # vim /etc/nagios-plugins/config/

  2. define command{

  3. command_name    check_bgp

  4. command_line    /usr/lib/nagios/plugins/check_bgp.pl -H '$HOSTADDRESS$' -C '$ARG1$' -p '$ARG2$'

  5. }

鑑於命令已定義完畢,咱們將定義兩個新的服務,它們將把該命令分別應用於AS 50和AS 70。

 
 
  1. # vim /etc/nagios3/conf.d/bgp-service.cfg

  2. define service {

  3. host_name                router-1

  4. service_description      BGP check with AS 50

  5. check_command            check_bgp!myCommunity!50.50.50.50

  6. check_interval           1

  7. use                      generic-service

  8. notification_interval    0 ; set > 0 if you want to be re-notified

  9. }

  10. define service {

  11. host_name                router-1

  12. service_description      BGP check with AS 70

  13. check_command            check_bgp!myCommunity!70.70.70.70

  14. check_interval           1

  15. use                     generic-service

  16. notification_interval    0 ; set > 0 if you want to be re-notified

  17. }

在咱們從新啓動Nagios服務以前,執行一次試運行,證明全部的參數都正確配置,以下所示。

 
 
  1. # nagios3 -v /etc/nagios3/nagios.cfg

要是一切看起來沒問題,咱們從新啓動Nagios服務。

 
 
  1. # service nagios3 restart

Nagios應該會開始監測路由器1中的兩個BGP鄰居:AS 50和AS 70。兩個BGP對等體的狀態能夠在Nagios門戶網站(http://serverIP/nagios3 > Services)中加以覈查。要是任何一個BGP會話中出現了可疑狀況,Nagios就會發出警報。

要是一切運行順利,Nagios門戶網站中應該會顯示下面這個屏幕截圖。

wKiom1MBer2D9dLoAADBq0BSCiM768.jpg

希望本文有所幫助。

相關文章
相關標籤/搜索