Как проверить, что запланированный скрипт Powershell не удалось запустить в Nagios
У меня есть требование, когда я должен быть уведомлен, когда запланированный сценарий Powershell не выполняется в любой момент времени. Я хотел бы настроить службу Nagios для этого, и мне нужен кто-то, чтобы указать мне правильное направление.
Приветствия.
Shadab
2 ответа
Может быть, это можно сделать с помощью Power Shell, но позвольте мне дать вам две идеи:
1) есть ли выход программы, которую вы можете отслеживать? Файл журнала, который затрагивается при запуске скрипта и т. Д.? Если это так, вы можете отслеживать этот файл в nagios.
или же,
2) Можете ли вы изменить сценарий для отправки сообщения "Я закончил" nagios? Если это так, вы можете настроить уведомление, когда это сообщение не было получено (становится "устаревшим").
Вам нужно использовать коды выхода. Посмотрите документацию по API Plugin Plugin, но ниже приведены коды выхода / возврата, которые вы должны использовать в своем скрипте:
Plugin Return Code Service State Host State
0 OK UP
1 WARNING UP or DOWN/UNREACHABLE
2 CRITICAL DOWN/UNREACHABLE
3 UNKNOWN DOWN/UNREACHABLE
Вот пример сценария, который я написал для проверки Icinga, может быть, это поможет вам дать некоторые идеи?: ( http://www.baremetalwaveform.com/?p=311 для полной статьи)
$state = (rstcli64 --information --volume 2> Out-Null | select-string -Pattern "State:") -split "`r"
If (
($state.count -gt 0) -and ($state.count -eq ($state | Where-Object -FilterScript {$_ -match "Normal"}).count)
)
{
#OK
Write-Host "RST Volume state OK"
exit 0
}
If (
$state.count -eq 0
)
{
#UNKNOWN
Write-Host "RST Volume state UNKNOWN"
exit 3
}
else
{
#CRITICAL
Write-Host "RST Volume state CRITICAL"
exit 2
}