1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

如何借助Nagios监测BGP会话?

2022-11-05 | 运维 | 1818ip | 544°c
A+ A-

【2014年2月17日 外电头条】作为一款用途广泛的网络监控工具,Nagios可以监测各种网络元件(比如路由器和交换机)的健康状况。

除此之外,Nagios经过配置后,还可以监测路由器的边界网关协议(BGP)会话;只要现有的一个或多个BGP会话出现了什么问题,就会发出警报。

现在有几个面向Nagios的BGP监测插件工具。这些工具适用于监测路由器的关键BGP对等体,并且为它们发出警报。这篇教程将解释如何使用Nagios插件工具,监测BGP邻居。

测试的平台

  • 测试后证明,与思科ASR 1000系列路由器非常兼容。
  • 测试后证明,与思科3700系列第三层交换机非常兼容。
  • 应该与其他思科设备也能兼容。
  • 测试后测试,与Quagga路由器无法兼容。
  • 未在JunOS上进行测试。

测试的拓扑结构

Nagios可以监测路由器1的所有BGP会话。BGP邻居AS 50和AS 70对正常工作而言至关重要,所以一个单独的脚本将用于监测这些特定的邻居,万一它们变得联系不上,就发出警报。

在Nagios中为路由器1创建主机

在我们开始入手之前,我们将为路由器1定义一个主机,如下所示。

#vim/etc/nagios3/conf.d/bgp-host.cfg
definehost{
usegeneric-host
host_namerouter-1
aliasrouter-1
address100.100.100.100
}

监测路由器1的所有BGP会话

Nagios随带一款名为check_bgpstate的内置工具,可以使用SNMP,检查路由器的BGP状态。这款工具可以手动运行,通过提供必要的参数,检查路由器1。

#/usr/lib/nagios/plugins/check_bgpstate-cmyCommunity100.100.100.100
OK:host'100.100.100.100',sessionsup:4,down:0,shutdown:0

现在,我们将在Nagios中定义一个命令,以便使用这个工具,开始监控路由器1的所有BGP会话。

#vim/etc/nagios-plugins/config/bgp.cfg
definecommand{
command_namecheck_all_bgp
command_line/usr/lib/nagios/plugins/check_bgpstate'$HOSTADDRESS$'-C'$ARG1$'
}

鉴于该命令已准备就绪,我们将定义一个新的服务,这个服务将把该命令应用于路由器1。

#vim/etc/nagios3/conf.d/bgp-service.cfg
defineservice{
host_namerouter-1
service_descriptionAllBGPsessionsummary
check_commandcheck_all_bgp!myCommunity
check_interval1
usegeneric-service
notification_interval0;set>0ifyouwanttobere-notified
}

如果需要添加额外的路由器,我们只需要为路由器2、路由器3等其他路由器定义相应主机,并且将命令check_all_bgp应用于每一个路由器,就像应用于路由器1那样。

在重新启动Nagios服务之前,通过执行一次试运行(dry run),证实所有的参数都已正确配置,如下所示。

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

如果一切看起来没问题,我们就重新启动Nagios服务。

#servicenagios3restart

要是一切运行顺利,Nagios应该会检查所有BGP会话的概要情况,这可以在Nagios门户网站处(即http://serverIP/nagios3 > Services)进行证实。

监测路由器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插件目录,并更名。另外针对脚本,设置必要的权限。

#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.50
OK-50.50.50.50(AS50)stateisestablished(6).EstablishedforDuration.

鉴于脚本已准备可供使用,我们接下来配置Nagios。

准备Nagios

首先我们在Nagios中定义一个命令,该命令会检查某个BGP对等体。

#vim/etc/nagios-plugins/config/
definecommand{
command_namecheck_bgp
command_line/usr/lib/nagios/plugins/check_bgp.pl-H'$HOSTADDRESS$'-C'$ARG1$'-p'$ARG2$'
}

鉴于命令已定义完毕,我们将定义两个新的服务,它们将把该命令分别应用于AS 50和AS 70。

#vim/etc/nagios3/conf.d/bgp-service.cfg
defineservice{
host_namerouter-1
service_descriptionBGPcheckwithAS50
check_commandcheck_bgp!myCommunity!50.50.50.50
check_interval1
usegeneric-service
notification_interval0;set>0ifyouwanttobere-notified
}
defineservice{
host_namerouter-1
service_descriptionBGPcheckwithAS70
check_commandcheck_bgp!myCommunity!70.70.70.70
check_interval1
usegeneric-service
notification_interval0;set>0ifyouwanttobere-notified
}

在我们重新启动Nagios服务之前,执行一次试运行,证实所有的参数都正确配置,如下所示。

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

要是一切看起来没问题,我们重新启动Nagios服务。

#servicenagios3restart

Nagios应该会开始监测路由器1中的两个BGP邻居:AS 50和AS 70。两个BGP对等体的状态可以在Nagios门户网站(http://serverIP/nagios3 > Services)中加以核查。要是任何一个BGP会话中出现了可疑情况,Nagios就会发出警报。

要是一切运行顺利,Nagios门户网站中应该会显示下面这个屏幕截图。

但愿本文有所帮助。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/7196.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。