Сразу оговорюсь, что система, в которой я настраивал это хозяйство, ранается на Debian 6, а сам Nagios установлен не из пакетов, а из сорцов как в RedHat – в
– так проще и удобней, т. к. почти вся документация написана под такой вариант установки.
Для мониторинга нам понадобится плугин к Nagios – NRPE(Nagios Remote Plugin Executor). Смысл его работы показан на рисунке:
На винде он так же точно работает, только через NSClient++.
1. Устанавливаем необходимую библиотеку:
3. Переходим в директорию с сорцами плугина, конфигурим и устанавливаем:
cd nrpe-2.13/
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
4. Также можно запускать nrpe с помощью xinetd, как я и сделал:
make install-xinetd
nano /etc/xinetd.d/nrpe
Где прописываем:
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg –inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1
}
И рестартуем xinetd:
/etc/init.d/xinetdt restart
5. Создаем ссылку чтобы без полного пути выполнять команду:
ln -s /usr/local/nagios/libexec/check_nrpe /usr/bin/check_nrpe
6. Проверяем и перезапускаем Nagios:
check_nrpe
/etc/init.d/nagios restart
7. Конфиг NRPE находится тут:
/usr/local/nagios/etc/nrpe.cfg . В нем нужно прописать IP адреса машин, которые мониторятся, например:
allowed_hosts=127.0.0.1,192.168.2.0/24
8. Проверяем работоспособность NRPE (вместо localhost можно указывать адрес машины, которая мониторится, но там должен быть настроен NRPE Listener):
/usr/local/nagios/libexec/check_nrpe -H localhost
Кстати, помним, что NRPE использует порт 5666 (по умолчанию), соответственно, его надо открыть ка кна стороне сервера, так и клиента (!). На сервере в файлике /etc/services должна быть запись:
nrpe 5666/tcp # Nagios Remote Plugin Executor
9. Далее необходимо настроить Windows машину.
Скачиваем под нужную архитектуру отсюда
http://nsclient.org/nscp/downloads/ . Обязательно (!!111) версию 0.3.9, а не 0.4.0. На момент написания в статьи версия 0.4 была полный пис оф щит 🙂 – под ней всё описанное ниже не работает.
Устанавливаем клиент, отметив галочки напротив всех плугинов и прописав адрес нашего Nagios сервера.
10. Подредактируем конфиг C:Program FilesNSClient++NSC.ini добавив следующее:
В секции [NRPE]:
allow_arguments=1
allow_nasty_meta_chars=1
В секции: [External Scripts]:
check_filesize=cscript.exe //nologo //T:60 “C:Program FilesNSClient++scriptscheck_filesize.vbs” -p C:WindowsSysWOW64 -f imageres.dll -w 10000 -c 20000
Путь, имя файла и пределы – понятное дело, те, кото
рые нужны Вам.
11. Теперь
скачиваем отсюда или
отсюда сам скриптец check_filesize.vbs и ложим в папку
C:Program FilesNSClient++scripts . Перезапускаем сервис NSClient++ и идем обратно на сервер.
12. Пропишем 2 команды – общая для NRPE и конкретно для нашего файлика. В /usr/local/nagios/etc/objects/commands.cfg :
define command{ command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
define command{ command_name check_filesize
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_filesize -a $ARG1$ $ARG2$ $ARG3$ $ARG4$
}
13. Далее в конфиге для нашей Windows машины прописываем (подставляя свои данные, ясный-красный):
define service{
use generic-service
host_name Server Windows 1
service_description Check imageres.dll
check_command check_nrpe!check_filesize
notifications_enabled 1
}
Команда указана без параметров, соответственно – будут использоваться те, что прописаны на Win машине в NSC.ini. Если Вам нужно мониторить несколько файлов на одной машине, то придется указывать параметры (я на них забил – и так сложно было разобраться, как всё правильно настроить).
14. Перезагрузим Nagios:
/etc/init.d/nagios reload
Если вы всё правильно сделали, то через несколько минут, когда Nagios одуплится, вы увидите результат.