扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇文章主要介绍了怎么借助Nagios监测BGP会话,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联公司专注于企业营销型网站建设、网站重做改版、南沙网站定制设计、自适应品牌网站建设、H5场景定制、商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为南沙等各大城市提供网站开发制作服务。
如何使用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 define host{ use generic-host host_name router-1 alias router-1 address 100.100.100.100 }
监测路由器1的所有BGP会话
Nagios随带一款名为check_bgpstate的内置工具,可以使用SNMP,检查路由器的BGP状态。这款工具可以手动运行,通过提供必要的参数,检查路由器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
现在,我们将在Nagios中定义一个命令,以便使用这个工具,开始监控路由器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$' }
鉴于该命令已准备就绪,我们将定义一个新的服务,这个服务将把该命令应用于路由器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等其他路由器定义相应主机,并且将命令check_all_bgp应用于每一个路由器,就像应用于路由器1那样。
在重新启动Nagios服务之前,通过执行一次试运行(dry run),证实所有的参数都已正确配置,如下所示。
# nagios3 -v /etc/nagios3/nagios.cfg
如果一切看起来没问题,我们就重新启动Nagios服务。
# service nagios3 restart
要是一切运行顺利,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插件目录,并更名。另外针对脚本,设置必要的权限。
# cp check_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 -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.
鉴于脚本已准备可供使用,我们接下来配置Nagios。
准备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$' }
鉴于命令已定义完毕,我们将定义两个新的服务,它们将把该命令分别应用于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服务之前,执行一次试运行,证实所有的参数都正确配置,如下所示。
# nagios3 -v /etc/nagios3/nagios.cfg
要是一切看起来没问题,我们重新启动Nagios服务。
# service nagios3 restart
Nagios应该会开始监测路由器1中的两个BGP邻居:AS 50和AS 70。两个BGP对等体的状态可以在Nagios门户网站(http://serverIP/nagios3 > Services)中加以核查。要是任何一个BGP会话中出现了可疑情况,Nagios就会发出警报。
要是一切运行顺利,Nagios门户网站中应该会显示下面这个屏幕截图。
感谢你能够认真阅读完这篇文章,希望小编分享的“怎么借助Nagios监测BGP会话”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流