У меня есть сценарий Powershell, который я запускаю через nrpe как внешний сценарий. Сервер Windows (2008) работает под управлением nsclient ++ (nscp.exe) v 0.4.1.102.
Раздел возврата моего сценария PowerShell выглядит так
} else {
write-host "ok $queue|queue = $queue"
exit 0
}
А сценарий-оболочка для вызова файла ps1 выглядит так:
ps1 = cmd /c echo C:\\NetAdmin\\%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command -
Если я запустил это из командной строки Windows, результат будет примерно таким:
ok 93|queue = 93
Но когда я запускаю, использую check_nrpe с моего сервера nagios, вывод меняется на:
ok 93|'queue''=0 '93'=0
У Nagios возникла проблема с обработкой данных о производительности.
ОБНОВЛЕНИЕ: после отправки отчета об ошибке автор программного обеспечения ответил, что это желаемое поведение, но есть два варианта его отключения в nsclient.ini:
Глобально (Все скрипты)
[/settings/external scripts/scripts/default]
ignore perfdata = true
Единый сценарий
[/settings/external scripts/scripts/check_foo]
ignore perfdata = true
Вы должны попытаться удалить лишние пробелы вокруг =
подписать :
write-host "ok $queue|queue=$queue"
К настоящему времени я не могу объяснить такое поведение в этой версии nsclient++
. Этого не происходит в некоторых предыдущих версиях, таких как v0.3.8.76
который работает как шарм (по крайней мере, как и ожидалось, без сюрпризов).
Кажется, что nsclient++
расширяет пробелы как данные со значением 0
. Это может быть ошибка или желаемое поведение.
Я действительно ищу подсказки в Интернете и попытаюсь проанализировать исходный код.