我有一个要求,当计划的Powershell脚本在任何时候失败时,我需要通知我。我想为此配置一个Nagios服务,需要有人指出我正确的方向。
干杯。
Shadab
答案 0 :(得分:0)
可能有一种特定于Power shell的方法,但是让我给你两个想法:
1)您可以监控程序的某些输出吗?脚本运行时触摸的日志文件等?如果是这样,您可以在nagios中监视该文件。
,或者
2)你可以修改脚本来发送"我完成了#34;消息给nagios?如果是这样,您可以在未收到该消息时设置通知(过去"陈旧")。
答案 1 :(得分:-1)
您需要使用退出代码。查看有关Nagios Plugin API的文档,但以下是您应在脚本中使用的退出/返回代码:
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
}