Через протокол SNMP (Simple Network Management Protocol) можно получить почти все сведения о любых сетевых устройствах, где работает этот протокол. Более подробно о протоколе SNMP можно прочитать на страничке википедии.
При таком способе мониторинга основная проблема в том, чтобы подобрать для нужного параметра мониторинга свой OID (идентификатор объекта). У каждого производителя сетевых устройств эти идентификаторы отличаются, совпадают только такие как uptime, location, name и др. Для определения OID можно воспользоваться MIB браузерами. Одни из самых популярных для unix это mbrowse и написанный на java jmibbrowser.
Нужный OID определен, переходим к настройке мониторинга.
Настройка Nagios
Первым делом проверяем чтобы в файле objects/commands.cfg были строки
# 'check_snmp' command definition
define command{
command_name check_snmp
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}
Если вам нужно проверять только определенные параметры устройства, то можно переделать команду под эти параметры.
Весь синтаксис команды check_snmp.
Usage:
check_snmp -H -o [-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] [-L seclevel] [-U secname] [-a authproto]
[-A authpasswd] [-x privproto] [-X privpasswd]
Небольшое замечание: доступ на чтение по OID доступен всем через “community string” и это слово требуется для авторизации на устройстве. Ключевое слово по умолчанию имеет значение public на всех устройствах, поэтому если вы думаете о безопасности сети рекомендую сменить это слово на что-то другое. Как это сделать читайте документацию к своему устройству, а я в примерах оставил слово “public” по умолчанию.
Приведу пример настройки SNMP для сетевых источников бесперебойного питания фирмы APC.
Сначала создаем отдельный шаблон в objects/templates.cfg для устройств фирмы APC
define service{
name apc-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 15
retry_check_interval 1
contact_groups admins
notification_options w,c,r
notification_interval 120
notification_period 24x7
register 0
}
Создаем отдельный файл, куда и будем добавлять хосты и сервисы для этих устройств. Файл называется apc.cfg
Сразу не забываем подключить файл apc.cfg в nagios.cfg
cfg_file=/usr/local/nagios3/etc/objects/apc.cfg
А вот сам файл apc.cfg показать
После изменений конфигов перезапускаем сервис nagios и смотрим результат 🙂