Add Win 2012 plugins and group allrds files in one folder. Modify check file. Update man and install instructions.
This commit is contained in:
parent
488720de1e
commit
5d53d70f71
15
README.md
15
README.md
@ -1,2 +1,17 @@
|
||||
# check_mk-rds_licenses
|
||||
Monitor per user RDS licenses usage.
|
||||
|
||||
The check for rds licenses usage is based on folowing plugins:
|
||||
- rds_licenses_2008.ps1
|
||||
- rds_licenses_2012.ps1
|
||||
- elevate_shell.ps1
|
||||
If the Windows Server is 64 bit version the agent for x64 must be installed.
|
||||
|
||||
Install procedure:
|
||||
On Windows 2008 Server: copy the rds_licenses_2008.ps1 file in plugins
|
||||
directory of check_mk agent folder.
|
||||
On Windows 2012 Server: copy the elevate_shell.ps1 into plugins directory
|
||||
of check_mk agent folder and the rds_licenses_2012.ps1 into check_mk agent folder.
|
||||
The elevate_shell.ps1 will elevate de privileges for running rds_licences_2012.ps1
|
||||
and the user which run check_mk agent must have the rights to "run as
|
||||
administrator".
|
||||
|
42
agents/windows/plugins/rds_licenses/elevated_shell.ps1
Normal file
42
agents/windows/plugins/rds_licenses/elevated_shell.ps1
Normal file
@ -0,0 +1,42 @@
|
||||
# This code was published by Benjamin Armstrong on blogs.msdn.com
|
||||
# This script will open an elevated powershell terminal and will run the specified script
|
||||
# The script(s) that must be run with elevated privileges must be configured on the last lines
|
||||
|
||||
# Get the ID and security principal of the current user account
|
||||
$myWindowsID=[System.Security.Principal.WindowsIdentity]::GetCurrent()
|
||||
$myWindowsPrincipal=new-object System.Security.Principal.WindowsPrincipal($myWindowsID)
|
||||
|
||||
# Get the security principal for the Administrator role
|
||||
$adminRole=[System.Security.Principal.WindowsBuiltInRole]::Administrator
|
||||
|
||||
# Check to see if we are currently running "as Administrator"
|
||||
if ($myWindowsPrincipal.IsInRole($adminRole))
|
||||
{
|
||||
# We are running "as Administrator" - so change the title and background color to indicate this
|
||||
$Host.UI.RawUI.WindowTitle = $myInvocation.MyCommand.Definition + "(Elevated)"
|
||||
$Host.UI.RawUI.BackgroundColor = "DarkBlue"
|
||||
clear-host
|
||||
}
|
||||
else
|
||||
{
|
||||
# We are not running "as Administrator" - so relaunch as administrator
|
||||
|
||||
# Create a new process object that starts PowerShell
|
||||
$newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell";
|
||||
|
||||
# Specify the current script path and name as a parameter
|
||||
$newProcess.Arguments = $myInvocation.MyCommand.Definition;
|
||||
|
||||
# Indicate that the process should be elevated
|
||||
$newProcess.Verb = "runas";
|
||||
|
||||
# Start the new process
|
||||
[System.Diagnostics.Process]::Start($newProcess);
|
||||
|
||||
# Exit from the current, unelevated, process
|
||||
exit
|
||||
}
|
||||
|
||||
# Run your code that needs to be elevated here
|
||||
# Will run rds_licenses script from check_mk directory
|
||||
& "C:\Program Files (x86)\check_mk\rds_licenses_2012.ps1"
|
14
agents/windows/plugins/rds_licenses/install.txt
Normal file
14
agents/windows/plugins/rds_licenses/install.txt
Normal file
@ -0,0 +1,14 @@
|
||||
The check for rds licenses usage is based on folowing plugins:
|
||||
- rds_licenses_2008.ps1
|
||||
- rds_licenses_2012.ps1
|
||||
- elevate_shell.ps1
|
||||
If the Windows Server is 64 bit version the agent for x64 must be installed.
|
||||
|
||||
Install procedure:
|
||||
On Windows 2008 Server: copy the rds_licenses_2008.ps1 file in plugins
|
||||
directory of check_mk agent folder.
|
||||
On Windows 2012 Server: copy the elevate_shell.ps1 into plugins directory
|
||||
of check_mk agent folder and the rds_licenses_2012.ps1 into check_mk agent folder.
|
||||
The elevate_shell.ps1 will elevate de privileges for running rds_licences_2012.ps1
|
||||
and the user which run check_mk agent must ghave the rights to "run as
|
||||
administrator".
|
17
agents/windows/plugins/rds_licenses/rds_licenses_2012.ps1
Normal file
17
agents/windows/plugins/rds_licenses/rds_licenses_2012.ps1
Normal file
@ -0,0 +1,17 @@
|
||||
# SpearHead Systems george.mocanu@sphs.ro
|
||||
# Check for Windows 2012 Server
|
||||
|
||||
Import-Module RemoteDesktopServices
|
||||
|
||||
$path = "RDS:\LicenseServer\LicenseKeyPacks\"
|
||||
|
||||
Write-Host "<<<rds_licenses>>>"
|
||||
foreach($pack in Get-ChildItem $path)
|
||||
{
|
||||
$checkName = $pack.Name -replace '\s',''
|
||||
$newPath = Join-Path $path $pack
|
||||
$total = (Get-Item $newPath\TotalLicenses).CurrentValue
|
||||
$usage = (Get-Item $newPath\IssuedLicensesCount).CurrentValue
|
||||
Write-Host $checkName " " $total " " $usage
|
||||
}
|
||||
exit
|
@ -5,16 +5,21 @@ license: GPL
|
||||
distribution:
|
||||
description:
|
||||
This check return usage of RDS licenses.
|
||||
You need to install the plugin {rds_licenses.ps1}
|
||||
into the {plugins} directory of your windows agent.
|
||||
You need to install the plugin {rds_licenses_2008.ps1}
|
||||
into the {plugins} directory of your windows agent in
|
||||
case of Win 2008 Server. In case of Win 2012 Server
|
||||
in plugin directory must be copied elevate_shell.ps1
|
||||
and the rds_licenses_2008.ps1 must be copied into
|
||||
check_mk agent folder and the user which run the check_mk
|
||||
service must be allowed to elevate privileges.
|
||||
This check was tested with Windows 2008 Server
|
||||
and must have PowerShell installed. On Windows x64 is
|
||||
recommended to use x64 agent. As always you must set
|
||||
"set-executionpolicy remotesigned" on monitored host.
|
||||
|
||||
The check gets critical if the usage percentage is above
|
||||
90 percents and warning if the usage percentage is above
|
||||
80 percents.
|
||||
95 percents and warning if the usage percentage is above
|
||||
90 percents.
|
||||
Both limits are definable in Wato under "Parameters for
|
||||
Inventorized Checks", "Applications, Processes & Services".
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
# SpearHead Systems
|
||||
|
||||
# EXAMPLE DATA FROM:
|
||||
# fomat: PerUserLicenses 20 15
|
||||
# fomat: Win2k8_Pack_Name No_of_Installed_Licenses No_of_Used_Licenses
|
||||
#
|
||||
#<<<rds_licenses>>>
|
||||
#PerUserLicenses 20 15
|
||||
#Win2k8_Pack_Name 20 15
|
||||
|
||||
factory_settings["rds_licenses_default_values"] = {
|
||||
"levels": (80, 90),
|
||||
@ -28,17 +28,23 @@ def check_rds_licenses(item, params, info):
|
||||
if line[0] == item:
|
||||
total = int(line[1])
|
||||
used = int(line[2])
|
||||
usedPerc = int(((used*100)/total))
|
||||
perfdata = [ ( "usage", usedPerc, warn, crit ) ]
|
||||
if total != 0:
|
||||
usedPerc = int(((used*100)/total))
|
||||
else:
|
||||
usedPerc = int(((used*100)/1))
|
||||
perfdata = [ ( "usage", usedPerc, warn, crit ) ]
|
||||
if total != 0:
|
||||
if usedPerc > crit:
|
||||
return (2, "License use level: %d percents" %usedPerc, perfdata)
|
||||
return (2, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata)
|
||||
elif usedPerc > warn:
|
||||
return (1, "License use level: %d percents" %usedPerc, perfdata)
|
||||
return (1, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata)
|
||||
else:
|
||||
return (0, "License use level: %d percents" %usedPerc, perfdata)
|
||||
else:
|
||||
return (0, "No licenses installed")
|
||||
return (0, "License use level: %d percents. %d licenses used out of %d installed." %(usedPerc, used, total), perfdata)
|
||||
else:
|
||||
if used == 0:
|
||||
return (0, "No licenses installed, none used", perfdata)
|
||||
else:
|
||||
return (2, "No licenses installed, %d licenses used" %used, perfdata)
|
||||
return(3, "Plugin not running on host")
|
||||
|
||||
check_info["rds_licenses"] = {
|
||||
|
Binary file not shown.
BIN
rds_licenses-1.1.mkp
Normal file
BIN
rds_licenses-1.1.mkp
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user