Feature: Adds support for service recovery
Adds support to set service recovery for the Icinga Agent and Icinga for Windows service, to restart them in case of a crash or error
Fix: Missing component import func on dev tools
Adds missing Import-IcingaPowerShellComponent function while creating new components by using the developer tools
Fix: Missing loading for Icinga for Windows modules
Fixes missing loading of Icinga for Windows modules, which is required to ensure an Icinga for Windows environment is providing all commands and variables to a session, allowing other modules to access these information
Features: Adds module isolation support
Improves writing and publishing of modules, by ensuring that only certain functions are exported and modules have an own compilation file for loading.
This reduces load times, execution time and in addition allows modules to be isolated from each other, making it impossible to hijack certain code for not exported functions.
The former implementation had 5 threads permanently spinning fast
(10ms sleep) while waiting for a REST connection to process.
This causes higher load in general and it breaks systems where
"Turn on PowerShell Script Block Logging policy" is enabled,
because then each PS statement including Start-Sleep is logged -
resulting in 500 event log entries per second. It's a suggested
setting in some hardening guidelines.
We can easily replace the Queue with a BlockingCollection backed
by a ConcurrentQueue, which has the built-in feature to sleep until
there are new items. Now the REST API threads consumes zero CPU time
while waiting.
Feature: Add thread queuing optimisation and frozen thread detection
Adds feature to check for frozen threads on REST-Api, ensuring that non-responding threads are killed after 5 minutes without progress and restartet.
Also improves queing of REST-Api tasks into threads, which now prioritizes to check for inactive threads first to enque new calls and falls back to old behaviour, in case all threads are busy.
Fix: REST-Api SSL certificate lookup on custom hostname or domain/dns domain mismatch
Fixes REST-Api SSL certificate lookup from the Icinga Agent, in case a custom hostname was used or in certain domain environments were domain is not matching DNS domain
Feature: Check Icinga Agent certificate sign status
Adds feature to check the sign status for the local Icinga Agent certificate and notifying the user, in case the certificate is not yet signed by the Icinga CA.
Fix: Service locking and error handling
Fixes service locking during Icinga Agent upgrade and ensures errors on service management are caught and printed with internal error handling
Fix: Exceptions while removing temp files from repository download
Fixes possible exceptions while trying to remove downloaded repository temp files which might still contain a file lock from virusscanners or other tasks
Fix: Option "Connecting from parent system" is not asking for ca.crt
While using the IMC with the connection option "Connecting from parent system", the wizard is not asking for the location of the ca.crt, which is required in order to complete the Icinga Agent process and ensure the API feature can be enabled afterwards.
Before, the user had to manually configure this step, which required knowledge on how this process works for Icinga.
Fix: Errors while dynamically compiling Add-Type
Icinga for Windows is using `Add-Type` in some small cases, to properly fetch UNC Path values for plugins or disk attribute information.
While in most cases this works without problems, sometimes the on-the-fly compilation fails because of out-of-memory exceptions or different errors.
This fix will now compile the DLL required inside the `cache/dll` folder if not present and load the compiled DLL's if required and available.
Feature: Improves plugin doc generator for better docs
Adds table view for plugins with short summary of what the plugin is for and allows multi-lines in example docs