Skip to content

Commit

Permalink
Adds blackout times to VM health plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
LordHepipud committed Sep 4, 2023
1 parent 32c47f7 commit 1ab3156
Show file tree
Hide file tree
Showing 27 changed files with 441 additions and 357 deletions.
2 changes: 1 addition & 1 deletion config/director/Hyperv_Bundle.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion config/director/Invoke-IcingaCheckHyperVDuplicateVM.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion config/director/Invoke-IcingaCheckHyperVHealth.json
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":{"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},{"datafield_id":7,"is_required":"n","var_filter":null},{"datafield_id":8,"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"},"-Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$","order":"4"},"-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"},"-NodeCountWarning":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountWarning$","order":"2"},"-NodeCountCritical":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountCritical$","order":"3"}},"imports":["PowerShell Base"],"object_type":"object","vars":{"ifw_api_arguments":{"Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$"},"NodeCountCritical":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountCritical$"},"ThresholdInterval":{"value":"$IcingaCheckHyperVHealth_String_ThresholdInterval$"},"NoPerfData":{"set_if":"$IcingaCheckHyperVHealth_Switchparameter_NoPerfData$"},"NodeCountWarning":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountWarning$"}},"IcingaCheckHyperVHealth_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":"IcingaCheckHyperVHealth_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":"IcingaCheckHyperVHealth_String_ThresholdInterval","format":null},"6":{"settings":{"visibility":"visible"},"description":"Allows to throw critical in case the Hyper-V cluster node count is not matching this threshold","caption":"NodeCountCritical","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"6","varname":"IcingaCheckHyperVHealth_Object_NodeCountCritical","format":null},"5":{"settings":{"visibility":"visible"},"description":"Allows to throw warning in case the Hyper-V cluster node count is not matching this threshold","caption":"NodeCountWarning","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"5","varname":"IcingaCheckHyperVHealth_Object_NodeCountWarning","format":null},"8":{"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":"8","varname":"IcingaCheckHyperVHealth_Object_Verbosity","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},{"datafield_id":7,"is_required":"n","var_filter":null},{"datafield_id":8,"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"},"-Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$","order":"4"},"-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"},"-NodeCountWarning":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountWarning$","order":"2"},"-NodeCountCritical":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountCritical$","order":"3"}},"imports":["PowerShell Base"],"object_type":"object","vars":{"ifw_api_arguments":{"Verbosity":{"value":"$IcingaCheckHyperVHealth_Object_Verbosity$"},"NodeCountCritical":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountCritical$"},"ThresholdInterval":{"value":"$IcingaCheckHyperVHealth_String_ThresholdInterval$"},"NoPerfData":{"set_if":"$IcingaCheckHyperVHealth_Switchparameter_NoPerfData$"},"NodeCountWarning":{"value":"$IcingaCheckHyperVHealth_Object_NodeCountWarning$"}},"ifw_api_command":"Invoke-IcingaCheckHyperVHealth","IcingaCheckHyperVHealth_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":"IcingaCheckHyperVHealth_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":"IcingaCheckHyperVHealth_String_ThresholdInterval","format":null},"6":{"settings":{"visibility":"visible"},"description":"Allows to throw critical in case the Hyper-V cluster node count is not matching this threshold","caption":"NodeCountCritical","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"6","varname":"IcingaCheckHyperVHealth_Object_NodeCountCritical","format":null},"5":{"settings":{"visibility":"visible"},"description":"Allows to throw warning in case the Hyper-V cluster node count is not matching this threshold","caption":"NodeCountWarning","datatype":"Icinga\\Module\\Director\\DataType\\DataTypeString","originalId":"5","varname":"IcingaCheckHyperVHealth_Object_NodeCountWarning","format":null},"8":{"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":"8","varname":"IcingaCheckHyperVHealth_Object_Verbosity","format":null}}}
Loading

0 comments on commit 1ab3156

Please sign in to comment.