Я запускаю сервер Nagios Core в локальной сети. У меня есть 5 компьютеров с Windows вне сети, с которыми я разговариваю через пять туннелей ssh на 5 разных портах, слушая пять пользовательских приложений NSClient ++. Все работает хорошо с этой конфигурацией, однако я заметил, что check_nt MEMUSE дает нам нечетные числа, хотя на самом деле все, что нам нужно / нужно, - это фактическая физическая память.
После долгих поисков я обнаружил check_nrpe, который, похоже, предоставит мне данные, которые я ищу.
Я помещаю в command.cfg следующее:
define command {
command_name CheckWindowsPhysicalMem
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=physical
}
И я поместил в свой windows.cfg следующее
define service{
use generic-service
host_name HOSTNAME
service_description Physical Memory
check_command CheckWindowsPhysicalMem!80!90
}
Я перезапустил и nagios, и nagios-nrpe-server, и теперь получаю эту ошибку:
CHECK_NRPE: Receive header underflow - only 0 bytes received (4 expected)
Я не уверен, что я здесь пропустил, но это похоже на зависимость или пакет. Гугл-фу проиграл на этом.
1. Проверка соединения NRPE
Вы можете проверить соединение между вашими окнами и Nagios через NRPE следующим образом:
./check_nrpe -H Server
I (0.4.3.143 2015-04-29) seem to be doing fine...
Если вы не передадите аргументы в свой check_nrpe, сервер (клиент Windows) ответит своим номером версии.
2. Проверка вашей команды
На своем клиенте Windows вы можете локально протестировать свою команду в консоли с помощью nscp test
.
Если ваша команда вернула хороший результат, вы можете протестировать со своего сервера nagios без аргументов:
# ./check_nrpe -H Server -c alias_cpu
OK: CPU load is ok.|'total 5m'=1%;80;90 'total 1m'=1%;80;90 'total 5s'=2%;80;90
3. Аргументы NRPE
По умолчанию NRPE не разрешает отправку аргументов от Nagios удаленному клиенту из соображений безопасности. Таким образом, вы должны включить его в nsclient.ini для каждой станции Windows.