设为首页 收藏本站
查看: 1405|回复: 0

Nagios监控BGP会话

[复制链接]

尚未签到

发表于 2019-1-14 09:13:21 | 显示全部楼层 |阅读模式
  作为一款用途广泛的网络监控工具,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
  •   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门户网站中应该会显示下面这个屏幕截图。

  但愿本文有所帮助。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663015-1-1.html 上篇帖子: Nagios微信报警 下篇帖子: nagios错误案例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表