Я пытаюсь заставить NCPA выполнять сценарий PowerShell на сервере, предоставляя ему аргументы. Я делал это раньше, и у меня есть 3 разных сценария, которые ведут себя так, как ожидалось. Это не так.
Короче говоря, я пытаюсь использовать Get-Counter
для получения счетчика производительности и предоставления пути в качестве аргумента.
На данный момент скрипт выглядит так:
$count = $args[0]
$warn = 1500
$crit = 2000
$Data = Get-Counter -Counter $count
$Raw = $Data.CounterSamples.CookedValue
Write-Host "$Raw | 'Counter'=$Raw;$warn;$crit;0;3000"
if ($Raw -gt $crit) {
exit 2
} elseif ($Raw -gt $warn) {
exit 1
} else {
exit 0
}
Это вызывается с сервера Nagios через:
/usr/local/nagios/libexec/check_ncpa.py -H 192.168.**.** -t 'randomkeystringstuff' -P 5693 -M plugins/counter.ps1 -a "'\Processor Information(_Total)\% Processor Time'"
Заполнение переменной count прямо в скрипте работает. Затем я также могу выполнить это через Nagios без ошибок. Но использование аргумента возвращает
Get-Counter : Сбой при вызове API внутреннего счетчика производительности. Ошибка: c0000bc4.
Это идентичная ошибка, когда вы указываете несуществующий путь.
Поскольку у меня есть метод аргумента, отлично работающий в трех других сценариях, я предполагаю какое-то несоответствие строки или типа или что-то в этом роде.
"\Processor Information(_Total)\% Processor Time"
в качестве аргументов, все работает нормально. Но в вашей ситуации все может быть по-другому, учитывая, что вы запускаете скрипт Pyhon в системе Linux. - person Gert Jan Kraaijeveld   schedule 30.01.2019-M plugins/counter.ps1 -a "'\Processor Information(_Total)\% Processor Time'"
через этот скрипт аналогичен запуску'counter.ps1 '\Processor Information(_Total)\% Processor Time'
локально на машине. - person Domsch   schedule 31.01.2019