Nagios 监控路由器和交换机

本文档介绍了如何监视网络交换机和路由器的状态。一些更便宜的“非托管”交换机和集线器没有IP地址,并且在您的网络上基本上是不可见的,因此没有任何方法可以对其进行监视。较昂贵的交换机和路由器已分配了地址,可以通过ping或使用SNMP查询状态信息来对其进行监视。

我将描述如何监视托管交换机,集线器和路由器上的以下各项:

  • 数据包丢失,往返平均
  • SNMP状态信息
  • 带宽/流量

 注意:这些说明假定您已根据快速入门指南安装了Nagios 。下面的示例配置条目引用了在遵循快速入门时安装的示例配置文件(commands.cfgtemplates.cfg等)中定义的对象。

总览

监视路由器或交换机

监视交换机和路由器可能很容易,也可能涉及更多-取决于您拥有的设备和想要监视的设备。由于它们是关键的基础结构组件,因此毫无疑问,您至少希望以某种基本方式对其进行监视。

可以通过“ ping”它们来确定包丢失,RTA等,从而轻松地监视交换机和路由器。如果您的交换机支持SNMP,则可以使用check_snmp插件和带宽(如果您使用MRTG)来监视端口状态等。该check_mrtgtraf插件。

check_snmp插件只会被编译和安装,如果您有您的系统上安装了NET-SNMP和NET-SNMP-utils的软件包。在继续之前,请确保插件位于/ usr / local / nagios / libexec中。如果没有,请安装net-snmp和net-snmp-utils并重新编译/重新安装Nagios插件。

脚步

要监视新路由器或交换机,您需要执行几个步骤。他们是:

  1. 执行首次前提条件
  2. 创建新的主机和服务定义以监视设备
  3. 重新启动Nagios Core守护程序

已完成的配置任务

为了使您的生活更轻松,已经为您完成了一些配置任务:

  • 两个命令定义(check_snmpcheck_local_mrtgtraf)已添加到commands.cfg文件。这些使您可以使用check_snmpcheck_mrtgtraf插件来监视网络路由器。
  • 交换机主机模板(称为generic-switch)已经在templates.cfg文件中创建。这使您可以通过简单的方式添加新的路由器/交换机主机定义。

可以在/ usr / local / nagios / etc / objects /目录中找到上述配置文件。您可以根据需要修改这些定义和其他定义中的定义,以更好地满足您的需求。但是,我建议您等到对Nagios Core的配置更加熟悉之后再进行操作。暂时,只需按照以下说明进行操作,您将立即监视网络路由器/交换机。

先决条件

首次配置Nagios Core监视网络交换机时,您需要做一些额外的工作。请记住,您只需要对监视的* first *开关执行此操作。

编辑主要的Nagios配置文件。

vi /usr/local/nagios/etc/nagios.cfg

