From f865a3d663e4da0e522db456dfcccef702c56274 Mon Sep 17 00:00:00 2001 From: Lord Hepipud Date: Tue, 20 Aug 2019 17:02:58 +0200 Subject: [PATCH] Added check for Windows Uptime --- lib/plugins/Invoke-IcingaCheckUptime.psm1 | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/plugins/Invoke-IcingaCheckUptime.psm1 diff --git a/lib/plugins/Invoke-IcingaCheckUptime.psm1 b/lib/plugins/Invoke-IcingaCheckUptime.psm1 new file mode 100644 index 0000000..78f685e --- /dev/null +++ b/lib/plugins/Invoke-IcingaCheckUptime.psm1 @@ -0,0 +1,27 @@ +Import-IcingaLib icinga\plugin; +Import-IcingaLib provider\windows; +Import-IcingaLib core\tools; + +function Invoke-IcingaCheckUptime() +{ + param( + $Warning, + $Critical, + [switch]$NoPerfData, + [int]$Verbose + ); + + $WindowsData = Get-IcingaWindows; + $Name = ([string]::Format('Windows Uptime: {0}', (ConvertFrom-TimeSpan -Seconds $WindowsData.windows.metadata.uptime.value))); + + $IcingaCheck = New-IcingaCheck -Name 'Windows Uptime' -Value $WindowsData.windows.metadata.uptime.value -Unit 's'; + $IcingaCheck.WarnOutOfRange( + (ConvertTo-SecondsFromIcingaThresholds -Threshold $Warning) + ).CritOutOfRange( + (ConvertTo-SecondsFromIcingaThresholds -Threshold $Critical) + ) | Out-Null; + + $CheckPackage = New-IcingaCheckPackage -Name $Name -OperatorAnd -Checks $IcingaCheck -Verbose $Verbose; + + exit (New-IcingaCheckresult -Check $CheckPackage -NoPerfData $NoPerfData -Compile); +}