У меня есть скрипт powershell, который я вызываю через check_nrpe. Когда я выполняю пассивную проверку, я вижу, что код выхода/возвратное значение равен 1, но он по-прежнему рассматривается как состояние OK, а не как CRITICAL.
По сути, этот скрипт просто проверяет, пуста ли целевая папка ..\bar. Если он пуст, скрипт возвращает «0», что вызывает состояние OK в Nagios. Если у него есть файлы, которые не перемещаются даже после ожидания в течение 25 секунд, он возвращает «1», что запускает КРИТИЧЕСКОЕ состояние в Nagios.
Я сохранил несколько файлов в папке и вижу, что возвращаемое значение равно «1». Однако nagios по-прежнему рассматривает его как состояние OK.
Используйте приведенную ниже команду для пассивной проверки.
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.XX.X.XXX -c check_kpis -t 30
Аутаут
1
Сценарий приведен ниже.
$path = "D:\foo\bar"
$flagged1 = "D:\temp\flag1.txt"
$flagged2 = "D:\temp\flag2.txt"
$contents = Get-ChildItem -Path $path -Force -Recurse
if ( $contents.count -gt 0 )
{
$contents.Name | Out-File -FilePath $flagged1
Start-Sleep -s 25
$contents = Get-ChildItem -Path $path -Force -Recurse
$contents.Name | Out-File -FilePath $flagged2
if ( $contents.count -gt 0 )
{
$diff = Compare-Object -ReferenceObject $(Get-Content $flagged1) -DifferenceObject $(Get-Content $flagged2) -IncludeEqual
If ($diff.SideIndicator -eq "==")
{
return 1
exit
}
else
{
return 0
exit
}
}
else
{
return 0
exit
}
}
else
{
return 0
exit
}
Кто-нибудь может подсказать, что здесь не так?