从主配置文件的以下行中删除前导磅(#)号:

#cfg_file = / usr / local / nagios / etc / objects / switch.cfg

保存文件并退出。

你刚才做了什么?您告诉Nagios查看/usr/local/nagios/etc/objects/switch.cfg,以查找其他对象定义。那就是您要添加路由器和交换机的主机和服务定义的地方。该配置文件已经包含一些示例主机,主机组和服务定义。对于您监视的* first *路由器/交换机,您只需修改该文件中的示例主机和服务定义,而无需创建新的。

配置Nagios Core

您需要创建一些对象定义以监视新的路由器/交换机。

打开switch.cfg文件进行编辑。

vi /usr/local/nagios/etc/objects/switch.cfg

为要监视的交换机 添加新的主机定义。如果这是您要监视的* first *开关,则只需在switch.cfg中修改示例主机定义。将host_namealiasaddress字段更改为该开关的适当值。

define host {
    use         generic-switch          ; Inherit default values from a template
    host_name   linksys-srw224p         ; The name we're giving to this switch
    alias       Linksys SRW224P Switch  ; A longer name associated with the switch
    address     192.168.1.253           ; IP address of the switch
    hostgroups  allhosts,switches       ; Host groups this switch is associated with
}

监控服务

现在,您可以添加一些服务定义(到同一配置文件中)以监视交换机的不同方面。如果这是您正在监视的* first *开关,则只需在switch.cfg中修改示例服务定义。

 注意:将以下示例定义中的“ linksys-srw224p ”替换为您在刚添加的主机定义的host_name指令中指定的名称。

监控数据包丢失和RTA

添加以下服务定义,以便在正常情况下每5分钟监视一次Nagios主机与交换机之间的数据包丢失和往返平均路程。

define service {
    use                     generic-service                     ; Inherit values from a template
    host_name               linksys-srw224p                     ; The name of the host the service is associated with
    service_description     PING                                ; The service description
    check_command           check_ping!200.0,20%!600.0,60%      ; The command used to monitor the service
    normal_check_interval   5                                   ; Check the service every 5 minutes under normal conditions
    retry_check_interval    1                                   ; Re-check the service every minute until its final/hard state is determined
    }

该服务将是:

  • 如果往返平均(RTA)大于600毫秒或数据包丢失为60%或更高,则为严重
  • 警告如果RTA大于200毫秒或数据包丢失为20%或更多
  • 如果RTA小于200毫秒并且数据包丢失小于20%,则为OK

监控SNMP状态信息

如果您的交换机或路由器支持SNMP,则可以使用check_snmp插件监视许多信息。如果不是,请跳过本节。

添加以下服务定义以监视交换机的正常运行时间。

define service {
    use                 generic-service ; Inherit values from a template
    host_name           linksys-srw224p
    service_description Uptime
    check_command       check_snmp!-C public -o sysUpTime.0
}

在上述服务定义的check_command指令中,“-C public”告诉插件要使用的SNMP团体名称为“ public”,“-o sysUpTime.0”指示应检查哪个OID。

如果要确保交换机上的特定端口/接口处于启动状态,则可以添加如下服务定义:

define service {
    use                 generic-service ; Inherit values from a template
    host_name           linksys-srw224p
    service_description Port 1 Link Status
    check_command       check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}

在上面的示例中,“-o ifOperStatus.1”是指交换机上端口1的运行状态的OID。如果在SNMP结果中找到“ 1”(1表示端口为“ up”状态),则“ -r 1”选项告诉check_snmp插件返回OK状态,如果找不到则返回CRITICAL。“ -m RFC1213-MIB”是可选的,它告诉check_snmp插件仅加载“ RFC1213-MIB”,而不是系统上安装的每个MIB,这可以帮助加快处理速度。

SNMP监视示例就是这样。可以通过SNMP监视一百万个事物,因此由您决定需要和想要监视的事物。

 提示:通常,您可以通过运行以下命令找到可以在交换机上监视的OID(用交换机的IP地址替换192.168.1.253): snmpwalk -v1 -c public 192.168.1.253 -m ALL .1

监控带宽/流量速率

如果您正在使用MRTG监视交换机或路由器上的带宽使用情况,则可以让Nagios在流量超过您指定的阈值时发出警报。使用check_mrtgtraf插件(包含在Nagios插件发行版中),您可以执行此操作。

您需要让check_mrtgtraf插件知道MRTG数据存储在哪个日志文件中以及阈值等。在我的示例中,我正在监视Linksys交换机上的端口之一。MRTG日志文件存储在/var/lib/mrtg/192.168.1.253_1.log中。这是我用来监视日志文件中存储的带宽数据的服务定义。

define service {
    use                 generic-service ; Inherit values from a template
    host_name           linksys-srw224p
    service_description Port 1 Bandwidth Usage
    check_command       check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10
}

在上面的示例中,传递给check_local_mrtgtraf命令的“ /var/lib/mrtg/192.168.1.253_1.log”选项告诉插件要读取哪个MRTG日志文件。“ AVG”选项告诉它应使用平均带宽统计信息。“ 1000000,2000000”选项分别是传入和传出流量速率的警告阈值(以字节为单位)。“ 5000000,5000000”分别是传入和传出流量速率的关键阈值(以字节为单位)。如果MRTG日志文件早于10分钟(应每5分钟更新一次),则“ 10”选项会使插件返回CRITICAL状态。

保存文件。

重新启动Nagios Core

将新的主机和服务定义添加到switch.cfg文件后,就可以开始监视路由器/交换机了。为此,您需要验证配置重新启动Nagios Core

如果验证过程中产生任何错误消息,请先修复您的配置文件,然后再继续。确保在验证过程没有任何错误之前,不要(重新)启动Nagios!

觉得文章有用?

点个广告表达一下你的爱意吧 !😁