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

希望本文有所帮助。

相关文章
相关标签/搜索