Как проверить, что запланированный скрипт 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
}
Другие вопросы по тегам