Nagios 插件 check_snmp 未从 CISCO 路由器接收 SNMP 数据

Nagios 插件 check_snmp 未从 CISCO 路由器接收 SNMP 数据

我曾尝试在 Ubuntu 10.10 上设置 Nagios,安装成功并可以登录到 Web 界面,但是我在配置 snmp 时遇到困难,或者我在这里做错了什么,我已按照各种站点/nagios wiki 来设置配置(cfg)文件。

当我检查 Web 界面时,我的一台思科路由器出现以下错误:

 Current Status:
   UNKNOWN  
  (for 0d 2h 55m 56s)
 Status Information:

SNMP problem - No data received from host CMD: /usr/bin/snmpget -t 1 -r 5 -m RFC1213-MIB -v 1 [authpriv] 192.168.1.1:161
ifOperStatus.1

在命令行上,当我输入以下内容时,它只是在那里等待:

sudo /usr/local/nagios/libexec/check_snmp -H 192.168.1.1 -C Routers -o sysUpTime.0

当我输入以下命令时:我得到了一个 OK

/usr/bin/snmpget -v1 192.168.1.1:161 1.3.6.1.2.1.1.5.0 -c "Routers"

我已经在我们的思科设备上正确配置了 SNMP,因为我们可以通过另外两个监控工具(SolarWinds 和 Manage Engine)收集 SNMP 数据,我们倾向于使用 Nagios 作为其开源工具。

如果有人能够帮助纠正这种情况并指导我设置 nagios 来监控思科路由器、交换机和一些服务器,我将不胜感激。

我们希望监控带宽、CPU 利用率、正常运行时间和其他必要的计数器。

答案1

将版本添加到check_snmp命令中

答案2

您的 Cisco 交换机的 MIBS 可能未加载。

如果你这样做会发生什么:

sudo /usr/local/nagios/libexec/check_snmp -H 192.168.1.1 -C Routers -o 1.3.6.1.2.1.1.5.0

代替sysUpTime.0

如果有效,那么就是 MIB - 请参阅net-snmp wiki 上提供了有关如何安装和使用 MIBS 的教程。否则,请按照 Mike Weber 指出的那样检查您的语法

答案3

检查探测器返回的值,expr 不支持浮点数,仅支持整数。例如

$expr 0.9 / 10
expr: non-numeric argument

echo temp=$(expr $snmp / 10) # why echo?

temp=$(echo "$snmp / 10" | bc -l) # should do it

通过 sed 使用可选管道为您提供 .xx 精度,例如

temp=$(echo "$snmp / 10" | bc -l| sed 's/\(\.[0-9]\{2\}\)\(.*\)/\1/')

条件遭受同样的问题,除非您只是将结果截断为最接近的整数,否则您将需要执行以下操作:

if [ $(echo "$temp < 28" | bc -l) -eq 1 ]; then :do your stuff here; fi

此外,在 nagios 脚本中尝试使用实用程序的完整路径,以避免执行过程中出现“找不到路径”的问题。

简单网络管理协议-Oidview

相关内容