当前位置: 首页 > 科技观察

如何使用Nagios监控BGP会话?

时间:2023-03-14 16:50:03 科技观察

【外国新闻头条,2014年2月17日】Nagios作为一种广泛使用的网络监控工具,可以监控各种网络组件(如路由器和交换机)的健康状态。此外,Nagios可以配置为监控路由器的边界网关协议(BGP)会话;如果一个或多个现有BGP会话出现问题,它将发出警报。Nagios有几个可用的BGP监控插件工具。这些工具适用于监控路由器的关键BGP对等点并为它们发送警报。本教程将解释如何使用Nagios插件工具监控BGP邻居。经过测试的平台经过测试并证明与CiscoASR1000系列路由器非常兼容。经过测试,证明与Cisco3700系列三层交换机的兼容性非常好。也应该与其他Cisco设备兼容。测试后测试,与Quagga路由器不兼容。未在JunOS上测试。经过测试的拓扑Nagios可以监控路由器1上的所有BGP会话。BGP邻居AS50和AS70对于正常运行至关重要,因此将使用单独的脚本来监控这些特定的邻居,并在它们变得无法访问时发出警报。在Nagios中为路由器1创建主机在我们开始之前,我们将为路由器1定义一个主机,如下所示。#vim/etc/nagios3/conf.d/bgp-host.cfgdefinehost{usegeneric-hosthost_namerouter-1aliasrouter-1address100.100.100.100}监控路由器1上的所有BGP会话Nagios带有一个名为check_bgpstate的内置工具,可以使用SNMP,检查路由器的BGP状态。通过提供必要的参数,可以手动运行此工具来检查路由器1。#/usr/lib/nagios/plugins/check_bgpstate-cmyCommunity100.100.100.100OK:host'100.100.100.100',sessionsup:4,down:0,shutdown:0我们现在将在Nagios中定义一个命令来使用这个工具启动监控路由器1上的所有BGP会话。#vim/etc/nagios-plugins/config/bgp.cfgdefinecommand{command_namecheck_all_bgpcommand_line/usr/lib/nagios/plugins/check_bgpstate'$HOSTADDRESS$'-C'$ARG1$'}假设命令准备好了,我们将定义一个新服务,此服务会将此命令应用于路由器1。#vim/etc/nagios3/conf.d/bgp-service.cfgdefineservice{host_namerouter-1service_descriptionAllBGPsessionsummarycheck_commandcheck_all_bgp!myCommunitycheck_interval1usegeneric-servicenotification_interval0;set>0ifyouwanttobere-notified}如果你需要添加额外的路由器,我们只需要为路由器2,路由器3等添加额外的路由器。定义相应的主机,并像对路由器1一样对每个路由器应用命令check_all_bgp。在重新启动Nagios服务之前,确认所有参数都已配置通过如下所示执行空运行正确。#nagios3-v/etc/nagios3/nagios.cfg如果一切正常,我们重启Nagios服务。#servicenagios3restart假设一切顺利,Nagios应该检查所有BGP会话的配置文件,这可以在Nagios门户(即http://serverIP/nagios3>服务)中确认。监控路由器1的一个或某些BGP邻居前面的check_bgpstate工具仅提供BGP会话摘要的警报(即上面的3个,下面的1个)。如果检测到任何有问题的BGP会话,用户需要手动登录到路由器以检查哪些BGP会话已关闭。对于关键的BGP邻居(例如拓扑图中提到的AS50和AS70),您可能希望监控单个BGP邻居。为了使Nagios能够监控某些BGP邻居(例如AS50和AS70)并发出警报,使用了一个名为check_bgp的单独脚本。准备check_bgp脚本check_bgp脚本(最新版本为0.4)可以在官网(http://exchange.nagios.org/directory/Plugins/Network-Protocols/BGP-2D4/check_bgp/details)下载。下载脚本后,将其复制到Nagiosplugins目录并重命名。此外,为脚本设置必要的权限。#cpcheck_bgp.0.4.pl/usr/lib/nagios/plugins/check_bgp.pl#chmod+x/usr/lib/nagios/plugins/check_bgp.pl既然脚本准备好了,我们来试运行一下看看脚本输出结果。#cd/usr/lib/nagios/plugins/#./check_bgp.pl-H100.100.100.100-CmyCommunity-p50.50.50.50OK-50.50.50.50(AS50)stateisestablished(6).EstablishedforDuration。鉴于脚本已经可以使用,我们接下来配置Nagios。准备Nagios首先我们在Nagios中定义一个命令来检查某个BGP对等体。#vim/etc/nagios-plugins/config/definecommand{command_namecheck_bgpcommand_line/usr/lib/nagios/plugins/check_bgp.pl-H'$HOSTADDRESS$'-C'$ARG1$'-p'$ARG2$'}给定命令定义完成后,我们将定义两个新服务,分别将此命令应用于AS50和AS70。#vim/etc/nagios3/conf.d/bgp-service.cfgdefineservice{host_namerouter-1service_descriptionBGPcheckwithAS50check_commandcheck_bgp!myCommunity!50.50.50.50check_interval1usegeneric-servicenotification_interval0;set>0ifyouwanttobere-notified}defineservice{host_namerouter-1service_descriptionBGPcheckwithAS70check_commandcheck_bgp!myCommunity!70.70.70.70check_interval1usegeneric-servicenotification_interval0;set>0ifyouwanttobere-notified}在我们重启Nagios服务之前,进行一次试运行,验证所有参数是否配置正确,如下图。#nagios3-v/etc/nagios3/nagios.cfg如果一切正常,我们重启Nagios服务。#servicenagios3restartNagios应该开始监控路由器1中的两个BGP邻居:AS50和AS70。可以在Nagios门户(http://serverIP/nagios3>Services)中检查两个BGP对等体的状态。如果任何BGP会话中发生可疑情况,Nagios将发出警报。如果一切顺利,下面的屏幕截图应该会出现在Nagios门户中。希望本文有所帮助。原文链接:http://xmodulo.com/2014/02/monitor-bgp-sessions-nagios.html