Nagios 监控网络设备

概述

本文描述如何通过 Nagios 监控网络设备(例如交换机、路由器等)。监控网络设备的前提是网络设备需要有一个 IP 地址,否则 Nagios 是无法进行监控的。Nagios 可以通过 ping 监控网络设备的连通性(例如丢包和延迟);如果网络设备支持 snmp,那么还可以通过 snmp 协议监控网络设备的性能信息,流量信息。

Nagios 监控网络设备_第1张图片

准备工作

check_snmp 插件是 Nagios 基础插件库中存在的,如果发现在安装完 Nagios 的基础插件库后没有这个插件,这说明在编译的时候这个插件并未成功编译,原因可能是没有找到其所需的库。如果是这个问题,那么安装 net-snmp 的相关环境,重新编译插件库就可以了。

运行下边命令,安装 net-snmp 的开发库

yum install net-snmp-devel net-snmp-utils

编译安装 Nagios 插件,请前往 这里。

配置监控网络设备

配置过程:

  • 加载网络设备配置文件
  • 主机配置
  • 服务配置

加载网络设备配置文件

在安装 Nagios 核心的过程中,已经自动生成了一个用于监控网络设备的配置文件,默认情况下核心是不加载这个配置的。因此,需要编辑核心配置文件

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

去掉下边这行的注释

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

主机配置

编辑 /usr/local/nagios/etc/objects/switch.cfg,可以看到如下主机配置,将 address 修改为您的网络设备地址。

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
}
  • use:使用的主机模板,generic-switch 是 Nagios 自带的一个用于监控网络设备的主机模板,相关设置可以到 /usr/local/nagios/etc/objects/templates.cfg 中查看。

服务配置

1 监控丢包及延迟

define service {
    use                     generic-service                    
    host_name               linksys-srw224p                    
    service_description     PING                               
    check_command           check_ping!200.0,20%!600.0,60%    
    normal_check_interval   5                                  
    retry_check_interval    1                                   
    }
  • use:使用的监控服务模板
  • check_command: 丢包大于 20% 或延迟高于 200 毫秒则触发 WARNING 级别报警,丢包大于 60% 或延迟高于 600 毫秒则触发 CRITICAL 级别报警。
  • normal_check_interval:常态下的检测频次,每 5 分钟检测 1 次
  • retry_check_interval:异常状态下重试,每 1 分钟检测 1 次。

关于后边两个参数,之后会在其它文章详细介绍。

2 通过 snmp 协议监控状态信息

如果网络设备不支持 snmp 协议,此部分请略过。

define service {
    use                 generic-service
    host_name           linksys-srw224p
    service_description Uptime
    check_command       check_snmp!-C public -o sysUpTime.0
}
  • check_command : “-C public” 只是 snmp 团体名,”-o sysUpTime.0” 指示哪一个 OID 会被检查。

3 流量监控

如果你使用 MRTG 监控交换机或路由器的带宽占用,那么就可以通过 Nagios 来进行监控报警。这里你需要设置存储 MRTG 日志的地址,Nagios 可以根据这个日志进行分析。

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
}

如上设置, /var/lib/mrtg/192.168.1.253_1.log 设置了 check_local_mrtgtraf 需要访问的日志文件;AVG 设置获取平均带宽占用数据; 1000000,2000000 定义了 WARNING 级别的报警参数,传入流量大于 1M 字节或 传出流量大于 2M 字节; 5000000,5000000 定义了 CRITICAL 级别的报警参数,传入流量大于 5M 字节或 传出流量大于 5M 字节;10 指示如果 MRTG 的日志文件没有及时更新(10分钟未更新),则触发 CRITICAL 级别的报警。

上边就是通过 Nagios 监控网络设备的基本方法,通过 snmp 协议仍然可以监控更多的信息,例如端口状态等等,并且通过社区也可以获取特定网络设备的监控插件。

你可能感兴趣的:(运维)