-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds new plugin to check for duplicate virtual machines
- Loading branch information
1 parent
8f5f06e
commit a30270e
Showing
21 changed files
with
770 additions
and
12 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"DataList":{"IcingaCheckHyperVDuplicateVM Verbosity":{"list_name":"IcingaCheckHyperVDuplicateVM Verbosity","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"0","entry_name":"0","format":"string"},{"allowed_roles":null,"entry_value":"1","entry_name":"1","format":"string"},{"allowed_roles":null,"entry_value":"2","entry_name":"2","format":"string"},{"allowed_roles":null,"entry_value":"3","entry_name":"3","format":"string"}],"owner":"stein"},"PowerShell ExecutionPolicies":{"list_name":"PowerShell ExecutionPolicies","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"AllSigned","entry_name":"AllSigned","format":"string"},{"allowed_roles":null,"entry_value":"Bypass","entry_name":"Bypass","format":"string"},{"allowed_roles":null,"entry_value":"Default","entry_name":"Default","format":"string"},{"allowed_roles":null,"entry_value":"RemoteSigned","entry_name":"RemoteSigned","format":"string"},{"allowed_roles":null,"entry_value":"Restricted","entry_name":"Restricted","format":"string"},{"allowed_roles":null,"entry_value":"Undefined","entry_name":"Undefined","format":"string"},{"allowed_roles":null,"entry_value":"Unrestricted","entry_name":"Unrestricted","format":"string"}],"owner":"stein"}},"Command":{"PowerShell Base":{"methods_execute":"PluginCheck","object_name":"PowerShell Base","vars":{"IcingaPowerShellBase_String_ExecutionPolicy":"ByPass"},"is_string":null,"command":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","zone":null,"disabled":false,"fields":[{"datafield_id":2,"is_required":"n","var_filter":null}],"arguments":{"-ExecutionPolicy":{"value":"$IcingaPowerShellBase_String_ExecutionPolicy$","order":"-1"},"-NoProfile":{"value":"-NoProfile","skip_key":true,"order":"-3"},"-NoLogo":{"value":"-NoLogo","skip_key":true,"order":"-2"}},"imports":[],"object_type":"object","timeout":"180"},"Invoke-IcingaCheckHyperVDuplicateVM":{"fields":[{"datafield_id":4,"is_required":"n","var_filter":null},{"datafield_id":5,"is_required":"n","var_filter":null},{"datafield_id":6,"is_required":"n","var_filter":null},{"datafield_id":7,"is_required":"n","var_filter":null},{"datafield_id":8,"is_required":"n","var_filter":null}],"object_name":"Invoke-IcingaCheckHyperVDuplicateVM","arguments":{"-C":{"value":"try { Use-Icinga -Minimal; } catch { Write-Output \u0027The Icinga PowerShell Framework is either not installed on the system or not configured properly. Please check https://icinga.com/docs/windows for further details\u0027; Write-Output \u0027Error:\u0027 $$($$_.Exception.Message)Components:`r`n$$( Get-Module -ListAvailable \u0027icinga-powershell-*\u0027 )`r`n\u0027Module-Path:\u0027`r`n$$($$Env:PSModulePath); exit 3; }; Exit-IcingaExecutePlugin -Command \u0027Invoke-IcingaCheckHyperVDuplicateVM\u0027 ","order":"0"},"-Verbosity":{"value":"$IcingaCheckHyperVDuplicateVM_Object_Verbosity$","order":"4"},"-ThresholdInterval":{"set_if":"var str = macro(\"$IcingaCheckHyperVDuplicateVM_String_ThresholdInterval$\"); if (len(str) == 0) { return false; }; return true;","set_if_format":"expression","value":{"body":"var str = macro(\"$IcingaCheckHyperVDuplicateVM_String_ThresholdInterval$\");\r\nvar argLen = len(str);\r\n\r\nif (argLen == 0) {\r\n return;\r\n}\r\n\r\nif (argLen != 0 \u0026\u0026 str.substr(0,1) == \"\u0027\" \u0026\u0026 str.substr(argLen - 1, argLen) == \"\u0027\") {\r\n return str;\r\n}\r\n\r\nreturn (\"\u0027\" + str + \"\u0027\");","type":"Function"},"order":"100"},"-NoPerfData":{"set_if":"$IcingaCheckHyperVDuplicateVM_Switchparameter_NoPerfData$","set_if_format":"string","order":"99"},"-ExcludeVMs":{"value":{"body":"var arr = macro(\"$IcingaCheckHyperVDuplicateVM_Array_ExcludeVMs$\");\r\n\r\nif (len(arr) == 0) {\r\n return \"@()\";\r\n}\r\n\r\nvar psarr = arr.map(\r\n x =\u003e if (typeof(x) == String) {\r\n var argLen = len(x);\r\n if (argLen != 0 \u0026\u0026 x.substr(0,1) == \"\u0027\" \u0026\u0026 x.substr(argLen - 1, argLen) == \"\u0027\") {\r\n x;\r\n } else {\r\n \"\u0027\" + x + \"\u0027\";\r\n }\r\n } else {\r\n x;\r\n }\r\n).join(\",\");\r\n\r\nreturn \"@(\" + psarr + \")\";","type":"Function"},"order":"3"},"-IncludeVMs":{"value":{"body":"var arr = macro(\"$IcingaCheckHyperVDuplicateVM_Array_IncludeVMs$\");\r\n\r\nif (len(arr) == 0) {\r\n return \"@()\";\r\n}\r\n\r\nvar psarr = arr.map(\r\n x =\u003e if (typeof(x) == String) {\r\n var argLen = len(x);\r\n if (argLen != 0 \u0026\u0026 x.substr(0,1) == \"\u0027\" \u0026\u0026 x.substr(argLen - 1, argLen) == \"\u0027\") {\r\n x;\r\n } else {\r\n \"\u0027\" + x + \"\u0027\";\r\n }\r\n } else {\r\n x;\r\n }\r\n).join(\",\");\r\n\r\nreturn \"@(\" + psarr + \")\";","type":"Function"},"order":"2"}},"imports":["PowerShell Base"],"object_type":"object","vars":{"ifw_api_arguments":{"IncludeVMs":{"value":"$IcingaCheckHyperVDuplicateVM_Array_IncludeVMs$"},"Verbosity":{"value":"$IcingaCheckHyperVDuplicateVM_Object_Verbosity$"},"ThresholdInterval":{"value":"$IcingaCheckHyperVDuplicateVM_String_ThresholdInterval$"},"NoPerfData":{"set_if":"$IcingaCheckHyperVDuplicateVM_Switchparameter_NoPerfData$"},"ExcludeVMs":{"value":"$IcingaCheckHyperVDuplicateVM_Array_ExcludeVMs$"}},"IcingaCheckHyperVDuplicateVM_Switchparameter_NoPerfData":false}}},"Datafield":{"7":{"settings":{"visibility":"visible"},"description":"Disables the performance data output of this plugin","caption":"NoPerfData","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeBoolean","originalId":"7","varname":"IcingaCheckHyperVDuplicateVM_Switchparameter_NoPerfData","format":null},"2":{"settings":{"datalist":"PowerShell ExecutionPolicies","behavior":"strict","data_type":"string"},"description":"Defines with which Execution Policy the PowerShell is started","caption":"PowerShell Execution Policy","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"2","varname":"IcingaPowerShellBase_String_ExecutionPolicy","format":null},"4":{"settings":{"visibility":"visible"},"description":"Change the value your defined threshold checks against from the current value to a collected time threshold of the Icinga for Windows daemon, as described here: https://icinga.com/docs/icinga-for-windows/latest/doc/service/10-Register-Service-Checks/ An example for this argument would be 1m or 15m which will use the average of 1m or 15m for monitoring.","caption":"ThresholdInterval","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"4","varname":"IcingaCheckHyperVDuplicateVM_String_ThresholdInterval","format":null},"6":{"settings":{"visibility":"visible"},"description":"Allows to filter for virtual machines to never check for them and always being dropped","caption":"ExcludeVMs","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeArray","originalId":"6","varname":"IcingaCheckHyperVDuplicateVM_Array_ExcludeVMs","format":null},"5":{"settings":{"visibility":"visible"},"description":"Allows to filter for virtual machines which are included in the check. All others are dropped","caption":"IncludeVMs","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeArray","originalId":"5","varname":"IcingaCheckHyperVDuplicateVM_Array_IncludeVMs","format":null},"8":{"settings":{"datalist":"IcingaCheckHyperVDuplicateVM Verbosity","behavior":"strict","data_type":"string"},"description":"Changes the behavior of the plugin output which check states are printed:\n0 (default): Only service checks/packages with state not OK will be printed\n1: Only services with not OK will be printed including OK checks of affected check packages including Package config\n2: Everything will be printed regardless of the check state\n3: Identical to Verbose 2, but prints in addition the check package configuration e.g (All must be [OK])","caption":"Verbosity","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"8","varname":"IcingaCheckHyperVDuplicateVM_Object_Verbosity","format":null}}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
{"DataList":{"IcingaCheckHyperVHealth Verbosity":{"list_name":"IcingaCheckHyperVHealth Verbosity","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"0","entry_name":"0","format":"string"},{"allowed_roles":null,"entry_value":"1","entry_name":"1","format":"string"},{"allowed_roles":null,"entry_value":"2","entry_name":"2","format":"string"},{"allowed_roles":null,"entry_value":"3","entry_name":"3","format":"string"}],"owner":"stein"},"PowerShell ExecutionPolicies":{"list_name":"PowerShell ExecutionPolicies","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"AllSigned","entry_name":"AllSigned","format":"string"},{"allowed_roles":null,"entry_value":"Bypass","entry_name":"Bypass","format":"string"},{"allowed_roles":null,"entry_value":"Default","entry_name":"Default","format":"string"},{"allowed_roles":null,"entry_value":"RemoteSigned","entry_name":"RemoteSigned","format":"string"},{"allowed_roles":null,"entry_value":"Restricted","entry_name":"Restricted","format":"string"},{"allowed_roles":null,"entry_value":"Undefined","entry_name":"Undefined","format":"string"},{"allowed_roles":null,"entry_value":"Unrestricted","entry_name":"Unrestricted","format":"string"}],"owner":"stein"}},"Command":{"PowerShell Base":{"methods_execute":"PluginCheck","object_name":"PowerShell Base","vars":{"IcingaPowerShellBase_String_ExecutionPolicy":"ByPass"},"is_string":null,"command":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","zone":null,"disabled":false,"fields":[{"datafield_id":2,"is_required":"n","var_filter":null}],"arguments":{"-ExecutionPolicy":{"value":"$IcingaPowerShellBase_String_ExecutionPolicy$","order":"-1"},"-NoProfile":{"set_if":true,"order":"-3"},"-NoLogo":{"set_if":true,"order":"-2"}},"imports":[],"object_type":"object","timeout":"180"},"Invoke-IcingaCheckHyperVHealth":{"fields":[{"datafield_id":4,"is_required":"n","var_filter":null},{"datafield_id":5,"is_required":"n","var_filter":null},{"datafield_id":6,"is_required":"n","var_filter":null}],"object_name":"Invoke-IcingaCheckHyperVHealth","arguments":{"-C":{"value":"try { Use-Icinga -Minimal; } catch { Write-Output \u0027The Icinga PowerShell Framework is either not installed on the system or not configured properly. Please check https://icinga.com/docs/windows for further details\u0027; Write-Output \u0027Error:\u0027 $$($$_.Exception.Message)Components:`r`n$$( Get-Module -ListAvailable \u0027icinga-powershell-*\u0027 )`r`n\u0027Module-Path:\u0027`r`n$$($$Env:PSModulePath); exit 3; }; Exit-IcingaExecutePlugin -Command \u0027Invoke-IcingaCheckHyperVHealth\u0027 ","order":"0"},"-ThresholdInterval":{"set_if":"var str = macro(\"$IcingaCheckHyperVHealth_String_ThresholdInterval$\"); if (len(str) == 0) { return false; }; return true;","set_if_format":"expression","value":{"body":"var str = macro(\"$IcingaCheckHyperVHealth_String_ThresholdInterval$\");\r\nvar argLen = len(str);\r\n\r\nif (argLen == 0) {\r\n return;\r\n}\r\n\r\nif (argLen != 0 \u0026\u0026 str.substr(0,1) == \"\u0027\" \u0026\u0026 str.substr(argLen - 1, argLen) == \"\u0027\") {\r\n return str;\r\n}\r\n\r\nreturn (\"\u0027\" + str + \"\u0027\");","type":"Function"},"order":"100"},"-NoPerfData":{"set_if":"$IcingaCheckHyperVHealth_Switchparameter_NoPerfData$","set_if_format":"string","order":"99"},"-Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$","order":"2"}},"imports":["PowerShell Base"],"object_type":"object","vars":{"IcingaCheckHyperVHealth_Switchparameter_NoPerfData":false}}},"Datafield":{"2":{"settings":{"datalist":"PowerShell ExecutionPolicies","behavior":"strict","data_type":"string"},"description":"Defines with which Execution Policy the PowerShell is started","caption":"PowerShell Execution Policy","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"2","varname":"IcingaPowerShellBase_String_ExecutionPolicy","format":null},"6":{"settings":{"datalist":"IcingaCheckHyperVHealth Verbosity","behavior":"strict","data_type":"string"},"description":"Changes the behavior of the plugin output which check states are printed:\n0 (default): Only service checks/packages with state not OK will be printed\n1: Only services with not OK will be printed including OK checks of affected check packages including Package config\n2: Everything will be printed regardless of the check state\n3: Identical to Verbose 2, but prints in addition the check package configuration e.g (All must be [OK])","caption":"Verbosity","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"6","varname":"IcingaCheckHyperVHealth_Object_Verbosity","format":null},"4":{"settings":{"visibility":"visible"},"description":"Change the value your defined threshold checks against from the current value to a collected time threshold of the Icinga for Windows daemon, as described here: https://icinga.com/docs/icinga-for-windows/latest/doc/service/10-Register-Service-Checks/ An example for this argument would be 1m or 15m which will use the average of 1m or 15m for monitoring.","caption":"ThresholdInterval","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"4","varname":"IcingaCheckHyperVHealth_String_ThresholdInterval","format":null},"5":{"settings":{"visibility":"visible"},"description":"Disables the performance data output of this plugin","caption":"NoPerfData","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeBoolean","originalId":"5","varname":"IcingaCheckHyperVHealth_Switchparameter_NoPerfData","format":null}}} | ||
{"DataList":{"IcingaCheckHyperVHealth Verbosity":{"list_name":"IcingaCheckHyperVHealth Verbosity","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"0","entry_name":"0","format":"string"},{"allowed_roles":null,"entry_value":"1","entry_name":"1","format":"string"},{"allowed_roles":null,"entry_value":"2","entry_name":"2","format":"string"},{"allowed_roles":null,"entry_value":"3","entry_name":"3","format":"string"}],"owner":"stein"},"PowerShell ExecutionPolicies":{"list_name":"PowerShell ExecutionPolicies","originalId":"2","entries":[{"allowed_roles":null,"entry_value":"AllSigned","entry_name":"AllSigned","format":"string"},{"allowed_roles":null,"entry_value":"Bypass","entry_name":"Bypass","format":"string"},{"allowed_roles":null,"entry_value":"Default","entry_name":"Default","format":"string"},{"allowed_roles":null,"entry_value":"RemoteSigned","entry_name":"RemoteSigned","format":"string"},{"allowed_roles":null,"entry_value":"Restricted","entry_name":"Restricted","format":"string"},{"allowed_roles":null,"entry_value":"Undefined","entry_name":"Undefined","format":"string"},{"allowed_roles":null,"entry_value":"Unrestricted","entry_name":"Unrestricted","format":"string"}],"owner":"stein"}},"Command":{"PowerShell Base":{"methods_execute":"PluginCheck","object_name":"PowerShell Base","vars":{"IcingaPowerShellBase_String_ExecutionPolicy":"ByPass"},"is_string":null,"command":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe","zone":null,"disabled":false,"fields":[{"datafield_id":2,"is_required":"n","var_filter":null}],"arguments":{"-ExecutionPolicy":{"value":"$IcingaPowerShellBase_String_ExecutionPolicy$","order":"-1"},"-NoProfile":{"value":"-NoProfile","skip_key":true,"order":"-3"},"-NoLogo":{"value":"-NoLogo","skip_key":true,"order":"-2"}},"imports":[],"object_type":"object","timeout":"180"},"Invoke-IcingaCheckHyperVHealth":{"fields":[{"datafield_id":4,"is_required":"n","var_filter":null},{"datafield_id":5,"is_required":"n","var_filter":null},{"datafield_id":6,"is_required":"n","var_filter":null}],"object_name":"Invoke-IcingaCheckHyperVHealth","arguments":{"-C":{"value":"try { Use-Icinga -Minimal; } catch { Write-Output \u0027The Icinga PowerShell Framework is either not installed on the system or not configured properly. Please check https://icinga.com/docs/windows for further details\u0027; Write-Output \u0027Error:\u0027 $$($$_.Exception.Message)Components:`r`n$$( Get-Module -ListAvailable \u0027icinga-powershell-*\u0027 )`r`n\u0027Module-Path:\u0027`r`n$$($$Env:PSModulePath); exit 3; }; Exit-IcingaExecutePlugin -Command \u0027Invoke-IcingaCheckHyperVHealth\u0027 ","order":"0"},"-ThresholdInterval":{"set_if":"var str = macro(\"$IcingaCheckHyperVHealth_String_ThresholdInterval$\"); if (len(str) == 0) { return false; }; return true;","set_if_format":"expression","value":{"body":"var str = macro(\"$IcingaCheckHyperVHealth_String_ThresholdInterval$\");\r\nvar argLen = len(str);\r\n\r\nif (argLen == 0) {\r\n return;\r\n}\r\n\r\nif (argLen != 0 \u0026\u0026 str.substr(0,1) == \"\u0027\" \u0026\u0026 str.substr(argLen - 1, argLen) == \"\u0027\") {\r\n return str;\r\n}\r\n\r\nreturn (\"\u0027\" + str + \"\u0027\");","type":"Function"},"order":"100"},"-NoPerfData":{"set_if":"$IcingaCheckHyperVHealth_Switchparameter_NoPerfData$","set_if_format":"string","order":"99"},"-Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$","order":"2"}},"imports":["PowerShell Base"],"object_type":"object","vars":{"ifw_api_arguments":{"ThresholdInterval":{"value":"$IcingaCheckHyperVHealth_String_ThresholdInterval$"},"NoPerfData":{"set_if":"$IcingaCheckHyperVHealth_Switchparameter_NoPerfData$"},"Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$"}},"IcingaCheckHyperVHealth_Switchparameter_NoPerfData":false}}},"Datafield":{"2":{"settings":{"datalist":"PowerShell ExecutionPolicies","behavior":"strict","data_type":"string"},"description":"Defines with which Execution Policy the PowerShell is started","caption":"PowerShell Execution Policy","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"2","varname":"IcingaPowerShellBase_String_ExecutionPolicy","format":null},"6":{"settings":{"datalist":"IcingaCheckHyperVHealth Verbosity","behavior":"strict","data_type":"string"},"description":"Changes the behavior of the plugin output which check states are printed:\n0 (default): Only service checks/packages with state not OK will be printed\n1: Only services with not OK will be printed including OK checks of affected check packages including Package config\n2: Everything will be printed regardless of the check state\n3: Identical to Verbose 2, but prints in addition the check package configuration e.g (All must be [OK])","caption":"Verbosity","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeDatalist","originalId":"6","varname":"IcingaCheckHyperVHealth_Object_Verbosity","format":null},"4":{"settings":{"visibility":"visible"},"description":"Change the value your defined threshold checks against from the current value to a collected time threshold of the Icinga for Windows daemon, as described here: https://icinga.com/docs/icinga-for-windows/latest/doc/service/10-Register-Service-Checks/ An example for this argument would be 1m or 15m which will use the average of 1m or 15m for monitoring.","caption":"ThresholdInterval","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"4","varname":"IcingaCheckHyperVHealth_String_ThresholdInterval","format":null},"5":{"settings":{"visibility":"visible"},"description":"Disables the performance data output of this plugin","caption":"NoPerfData","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeBoolean","originalId":"5","varname":"IcingaCheckHyperVHealth_Switchparameter_NoPerfData","format":null}}} |
Oops, something went wrong.