mirror of
https://github.com/Icinga/icinga-powershell-framework.git
synced 2025-12-21 07:10:15 -05:00
Merge branch 'snapshot' of https://github.com/LordHepipud/icinga-module-windows into snapshot
This commit is contained in:
commit
8fa0421e7b
5 changed files with 72 additions and 30 deletions
|
|
@ -34,7 +34,7 @@ function Convert-Bytes()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $FinalValue;
|
return @{'value' = $FinalValue; 'pastunit' = $CurrentUnit; 'endunit' = $Unit};
|
||||||
}
|
}
|
||||||
Throw 'Invalid input';
|
Throw 'Invalid input';
|
||||||
}
|
}
|
||||||
|
|
@ -66,13 +66,16 @@ function Invoke-IcingaCheckDirectory()
|
||||||
$Warning = $null,
|
$Warning = $null,
|
||||||
[string]$YoungerThan,
|
[string]$YoungerThan,
|
||||||
[string]$OlderThan,
|
[string]$OlderThan,
|
||||||
|
[string]$FileSizeGreaterThan,
|
||||||
|
[string]$FileSizeSmallerThan,
|
||||||
[ValidateSet(0, 1, 2, 3)]
|
[ValidateSet(0, 1, 2, 3)]
|
||||||
[int]$Verbosity = 0,
|
[int]$Verbosity = 0,
|
||||||
[switch]$NoPerfData
|
[switch]$NoPerfData
|
||||||
);
|
);
|
||||||
|
|
||||||
$DirectoryData = Get-IcingaDirectoryAll -Path $Path -FileNames $FileNames `
|
$DirectoryData = Get-IcingaDirectoryAll -Path $Path -FileNames $FileNames `
|
||||||
-Recurse $Recurse -YoungerThan $YoungerThan -OlderThan $OlderThan;
|
-Recurse $Recurse -YoungerThan $YoungerThan -OlderThan $OlderThan `
|
||||||
|
-FileSizeGreaterThan $FileSizeGreaterThan -FileSizeSmallerThan $FileSizeSmallerThan;
|
||||||
$DirectoryCheck = New-IcingaCheck -Name 'File Count' -Value $DirectoryData.Count;
|
$DirectoryCheck = New-IcingaCheck -Name 'File Count' -Value $DirectoryData.Count;
|
||||||
|
|
||||||
$DirectoryCheck.WarnOutOfRange(
|
$DirectoryCheck.WarnOutOfRange(
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,10 @@ Import-IcingaLib core\tools;
|
||||||
.NOTES
|
.NOTES
|
||||||
#>
|
#>
|
||||||
|
|
||||||
|
<#
|
||||||
|
if ($bytes > 1099511627776) { return sprintf('%.2f TB', $bytes / 1099511627776); } elseif ($bytes > 1073741824) { return sprintf('%.2f GB', $bytes / 1073741824); } elseif ($bytes > 1048576) { return sprintf('%.2f MB', $bytes / 1048576); } else { return sprintf('%.2f KB', $bytes / 1024);
|
||||||
|
#>
|
||||||
|
|
||||||
function Invoke-IcingaCheckMemory()
|
function Invoke-IcingaCheckMemory()
|
||||||
{
|
{
|
||||||
param(
|
param(
|
||||||
|
|
@ -59,35 +63,58 @@ function Invoke-IcingaCheckMemory()
|
||||||
[string]$WarningBytes = $null,
|
[string]$WarningBytes = $null,
|
||||||
$CriticalPercent = $null,
|
$CriticalPercent = $null,
|
||||||
$WarningPercent = $null,
|
$WarningPercent = $null,
|
||||||
[switch]$PageFile,
|
# [switch]$PageFile,
|
||||||
[ValidateSet(0, 1, 2, 3)]
|
[ValidateSet(0, 1, 2, 3)]
|
||||||
[int]$Verbosity = 0,
|
[int]$Verbosity = 0,
|
||||||
[switch]$NoPerfData
|
[switch]$NoPerfData
|
||||||
);
|
);
|
||||||
|
|
||||||
If ([string]::IsNullOrEmpty($CriticalBytes) -eq $FALSE) {
|
If ([string]::IsNullOrEmpty($CriticalBytes) -eq $FALSE) {
|
||||||
[decimal]$CrticalConverted = Convert-Bytes $CriticalBytes -Unit B
|
$CrticalConvertedAll = Convert-Bytes $CriticalBytes -Unit B
|
||||||
|
[decimal]$CriticalConverted = $CriticalConvertedAll.value
|
||||||
|
|
||||||
}
|
}
|
||||||
If ([string]::IsNullOrEmpty($WarningBytes) -eq $FALSE) {
|
If ([string]::IsNullOrEmpty($WarningBytes) -eq $FALSE) {
|
||||||
[decimal]$WarningConverted = Convert-Bytes $WarningBytes -Unit B
|
$WarningConvertedAll = Convert-Bytes $WarningBytes -Unit B
|
||||||
|
[decimal]$WarningConverted = $WarningConvertedAll.value
|
||||||
}
|
}
|
||||||
$MemoryPackage = New-IcingaCheckPackage -Name 'Memory Usage' -OperatorAnd -Verbos $Verbosity;
|
|
||||||
$MemoryData = (Get-IcingaMemoryPerformanceCounter);
|
|
||||||
|
|
||||||
$MemoryPerc = New-IcingaCheck -Name 'Memory Percent Available' -Value $MemoryData['Memory Available %'] -Unit '%';
|
$MemoryPackage = New-IcingaCheckPackage -Name 'Memory Usage' -OperatorAnd -Verbos $Verbosity;
|
||||||
$MemoryByteUsed = New-IcingaCheck -Name "Used Bytes" -Value $MemoryData['Memory Used Bytes'] -Unit 'B';
|
$MemoryData = (Get-IcingaMemoryPerformanceCounter);
|
||||||
$MemoryByteAvailable = New-IcingaCheck -Name "Available Bytes" -Value $MemoryData['Memory Available Bytes'] -Unit 'B';
|
|
||||||
#$PageFileCheck = New-IcingaCheck -Name 'PageFile Percent' -Value $MemoryData['PageFile %'] -Unit '%';
|
|
||||||
|
|
||||||
# PageFile To-Do
|
# Auto-Detect?
|
||||||
$MemoryByteAvailable.WarnIfLowerThan($WarningConverted).CritIfLowerThan($CrticalConverted) | Out-Null;
|
If (($MemoryData['Memory Total Bytes'] / [math]::Pow(2, 50)) -ge 1) {
|
||||||
$MemoryPerc.WarnIfLowerThan($WarningPercent).CritIfLowerThan($CriticalPercent) | Out-Null;
|
$Unit = "PB"
|
||||||
|
} elseif (($MemoryData['Memory Total Bytes'] / [math]::Pow(2, 40)) -ge 1) {
|
||||||
|
$Unit = "TB"
|
||||||
|
} elseif (($MemoryData['Memory Total Bytes'] / [math]::Pow(2, 30)) -ge 1) {
|
||||||
|
$Unit = "GB"
|
||||||
|
} elseif (($MemoryData['Memory Total Bytes'] / [math]::Pow(2, 20)) -ge 1) {
|
||||||
|
$Unit = "MB"
|
||||||
|
} elseif (($MemoryData['Memory Total Bytes'] / [math]::Pow(2, 10)) -ge 1) {
|
||||||
|
$Unit = "KB"
|
||||||
|
} else {
|
||||||
|
$Unit = "B"
|
||||||
|
}
|
||||||
|
|
||||||
$MemoryPackage.AddCheck($MemoryPerc);
|
Write-Host $Unit
|
||||||
$MemoryPackage.AddCheck($MemoryByteAvailable);
|
|
||||||
$MemoryPackage.AddCheck($MemoryByteUsed);
|
|
||||||
|
|
||||||
#$MemoryPackage.AddCheck($PageFileCheck);
|
$MemoryPerc = New-IcingaCheck -Name 'Memory Percent Used' -Value $MemoryData['Memory Used %'] -Unit '%';
|
||||||
|
$MemoryByteUsed = New-IcingaCheck -Name "Used Bytes" -Value $MemoryData['Memory Used Bytes'] -Unit 'B';
|
||||||
|
#$MemoryByteAvailable = New-IcingaCheck -Name "Available Bytes" -Value $MemoryData['Memory Available Bytes'] -Unit 'B';
|
||||||
|
#$PageFileCheck = New-IcingaCheck -Name 'PageFile Percent' -Value $MemoryData['PageFile %'] -Unit '%';
|
||||||
|
|
||||||
return (New-IcingaCheckResult -Check $MemoryPackage -NoPerfData $NoPerfData -Compile);
|
|
||||||
|
#Kommastellen bedenken!
|
||||||
|
# PageFile To-Do
|
||||||
|
$MemoryByteUsed.WarnOutOfRange($WarningConverted).CritOutOfRange($CrticalConverted) | Out-Null;
|
||||||
|
$MemoryPerc.WarnOutOfRange($WarningPercent).CritOutOfRange($CriticalPercent) | Out-Null;
|
||||||
|
|
||||||
|
$MemoryPackage.AddCheck($MemoryPerc);
|
||||||
|
#$MemoryPackage.AddCheck($MemoryByteAvailable);
|
||||||
|
$MemoryPackage.AddCheck($MemoryByteUsed);
|
||||||
|
|
||||||
|
#$MemoryPackage.AddCheck($PageFileCheck);
|
||||||
|
|
||||||
|
return (New-IcingaCheckResult -Check $MemoryPackage -NoPerfData $NoPerfData -Compile);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ function Get-IcingaDirectoryAll()
|
||||||
[array]$FileNames,
|
[array]$FileNames,
|
||||||
[bool]$Recurse,
|
[bool]$Recurse,
|
||||||
[string]$YoungerThan,
|
[string]$YoungerThan,
|
||||||
[string]$OlderThan
|
[string]$OlderThan,
|
||||||
|
[string]$FileSizeGreaterThan,
|
||||||
|
[string]$FileSizeSmallerThan
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($Recurse -eq $TRUE) {
|
if ($Recurse -eq $TRUE) {
|
||||||
|
|
@ -17,16 +19,26 @@ function Get-IcingaDirectoryAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
if ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE -And [string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
|
if ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE -And [string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
|
||||||
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
|
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
|
||||||
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
|
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
|
||||||
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
|
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
|
||||||
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt (Get-Date).AddSeconds($YoungerThan)})
|
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt (Get-Date).AddSeconds($YoungerThan)})
|
||||||
} elseif ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE) {
|
} elseif ([string]::IsNullOrEmpty($OlderThan) -eq $FALSE) {
|
||||||
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
|
$OlderThan = Set-NumericNegative (ConvertTo-Seconds $OlderThan);
|
||||||
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
|
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -lt (Get-Date).AddSeconds($OlderThan)})
|
||||||
} elseif ([string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
|
} elseif ([string]::IsNullOrEmpty($YoungerThan) -eq $FALSE) {
|
||||||
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
|
$YoungerThan = Set-NumericNegative (ConvertTo-Seconds $YoungerThan);
|
||||||
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt ((Get-Date).AddSeconds($YoungerThan))})
|
$DirectoryData = ($DirectoryData | Where-Object {$_.LastWriteTime -gt ((Get-Date).AddSeconds($YoungerThan))})
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([string]::IsNullOrEmpty($FileSizeGreaterThan) -eq $FALSE) {
|
||||||
|
$FileSizeGreaterThanValue = (Convert-Bytes $FileSizeGreaterThan -Unit B).value
|
||||||
|
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeGreaterThanValue})
|
||||||
|
}
|
||||||
|
|
||||||
|
if ([string]::IsNullOrEmpty($FileSizeSmallerThan) -eq $FALSE) {
|
||||||
|
$FileSizeSmallerThanValue = (Convert-Bytes $FileSizeSmallerThan -Unit B).value
|
||||||
|
$DirectoryData = ($DirectoryData | Where-Object {$_.Length -gt $FileSizeSmallerThanValue})
|
||||||
}
|
}
|
||||||
|
|
||||||
return $DirectoryData;
|
return $DirectoryData;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ function Get-IcingaMemoryPerformanceCounter()
|
||||||
$MemoryData.Add('Memory Available Bytes', [decimal]($Initial.'\Memory\Available Bytes'.value));
|
$MemoryData.Add('Memory Available Bytes', [decimal]($Initial.'\Memory\Available Bytes'.value));
|
||||||
$MemoryData.Add('Memory Total Bytes', (Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory);
|
$MemoryData.Add('Memory Total Bytes', (Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory);
|
||||||
$MemoryData.Add('Memory Used Bytes', $MemoryData.'Memory Total Bytes' - $MemoryData.'Memory Available Bytes');
|
$MemoryData.Add('Memory Used Bytes', $MemoryData.'Memory Total Bytes' - $MemoryData.'Memory Available Bytes');
|
||||||
$MemoryData.Add('Memory Available %', 100 - ($MemoryData.'Memory Available Bytes' / $MemoryData.'Memory Total Bytes' * 100));
|
$MemoryData.Add('Memory Used %', 100 - ($MemoryData.'Memory Available Bytes' / $MemoryData.'Memory Total Bytes' * 100));
|
||||||
$MemoryData.Add('PageFile %', $Initial.'\Paging File(_Total)\% usage'.value);
|
$MemoryData.Add('PageFile %', $Initial.'\Paging File(_Total)\% usage'.value);
|
||||||
|
|
||||||
return $MemoryData;
|
return $MemoryData;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue