Я попытался настроить Nagios на Ubuntu 10.10, успешно установлен и могу войти в веб-интерфейс, однако я застрял в настройке snmp или делаю здесь что-то не так, я следил за различными сайтами / вики nagios для настройки файлов конфигурации (cfg).
Когда я проверяю веб-интерфейс, он выдает следующую ошибку на одном из моих маршрутизаторов cisco:
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
Когда я набираю следующую команду: я получаю ОК
/usr/bin/snmpget -v1 192.168.1.1:161 1.3.6.1.2.1.1.5.0 -c "Routers"
Я правильно настроил SNMP на нашем устройстве cisco, так как мы можем собирать данные SNMP с помощью двух других инструментов мониторинга (SolarWinds и Manage Engine), мы склонны использовать Nagios в качестве его открытого источника.
Буду признателен, если кто-нибудь поможет исправить эту ситуацию и посоветует мне настроить nagios для мониторинга маршрутизаторов, коммутаторов и нескольких серверов Cisco.
Мы хотим отслеживать пропускную способность, использование ЦП, время безотказной работы и другие необходимые счетчики.
Добавьте версию в check_snmp
команда
Возможно, MIBS для ваших коммутаторов Cisco не загружены.
Что произойдет, если вы сделаете:
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. В противном случае проверьте свой синтаксис, как указано Майком Вебером
Проверьте значения, возвращаемые зондом, числа с плавающей запятой не поддерживаются 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/')
Condition страдает той же проблемой, если вы просто не усечете результаты до ближайшего целого числа, вам нужно будет сделать что-то вроде:
if [ $(echo "$temp < 28" | bc -l) -eq 1 ]; then :do your stuff here; fi
Также в сценариях nagios попробуйте использовать полный путь к утилитам, чтобы избежать проблем с «path not found» во время выполнения.
SNMP-Oidview