Мониторим unix машины с помощью NRPE часть 2 | Nagios

Итак, в предыдущей статье мы настроили механизм монитроинга unix машин с помощью NRPE. Осталось настроить хосты и сервисы, чтобы Nagios мог собирать с клиентов результаты проверок.


Сначала – клиент на котором мы запустили NRPE, который слушет порт 5666 через xinetd. Идём в конфиг NRPE:

/usr/local/etc/nrpe.cfg

Открываем и видим что у нас есть несколько определений комманд:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

Комманды определены жёстко с аргументами, по дефолту здесь же в конфиге прописан запрет принимать аргументы с командой (в целях безопасности). За запрет отвечает параметр:

dont_blame_nrpe=0

То есть вызывая команду мы должны использовать такой запрос:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users

но не:

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users -w 5 -c 10

С синтаксисом определились.

Если вы сразу выполните такой запрос на вашей машине – скорее всего она ругнется на первый запрос так:

<code>NRPE: Unable to read output

А на второй так:

CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.

Проблема в том что комманду в конфиге мы определили а вот самого скрипта у нас в /usr/local/nagios/libexec/ ещё нет. Пока там только один файл - check_nrpe.

Копируем нужные скрипты с сервера nagios - check_load, check_disk, check_procs, check_users и другие.

Теперь можно снова вызвать комманду на локальном хосте:

#/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1

Обращаем внимание: вызываем команду по имени которую прописали в определении скрипта - command[check_hda1] а не check_disk. Если сделать запрос:

#/usr/local/nagios/libexec/check_nrpe -H localhost -c check_disk

Получим ошибку:

NRPE: Command 'check_disk' not defined

и обращаем внимание на аргумент команды: -p /dev/hda1 указывать надо естественно путь к партиции вашего рута.

Правильный вывод команды выгладит так:

# /usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
DISK OK - free space: / 8175 MB (86% inode=98%);| /=1228MB;7932;8923;0;9915

Теперь пробуем сделать тоже самое с сервера на котором запущен nagios:

# /usr/local/nagios/libexec/check_nrpe -H 10.0.0.1 -c check_hda1
DISK OK - free space: / 8175 MB (86% inode=98%);| /=1228MB;7932;8923;0;9915

Всё работает. Теперь можно настраивать nagios и определить сервисы для хостов в nagiosql (поскольку последний мы используем для простоты управления nagios).

Заходим в nagiosql и идём в КОМАНДЫ -> Определения
Добавляем команду:

Сохраняем, записываем конфиг.

Далее добавляем хост:

Не забываем в свойствах хоста выставить параметры проверки:

Сохраняем, записываем конфигурационный файл:

Далее идём в НАБЛЮДЕНИЕ -> Сервисы и добавляем сервис. В качестве аргумента указываем имя любого скрипта который мы настроили на клиенте в файле /usr/local/nagios/nrpe.cfg:


Кликаем по пиктограмме Группа Хостов и добавляем хост который мы хотим проверить и который мы настроили выше.

Во вкладке Настройка проверки заполняем два поля (иначе nagios будет ругаться после перезапуска):

Сохраняем. На ругань по поводу того что не всё настроили - не обращаем внимания. Записываем изменения в конфиг.

Далее можно идти в Сервис и запускать проверку конфигурации.

Сервис -> Управление Nagios -> Проверить конфигурационные файлы

Если всё ок - перезапускаем nagios

#service nagios restart Running configuration check...done. Stopping nagios: .done. Starting nagios: done.

В интерфейсе nagios мы должны увидеть настроенный нами хост и сервисы.