Improves documentation

This commit is contained in:
Lord Hepipud 2020-08-22 14:22:37 +02:00
parent 2e2cc3e604
commit 6225d86e1e
12 changed files with 93 additions and 20 deletions

View file

@ -1,13 +1,82 @@
Introduction
===
# Icinga for Windows
This PowerShell Framework will provide a collection of Cmdlets to entirely manage an Icinga 2 Agent setup and provide check plugins to fetch information from Windows hosts.
Icinga for Windows is the default and official supported solution for monitoring Windows environments and tools. We provide a variety of components to ensure not only the initial installation and configuration is taken care of, but also the update of components including the actual monitoring.
It will ensure all required Icinga configurations are handled and present and offer an easy way to extend the monitoring with custom plugins. The framework will provide a standardised set of Cmdlets, Tools and Providers to make daily work, integrations and testing available to everyone, regardless if you are a Developer, System Engineer or enthusiast.
Get the latest Version from [GitHub](https://github.com/Icinga/icinga-powershell-framework/releases/latest) or [PowerShell Gallery](https://www.powershellgallery.com/packages/icinga-powershell-framework).
The following requirements have to be fullfilled:
## Architecture of the solution
* Windows 7 / Windows 2008 R2 or later
* PowerShell Version 4.x or higher
Icinga for Windows is simply an umbrella name for a bunch of PowerShell modules which have to be installed on the machines directly. Each module is designed to cover certain tasks and use cases, to ensure there is not one huge solution which adds functionality you usually wont use.
If you are ready to get started, take a look at the [Installation Guide](02-Installation.md).
To make sure the solution is extendable, you can install different modules in parallel making use of the other installed Icinga PowerShell modules and extend the abilities or develop your own custom modules.
## The heart of the solution: Icinga PowerShell Framework
The Icinga PowerShell Framework is the basic requirement to manage the Icinga Agent and to provide the tool set to execute the PowerShell plugins provided by Icinga. Instead of compiled and complex plugins shipped with the Agent itself, each functionality is separated as module file and loaded during the initialization of the Framework.
The real benefit is to provide standardized functionality across the board for all current and future plugins/extensions to come including the Icinga Agent management. By doing so, the Framework itself is a huge collection of functions, but decreases the amount of work developers have to invest for creating own plugins or modules.
## Easy extendability
Besides the Icinga PowerShell Framework a bunch of different PowerShell modules are already available. They are installed in addition to the Framework and can make use of already available functions - either shipped by the Framework itself or other modules.
The main goal is to extend the entire Windows monitoring space with a default set of tools every one can use later on to customize the monitoring based on the own needs.
## Coverage of Icinga for Windows
### Supported Operating Systems
We officially support Windows machines running the following operating systems:
* Windows 8
* Windows 8.1
* Windows 10
* Windows Server 2012
* Windows Server 2012 R2
* Windows Server 2016
* Windows Server 2019
It may work on the following systems, but is currently untested, not supported and certain features may not work as expected:
* Windows 7
* Windows 2008 R2
### Requirements
#### Minimum Requirements
In order to make Icinga for Windows work on the above supported machines you will require at least
* PowerShell 4.0 or later
* .NET Framework 4.0 or later
If you intend to use the Icinga Agent with the solution, you will require `.NET Framework 4.6 or later` being installed
#### Recommended
The recommended environment should contain
* PowerShell 5.1 or later
* .NET Framework 4.7 or later
## Available Modules/Extensions
Below you will find a list of currently available modules published by the Icinga Team.
### Core Modules
| Icinga PowerShell Kickstart | Icinga PowerShell Framework | Icinga PowerShell Plugins |
| --- | --- | --- |
| [![Kickstart](images\02_icons\kickstart.png)](https://icinga.com/docs/windows/latest/kickstart/doc/01-Introduction/) | [![Frame](images\02_icons\framework.png)](https://icinga.com/docs/windows/latest/doc/02-Installation/) | [![Frame](images\02_icons\plugins.png)](https://icinga.com/docs/windows/latest/plugins/doc/01-Introduction/) |
### Extensions
| Icinga PowerShell REST-Api | Icinga PowerShell Inventory |
| --- | --- |
| [![Rest-API](images\02_icons\restapi.png)](https://icinga.com/docs/windows/latest/restapi/doc/01-Introduction/) | [![Inventory](images\02_icons\inventory.png)](https://icinga.com/docs/windows/latest/inventory/doc/01-Introduction/) |
### Additional Plugins
| Icinga PowerShell Hyper-V (soon)| Icinga PowerShell MSSQL (soon) |
| --- | --- |
| ![Hyper-V](images\02_icons\hyperv.png) | ![Inventory](images\02_icons\mssql.png) |

View file

@ -1,7 +1,9 @@
Installing the Icinga PowerShell Framework
===
Installing the Icinga PowerShell Framework is managed by different ways, depending on the user environment including available possibitilies
Installing the Icinga PowerShell Framework is managed by different ways, depending on the user environment including available possibilities.
Get the latest Version from [GitHub](https://github.com/Icinga/icinga-powershell-framework/releases/latest) or [PowerShell Gallery](https://www.powershellgallery.com/packages/icinga-powershell-framework).
Instructions
---
@ -19,11 +21,11 @@ Once the Icinga PowerShell Framework is installed you can try if the installatio
Use-Icinga
```
This command will initialise the entire Icinga PowerShell Framework and load all available Cmdlets.
This command will initialize the entire Icinga PowerShell Framework and load all available Cmdlets.
*Note:* Starting with Icinga PowerShell Framework `1.2.0` you can simply use `icinga` to open a Icinga PowerShell Framework shell.
Whenever you intend to use specific Cmdlets of the framework for Icinga Plugins, Testing or configuration you will require to run this command for each new PowerShell instance to initialise the framework.
Whenever you intend to use specific Cmdlets of the framework for Icinga Plugins, Testing or configuration you will require to run this command for each new PowerShell instance to initialize the framework.
Icinga Agent installation wizard
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View file

@ -2,6 +2,8 @@
To install the module manually we will at first fetch information on where we can actually install the module into. PowerShell provides some default directories, which can however also extended manually.
Get the latest Version from [GitHub](https://github.com/Icinga/icinga-powershell-framework/releases/latest) or [PowerShell Gallery](https://www.powershellgallery.com/packages/icinga-powershell-framework).
## Getting Started
To do this, we can run the following command within PowerShell
@ -32,7 +34,7 @@ If you receive an output stating that the module is installed, you are fine to c
In order to be able to run the module on certain Windows Hosts, it might be required to either update the execution policies and/or unblock the module script files.
The prefered way is to simply unblock the script files, allowing them to be executed on the system. This can be done by running a PowerShell instance as **Administrator** and enter the following command (we assume the module is installed at `C:\Program Files\WindowsPowershell\Modules\icinga-powershell-framework`. If not, please modify the command with the correct location)
The preferred way is to simply unblock the script files, allowing them to be executed on the system. This can be done by running a PowerShell instance as **Administrator** and enter the following command (we assume the module is installed at `C:\Program Files\WindowsPowershell\Modules\icinga-powershell-framework`. If not, please modify the command with the correct location)
```powershell
Get-ChildItem -Path 'C:\Program Files\WindowsPowershell\Modules\icinga-powershell-framework' -Recurse | Unblock-File

View file

@ -1,12 +1,12 @@
# Install the Framework with PowerShell Gallery
PowerShell Gallery provides a collection of PowerShell modules and scripts which can easily be intalled on target machines. For a further description, please have a look on the [PowerShell Gallery website](https://www.powershellgallery.com/).
PowerShell Gallery provides a collection of PowerShell modules and scripts which can easily be installed on target machines. For a further description, please have a look on the [PowerShell Gallery website](https://www.powershellgallery.com/).
## Getting Started
Icinga is providing PowerShell Gallery packages within the [Icinga Profile](https://www.powershellgallery.com/profiles/Icinga) for the Framework itself and other related components.
To install the Icinga PowerShell Framework you can simpy use `Install-Module` in case it is available and configured on your system:
To install the Icinga PowerShell Framework you can simply use `Install-Module` in case it is available and configured on your system:
```powershell
Install-Module -Name icinga-powershell-framework;

View file

@ -20,12 +20,12 @@ Start-IcingaAgentInstallWizard;
The wizard will ask a bunch of questions, for example if you are using the semi-automated Director Self-Service API or if you configure everything by yourself.
Depending on how you configure the system, there might different questions occure. The goal of the wizard is to cover most of the possible configurations available for the Icinga Agent. This includes
Depending on how you configure the system, there might different questions occur. The goal of the wizard is to cover most of the possible configurations available for the Icinga Agent. This includes
* How your certificates are generated
* If you Icinga Agent or the Master/Satellites are establishing the connection
* Definition of the service user the Icinga Agent will run with
* Ensuring that the Icinga Agent with the provided configuration and settings is able to start and everyhing is valid
* Ensuring that the Icinga Agent with the provided configuration and settings is able to start and everything is valid
Once you completed the wizard you are asked if the configuration is correct and if you want to execute the configuration. In any way, you are always printed the configuration command with your configured settings.
This command can be executed on `any` Windows machine which has the Icinga PowerShell Framework installed. It contains the entire configuration for the system. Of course you can modify the values to match certain network zones or requirements.
@ -38,7 +38,7 @@ Below you will find some examples for different kind of configuration commands w
### Config Example 1: Director Self-Service
This example will use the Icinga Director Self-Service API and use a host template key to register the current machine within the Icinga Director and fetch the correct configuration for the host. In addition we will not override any provided variables and convert our Icinga endpoint configuration to actual IPs. For example if our Icinga parent node is registered with address `icinga2-master.example.com` the FQDN will automatically be translated to the refering IP address. This is important as in case of a DNS failure we want to ensure the monitoring is still working properly. In addition we leave the Ticket handling empty as the Self-Service will take care of it and we neihter want to install the Plugins nor the Icinga PowerShell Service.
This example will use the Icinga Director Self-Service API and use a host template key to register the current machine within the Icinga Director and fetch the correct configuration for the host. In addition we will not override any provided variables and convert our Icinga endpoint configuration to actual IPs. For example if our Icinga parent node is registered with address `icinga2-master.example.com` the FQDN will automatically be translated to the referring IP address. This is important as in case of a DNS failure we want to ensure the monitoring is still working properly. In addition we leave the Ticket handling empty as the Self-Service will take care of it and we neither want to install the Plugins nor the Icinga PowerShell Service.
Last but not least we want to directly run the installer.
@ -74,7 +74,7 @@ Of course you can install the Icinga PowerShell Service directly during the runt
**Explanation:**
The argument `FrameworkServiceUrl` is asking for a path pointing to the `.zip` file which contains the service binary. The file can either be located on a web ressource or a local/network share. The `ServiceDirectory` argument will point to the target on where the `.exe` file itself is being extracted to. This location is then being used to register the Windows Service object to which is later executed. In general there is an additional argument `ServiceBin` available which will define the direct path to the service binary. This can be left empty how ever of the official `.zip` file of Icinga for the service package is used.
The argument `FrameworkServiceUrl` is asking for a path pointing to the `.zip` file which contains the service binary. The file can either be located on a web resource or a local/network share. The `ServiceDirectory` argument will point to the target on where the `.exe` file itself is being extracted to. This location is then being used to register the Windows Service object to which is later executed. In general there is an additional argument `ServiceBin` available which will define the direct path to the service binary. This can be left empty how ever of the official `.zip` file of Icinga for the service package is used.
### Config Example 5: Install the Icinga Plugins during wizard run
@ -84,12 +84,12 @@ Just like the service you can also directly run the installation of the plugins
-InstallFrameworkPlugins 1 -PluginsUrl 'https://github.com/Icinga/icinga-powershell-plugins/archive/master.zip'
```
Just like the service binary, you can specify a different path to the `.zip` file of the plugins. This can either be a web ressource or a local/network share path.
Just like the service binary, you can specify a different path to the `.zip` file of the plugins. This can either be a web resource or a local/network share path.
## Install Icinga PowerShell Components
Besides installing the Icinga PowerShell Plugins during the installation, you can also install them with a dedicated Cmdlet: `Install-IcingaFrameworkComponent`
This Cmdlet is using a namespace to ensure that the location is handled and each ressource can be accessed properly. As with the above mentiond service binary and plugin repository, you can specify a custom location for the `.zip` file include the name of of the repository.
This Cmdlet is using a namespace to ensure that the location is handled and each resource can be accessed properly. As with the above mentioned service binary and plugin repository, you can specify a custom location for the `.zip` file include the name of of the repository.
For more details please have a look on the [Icinga Plugin Installation Guide](https://icinga.com/docs/windows/latest/plugins/doc/02-Installation/). This does also apply to every other Icinga Framework Component in the future.