Nagios - проверка времени работы системы (System Uptime)

Версия для печатиОтправить другуPDF version

Nagios Logo

Имея в распоряжении настроенную связку Nagios + Nconf, продолжим развивать тему мониторинга разнообразных параметров. Будем мониторить время работы системы с момента загрузки системы. Чтобы "ребуты" оборудования не проходили для нас незаметно...

Проверку будем выполнять с используя расширение check_snmp. Синтаксис использования check_snmp следующий:

Usage:
check_snmp -H <ip_address> -o <OID> [-w warn_range] [-c crit_range]
[-C community] [-s string] [-r regex] [-R regexi] [-t timeout] [-e retries]
[-l label] [-u units] [-p port-number] [-d delimiter] [-D output-delimiter]
[-m miblist] [-P snmp version] [-N context] [-L seclevel] [-U secname]
[-a authproto] [-A authpasswd] [-x privproto] [-X privpasswd] [-4|6]

Будем использовать следующие переменные:

  • 10.50.10.50 - IP-адрес оборудования
  • public - SNMP community
  • 2c - версия SNMP

Используя SNMP, состояние порта можно получить через OID sysUpTime.0. Пример такого запроса и ответа:

# snmpwalk -v 2c -c public 10.50.10.50 sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4043391272) 467 days, 23:38:32.72

Теперь получим эту же информацию, используя check_snmp:

# /usr/local/libexec/nagios/check_snmp -H 10.50.10.50 -o sysUpTime.0 -P 2c -C public
SNMP OK - Timeticks: (4043420333) 467 days, 23:43:23.33 |

Последний штрих - укажем в комманде проверки дополнительные ключи, чтобы ограничить временные рамки, согласно которых получаем статус CRITICAL и WARNING. Если UpTime оборудования меньше 3 часов - статус CRITICAL, если UpTime меньше суток - статус WARNING. Итак:

  • 3 часа - это 10800 секунд
  • 24 часа - это 86400 секунд

SNMP возвращает нам значение sysUpTime.0, в формате timeticks. Timetick - это 0.01 секунды. Соответственно, необходимо перевести наше время в секундах в формат timeticks. Для этого умножаем время в секундах на 100, и получаем значение в timeticks.

Тестируем работоспособность комманды проверки:

/usr/local/libexec/nagios/check_snmp -H 10.50.10.50 -o sysUpTime.0 -P 2c -C public -c 1080000:0 -w 8640000:0
SNMP CRITICAL - *290700* | DISMAN-EVENT-MIB::sysUpTimeInstance=290700;8640000:0;1080000:0;8640000;1080000;
/usr/local/libexec/nagios/check_snmp -H 10.50.10.50 -o sysUpTime.0 -P 2c -C public -c 1080000:0 -w 8640000:0

SNMP WARNING - *8179000* | DISMAN-EVENT-MIB::sysUpTimeInstance=8179000;8640000:0;1080000:0;8640000;1080000;
/usr/local/libexec/nagios/check_snmp -H 10.50.10.50 -o sysUpTime.0 -P 2c -C public -c 1080000:0 -w 8640000:0

SNMP OK - 4049137283 | DISMAN-EVENT-MIB::sysUpTimeInstance=4049137283;8640000:0;1080000:0;8640000;1080000;

Теперь, используя эту информацию, создадим в Nconf новую "Checkcommand" - "check_snmp_uptime".

Для этого в меню "Additional Items", пункт "Checkcommands" жмем кнопку "Add" и заполняем форму следующим образом:

check command name check_snmp_uptime
default service name  
check command line $USER1$/check_snmp -H $HOSTADDRESS$ -o sysUpTime.0 -P $ARG1$ -C $ARG2$ -c $ARG3$ -w $ARG4$
default command params !2c!public!1080000:0!8640000:0
params description ARG1=SNMP version,ARG2=SNMP community,ARG3=Warn level,ARG4=Critical Level
amount of params 4

После создания команды проверки check_snmp_uptime, добавляем этот сервис в команды проверки устройств, не забыв изменить необходимые переменные. Генерируем конфигурационные файлы и ожидаем проверки наших сервисов.

Результаты наших усилий:

Nagios SNMP Uptime

Nagios SNMP Uptime Nagios SNMP Uptime Nagios SNMP Uptime

 

 

Голосов пока нет

Вставай, Україно!

Литература