我曾尝试在 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