如何检查计划的Powershell脚本是否无法在Nagios中运行

时间:2014-12-22 20:14:00

标签: nagios

我有一个要求,当计划的Powershell脚本在任何时候失败时,我需要通知我。我想为此配置一个Nagios服务,需要有人指出我正确的方向。

干杯。

Shadab

2 个答案:

答案 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
}