diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:15:40 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-14 13:15:40 +0000 |
commit | b7fd908d538ed19fe41f03c0a3f93351d8da64e9 (patch) | |
tree | 46e14f318948cd4f5d7e874f83e7dfcc5d42fc64 /doc | |
parent | Initial commit. (diff) | |
download | icingaweb2-module-businessprocess-upstream.tar.xz icingaweb2-module-businessprocess-upstream.zip |
Adding upstream version 2.5.0.upstream/2.5.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc')
82 files changed, 704 insertions, 0 deletions
diff --git a/doc/01-About.md b/doc/01-About.md new file mode 100644 index 0000000..44672b4 --- /dev/null +++ b/doc/01-About.md @@ -0,0 +1,19 @@ +# Icinga Business Process Modeling + +If you want to visualize and monitor hierarchical business processes based on +objects monitored by Icinga, Icinga Business Process Modeling is the solution. + +[![Dashboard](screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png)](16-Add-To-Dashboard.md) + +Want to create custom process-based dashboards? Trigger notifications at +process or sub-process level? Provide a quick top-level view for thousands of +components on a single screen? That's what this module has been designed for! + +You're running a huge cloud, want to get rid of the monitoring noise triggered +by your auto-scaling platform but still want to have detailed information just +a couple of clicks away in case you need them? You will love this little module! + +## Documentation + +* [Installation](02-Installation.md) +* [Getting Started](03-Getting-Started.md) diff --git a/doc/02-Installation.md b/doc/02-Installation.md new file mode 100644 index 0000000..6d479b1 --- /dev/null +++ b/doc/02-Installation.md @@ -0,0 +1,24 @@ +<!-- {% if index %} --> +# Installing Icinga Business Process Modeling + +The recommended way to install Icinga Business Process Modeling is to use prebuilt packages for +all supported platforms from our official release repository. +Please note that [Icinga Web](https://icinga.com/docs/icinga-web) is required to run Icinga +Business Process Modeling and if it is not already set up, it is best to do this first. + +The following steps will guide you through installing and setting up Icinga Business Process Modeling. +<!-- {% else %} --> +<!-- {% if not icingaDocs %} --> + +## Installing the Package + +If the [repository](https://packages.icinga.com) is not configured yet, please add it first. +Then use your distribution's package manager to install the `icinga-businessprocess` package +or install [from source](02-Installation.md.d/From-Source.md). +<!-- {% endif %} --><!-- {# end if not icingaDocs #} --> + +## Configuring Icinga Business Process Modeling + +That's it, Icinga Business Process Modeling is now ready to use. +Please read more on [how to get started](03-Getting-Started.md). +<!-- {% endif %} --><!-- {# end else if index #} --> diff --git a/doc/02-Installation.md.d/From-Source.md b/doc/02-Installation.md.d/From-Source.md new file mode 100644 index 0000000..9e4f6ec --- /dev/null +++ b/doc/02-Installation.md.d/From-Source.md @@ -0,0 +1,15 @@ +# Installing Icinga Business Process Modeling from Source + +Please see the Icinga Web documentation on +[how to install modules](https://icinga.com/docs/icinga-web/latest/doc/08-Modules/#installation) from source. +Make sure you use `businessprocess` as the module name. The following requirements must also be met. + +## Requirements + +* PHP (≥7.2) +* [Icinga Web](https://github.com/Icinga/icingaweb2) (≥2.9) +* [Icinga DB Web](https://github.com/Icinga/icingadb-web) (≥1.0) +* [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (≥0.13.0) +* [Icinga PHP Thirdparty](https://github.com/Icinga/icinga-php-thirdparty) (≥0.12.0) + +<!-- {% include "02-Installation.md" %} --> diff --git a/doc/03-Getting-Started.md b/doc/03-Getting-Started.md new file mode 100644 index 0000000..baacde0 --- /dev/null +++ b/doc/03-Getting-Started.md @@ -0,0 +1,77 @@ +# Getting Started + +Once you enable Icinga Business Process Modeling, it will pop up in your menu. +If you click on it, it will show you a new Dashboard: + +![Empty Dashboard](screenshot/03_getting-started/0201_empty-dashboard.png) + +## A new Business Process configuration + +From here we choose to create a new *Business Process configuration*: + +![New Business Process](screenshot/03_getting-started/0202_create-new-configuration.png) + +Let's have a look at the single fields: + +### Configuration name + +![Configuration name](screenshot/03_getting-started/0203_create-new_name.png) + +The Business Process definition will be stored with this name. This is going to +be used when referencing this process in URLs and in Check Commands. + +### Title + +![Configuration name](screenshot/03_getting-started/0204_create-new_title.png) + +You might optionally want to provide an additional title. In that case the title +is shown in the GUI, while the name is still used as a reference. The title will +default to the name. + +### Description + +![Description](screenshot/03_getting-started/0205_create-new_description.png) + +Provide a short description explaining within 100-150 character what this +configuration provides. This will be shown on the Dashboard. + +### Backend + +![Backend](screenshot/03_getting-started/0206_create-new_backend.png) + +**Hint:** *Usually this should not be changed* + +Icinga Web 2 currently uses only one Monitoring Backend, but in theory you +could configure multiple ones. They won't be usable in a meaningful way at the +time of this writing. Still, you might want to use a different backend as a data +provider for your Business Process. + +### State Type + +![State Type](screenshot/03_getting-started/0207_create-new_state-type.png) + +You can decide whether `SOFT` or `HARD` states should be the used as a base when +calculating the state of a Business Process definition. + +### Add to menu + +Business Process configurations can be linked to the Icinga Web 2 menu. Only the +first five configurations a user is allowed to see will be shown there: + +![Add to menu](screenshot/03_getting-started/0208_create-new_add-to-menu.png) + +That's all for now, click `Add` to store your new (still empty) Business Process +configuration. + +## Empty configuration + +You are redirected to your newly created Business Process configuration: + +![Empty configuration](screenshot/03_getting-started/0209_new-empty-configuration.png) + +From here we can now add as many deeply nested Business Processes as we want. +But let's first have a look at our Dashboard once again: + +![New on Dashboard](screenshot/03_getting-started/0210_new-on-dashboard.png) + +Now let's move on and [create your first Nodes](04-Create-your-first-process-node.md). diff --git a/doc/04-Create-your-first-process-node.md b/doc/04-Create-your-first-process-node.md new file mode 100644 index 0000000..ad3273d --- /dev/null +++ b/doc/04-Create-your-first-process-node.md @@ -0,0 +1,67 @@ +# Create your first Business Process Node + +A *Business Process Node* consists of a *name*, *title*, an *operator* and one or +more child nodes. It can be a Root Node, child node of other Business Process +Nodes - or both. + +![Empty Config](screenshot/04_first-root-node/0301_empty-config.png) + +## Configuring our first node + +To create our first *Business Process Node* we click the *Add* button. This +leads to the related configuration form: + +![Add new Node](screenshot/04_first-root-node/0302_add-new-node.png) + +First setting is the *Node name*, an identifier that must be unique throughout +all Nodes that are going to be defined. This identifier will be used in every +link and also in *Check Commands* referring this node from an Icinga *Service +Check*. + +### Set a title + +As uniqueness sometimes leads to not-so-beautiful names, you are additionally +allowed to specify a title. This is what the frontend is going to show: + +![Node Title](screenshot/04_first-root-node/0303_node-title.png) + +### Choose an operator + +Every Business Process requires an *Operator*. This operator defines it's +behaviour, this specifies how it's very own state is going to be calculated: + +![Operator](screenshot/04_first-root-node/0304_operator.png) + +### Specify where to display + +The form suggests to create a *Toplevel Process*. It does so as we are about +to create a new *root node*. We could alternatively also create a sub process. +As we are currently not adding it to another Node, this would lead to an *Unbound +Node* that could be linked later on. + +![Node Display](screenshot/04_first-root-node/0305_display.png) + +### Provide an optional Info URL + +One might also want to provide a link to additional information related to a +specific process. This could be instructions with more technical details or +hints telling what should happen if outage occurs. You might not want to do so +for every single Node, but it might come in handy for your most important (top +level?) nodes: + +![Node Info Url](screenshot/04_first-root-node/0306_info-url.png) + +That's it, your are ready to submit the form. + +### First Business Process Node ready + +You are now shown your first Business Process Node. A red bar reminds you that +your pending changes have not been stored yet: + +![First Node created](screenshot/04_first-root-node/0307_first-node-created.png) + +You could now *Store the Configuration* or move on with adding additional nodes +to complete your configuration. + +**Hint**: the blue arrow makes part of a breadcrumb showing your current position. + You might want to learn more about [breadcrumbs](12-Web-Components-Breadcrumb.md). diff --git a/doc/05-Importing-Processes.md b/doc/05-Importing-Processes.md new file mode 100644 index 0000000..3095bbf --- /dev/null +++ b/doc/05-Importing-Processes.md @@ -0,0 +1,53 @@ +# Importing Processes + +To avoid redundancy and make complex *Business Process Configurations* easier +to maintain it is possible to import processes from other configurations. + +In order to be able to import a process create a root node first. You cannot +import processes into the root level. + +![Subprocesses Only](screenshot/05_importing_nodes/0401_subprocesses_only.png) + +## Importing a Process + +Once the related configuration form is open, choose `Existing Process` and wait +for the form to refresh. + +![Existing Process](screenshot/05_importing_nodes/0402_choose_existing_process.png) + +### Choose Configuration + +You can now choose the configuration to import processes from. Or simply hit +`Next` to just utilize a process from the current configuration. + +![Choose Configuration](screenshot/05_importing_nodes/0403_choose_configuration.png) + +### Select Processes + +Now select the processes you want to import and submit the form. + +![Select Processes](screenshot/05_importing_nodes/0404_choose_process.png) + +### Import Successful + +You are now looking at the result. The process has been imported. Do not forget +to save your changes! + +![Import Successful](screenshot/05_importing_nodes/0405_import_successful.png) + +## Navigation with Imported Processes + +### Seamless Breadcrumbs + +You may have already noticed that the breadcrumbs integrate the hierarchy +of the imported process. Once you navigate further the actions below the +breadcrumbs change and don't permit to unlock editing. + +![Seamless Breadcrumbs](screenshot/05_importing_nodes/0406_breadcrumb_integration.png) + +To change imported processes you need to open them in their original +configuration first. To do so click on the arrow to the right which is +displayed in a tile's action urls in the upper left. While in tree view +these can be found at the very right of an process' row. + +![Jump To Original](screenshot/05_importing_nodes/0407_jump_to_original.png) diff --git a/doc/06-Customize-Node-Order.md b/doc/06-Customize-Node-Order.md new file mode 100644 index 0000000..880eaa6 --- /dev/null +++ b/doc/06-Customize-Node-Order.md @@ -0,0 +1,71 @@ +# Customize Node Order + +By default all nodes are ordered alphabetically while viewing them in the UI. +Though, it is also possible to order nodes entirely manually. + +> **Note** +> +> Once manual order is applied (no matter where) alphabetical order is +> disabled for the entire configuration. + +## Reorder by Drag'n'Drop + +Make sure to unlock the configuration first to be able to reorder nodes. + +### Tile View + +To move a tile simply grab it with your mouse and drag it to the location you +want it to appear at. + +![Grab Tile](screenshot/06_customize_node_order/0501_tiles_grab_tile.png) +![Drop Tile](screenshot/06_customize_node_order/0502_tiles_drop_at_location.png) + +### Tree View + +While in tree view nodes can be moved the same way. You just have a narrower +area to grab them. + +![Grab Row](screenshot/06_customize_node_order/0503_tree_grab_header.png) +![Drop Row](screenshot/06_customize_node_order/0504_tree_drop_at_location.png) + +The tree view also has an advantage the tile view has not. It is possible to +move nodes within the entire hierarchy. But remember to unfold processes first, +if you want to move a node into them. + +## File Format Extensions + +The configuration file format has slightly been changed to accommodate the new +manual order. Though, previous configurations are perfectly upwards compatible. + +### New Header + +A new header is used to flag a configuration file as being manually ordered. + +``` +# ManualOrder : yes +``` + +Once this is set alphabetical order is disabled and only the next techniques +define the order of nodes. + +### Changed `display` Semantic + +Previously there were only two valid values for the `display` directive. +(0 = Subprocess, 1 = Toplevel Process) + +``` +display 0|1;<name>;<title> +``` + +This has now been extended so that values greater than zero refer to the order +of root nodes. (ascending) + +``` +display 0|n;<name>;<title> +``` + +### Significant Children Order + +Previously the order of a node's children in a configuration file was not +important in any way. Now this is significant and refers to the order in +which children appear in the UI and how process states are determined. diff --git a/doc/07-State-Overrides.md b/doc/07-State-Overrides.md new file mode 100644 index 0000000..dfdbaeb --- /dev/null +++ b/doc/07-State-Overrides.md @@ -0,0 +1,45 @@ +# State Overrides + +Business processes utilize their children's states to calculate their own state. +While you can influence this with [operators](09-Operators.md), it's also possible +to override individual states. (This applies to host and service nodes.) + +## Configuring Overrides + +State overrides get configured per node. When adding or editing a node, you can +define which state should be overridden with another one. + +Below `WARNING` is chosen as a replacement for `CRITICAL`. + +![Service State Override Configuration](screenshot/07_state_overrides/0701_override_config.png "Service State Override Configuration") + +## Identifying Overrides + +In tile view overridden states are indicated by an additional state ball in the +lower left of a tile. This is then the actual state the object is in. + +![Overridden Tile State](screenshot/07_state_overrides/0702_overridden_tile.png "Overridden Tile State") + +In tree view overridden states are indicated on the very right of a row. There +the actual state is shown and which one it is replaced with. + +![Overridden Tree State](screenshot/07_state_overrides/0703_overridden_tree.png "Overridden Tree State") + +## File Format Extensions + +The configuration file format has slightly been changed to accommodate state +overrides. Though, previous configurations are perfectly upwards compatible. + +### New Extra Line + +For process nodes a new extra line is used to store state overrides. + +``` +state_overrides dev_database_servers!mysql;mysql|2-1 +``` + +The full syntax for this is as follows: + +``` +state_overrides <process>!<child>|n-n[!<child>|n-n[,n-n]] +``` diff --git a/doc/09-Operators.md b/doc/09-Operators.md new file mode 100644 index 0000000..8d54ba3 --- /dev/null +++ b/doc/09-Operators.md @@ -0,0 +1,43 @@ +# Operators + +Every Business Process requires an Operator. This operator defines its behaviour and specifies how its very own state is +going to be calculated. + +## AND + +The `AND` operator selects the **WORST** state of its child nodes: + +![And Operator](screenshot/09_operators/0901_and-operator.png) + +## OR + +The `OR` operator selects the **BEST** state of its child nodes: + +![Or Operator](screenshot/09_operators/0902_or-operator.png) + +![Or Operator #2](screenshot/09_operators/0903_or-operator-without-ok.png) + +## XOR + +The `XOR` operator shows OK if only one of n children is OK at the same time. In all other cases the parent node is CRITICAL. +Useful for a service on n servers, only one of which may be running. If both were running, +race conditions and duplication of data could occur. + +![Xor Operator](screenshot/09_operators/0906_xor-operator.png) + +![Xor Operator #2](screenshot/09_operators/0907_xor-operator-not-ok.png) + +## DEGRADED + +The `DEGRADED` operator behaves like an `AND`, but if the resulting +state is **CRITICAL** it transforms it into a **WARNING**. +Refer to the table below for the case-by-case +analysis of the statuses. + +![Degraded Operator](screenshot/09_operators/0905_deg-operator.jpg) + +## MIN n + +The `MIN` operator selects the **WORST** state out of the **BEST n** child node states: + +![MIN](screenshot/09_operators/0904_min-operator.png) diff --git a/doc/10-Monitoring.md b/doc/10-Monitoring.md new file mode 100644 index 0000000..2d7c70c --- /dev/null +++ b/doc/10-Monitoring.md @@ -0,0 +1,49 @@ +# Monitoring + +## Process Check Command + +The module provides a CLI command to check a business process. + +### Usage + +General: `icingacli businessprocess process check <process> [options]` + +Options: + +``` + --config <configname> Name of the config that contains <process> + --details Show problem details as a tree + --colors Show colored output + --state-type <type> Define which state type to look at. Could be either soft + or hard, overrides an eventually configured default + --blame Show problem details as a tree reduced to the nodes + which have the same state as the business process + --root-cause Used in combination with --blame. Only shows + the path of the nodes which are responsible + for the state of the business process + --downtime-is-ok Treat hosts/services in downtime always as UP/OK. + --ack-is-ok Treat acknowledged hosts/services always as UP/OK. +``` + +### Detail View Integration + +It is possible to show the monitored process in the service detail view. + +For this to work, the name of the checkcommand configured in Icinga 2 must either +be `icingacli-businessprocess` or the name that can be configured in the module +configuration: + +**/etc/icingaweb2/modules/businessprocess/config.ini** +```ini +[DetailviewExtension] +checkcommand_name=businessprocess-check +``` + +A service can define specific custom variables for this. Mandatory ones +that are not defined, cause the detail view integration to not be active. + +| Variable Name | Mandatory | Description | +|--------------------------------------|-----------|----------------------------------------------| +| icingacli\_businessprocess\_process | Yes | The `<process>` being checked | +| icingacli\_businessprocess\_config | No | Name of the config that contains `<process>` | +| icingaweb\_businessprocess\_as\_tree | No | Whether to show `<process>` as tree or tiles | diff --git a/doc/12-Web-Components-Breadcrumb.md b/doc/12-Web-Components-Breadcrumb.md new file mode 100644 index 0000000..27391f0 --- /dev/null +++ b/doc/12-Web-Components-Breadcrumb.md @@ -0,0 +1,69 @@ +# Web Components: Breadcrumb + +All Business Process renderers show a **breadcrumb** component to always give +you a quick indication of your current location. + +![Símple Breadcrumb](screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png) + +The left-most section shows the title of the current *Business Process Configuration*. +The remaining sections show the path to the current *Business Process Node* currently +being shown. + +Hovering the Breadcrumb with your mouse shows you that all of it sections are +highlighted, as they are links pointing to either the root level when clicking +on the *Configuration Node* itself or to the corresponding *Business Process Node*. + +All but the last section, showing your current position in the tree. Even if +not being highlighted, it is still a link an can be clicked in case you need +so. + +In case you're showing some related details in a split-screen view of *Icinga +Web 2*, a click on any *Breadcrumb* section will switch back to a wide single +column view to make it obvious that you moved to another context. It is also +perfectly legal to open any of the available links in a new browser tab or +window. + +## Available actions below the Breadcrumb + +### Choose a renderer + +The first link allows to toggle the used Renderer. Currently a *Tree* and a +*Tile* renderer are available. + +### Move to Full Screen Mode + +Every view can be shown in *Full Screen Mode*. Full screen means that left and +upper menu together with some other details are hidden. Your Business Process +will be able to use all of the available space. Want even more? Then please +additionally switch your browser to full screen mode. This is usually done by +pressing the `F11` key. + +Once being in full screen mode you'll find an icon on the right side that will +allow you to switch back to normal view: + +![Return from fullscreen](screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png) + +**Hint:** We know that the web application might request real full screen mode +on their own. We refused doing so as many people find this being an annoying +feature. + +### Unlock the Configuration + +When clicking `Unlock`, additional actions are shown. One of them is immediately +shown next to the `Unlock` link and reads `Config`. It allows you to reach Configuration +settings for the your currently loaded *Business Process Configuration*: + +![Unlocked config](screenshot/12_web-components_breadcrumb/1204_unlocked_config.png) + +But there is more. When unlocked, all nodes provide links allowing you to modify or +to delete them. Host/Service Nodes now allow you to simulate a specific state. + +## Other main actions + +### Add content to your Dashboard + +When being in *locked* mode, you are allowed to add the currently shown process +at the given path with the active renderer in the main (or a custom) [Icinga Web 2 +Dashboard](16-Add-To-Dashboard.md): + +![Add to Dashboard](screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png) diff --git a/doc/13-Web-Components-Tile-Renderer.md b/doc/13-Web-Components-Tile-Renderer.md new file mode 100644 index 0000000..4d5df8c --- /dev/null +++ b/doc/13-Web-Components-Tile-Renderer.md @@ -0,0 +1,22 @@ +# Web Components: Tile Renderer + +The default Business Process *Renderer* is the *Tile Renderer*. It always shows +one level of your tree, enriched with badges giving some hint on lower level +node problems. This is what it looks like: + +![Tile Renderer](screenshot/13_web-components-tile-renderer/1301_tile-view.png) + +Please click on *Tree* below the [breadcrumb](12-Web-Components-Breadcrumb.md) +to switch to the [Tree View](14-Web-Components-Tree-Renderer.md). In the left +corner of every *Tile* you can find two icons, both of them will show the related +sub-process. On your mobile phone this usually replaces your current view, please +use the [breadcrumb](12-Web-Components-Breadcrumb.md) to navigate back to a higher +level. + +On a Notebook or Desktop Computer this usually leady to a split-screen view: + +![Split View - Tiles and Tree](screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png) + +This example shows a subtree shown with the [Tree Renderer](14-Web-Components-Tree-Renderer.md), +it is of course also perfectly legal to drill down using the *Tile Renderer* +only. diff --git a/doc/14-Web-Components-Tree-Renderer.md b/doc/14-Web-Components-Tree-Renderer.md new file mode 100644 index 0000000..b761360 --- /dev/null +++ b/doc/14-Web-Components-Tree-Renderer.md @@ -0,0 +1,13 @@ +# Web Components: Tree Renderer + +The main advantage of the *Tree Renderer* is that it is able to show all nodes +of Business Process trees at once. This works fine even for huge trees with lots +of nodes. Please have a look at this screenshot to get an idea of how the tree +view looks like: + +![Tree View](screenshot/14_web-components-tree-renderer/1401_tree-view.png) + +Clicking Business Process Nodes collapses or unfolds them, clicking single hosts +or services show the related monitored object. You can of course always switch +back to the [Tile Renderer](13-Web-Components-Tile-Renderer.md) with a single +click at any time. diff --git a/doc/16-Add-To-Dashboard.md b/doc/16-Add-To-Dashboard.md new file mode 100644 index 0000000..4b9f8a8 --- /dev/null +++ b/doc/16-Add-To-Dashboard.md @@ -0,0 +1,20 @@ +# Show Processes on a Dashboard + +When being in *Locked mode*, you can add any Business Process at top or sub level +to any Icinga Web 2 Dashboard. The related link can be found in the Tab bar: + +![Add to Dashboard - Link](screenshot/16_dashboard/1601_add-to-dashboard-link.png) + +This leads to the standard Icinga Web 2 *Add Dashlet to Dashboard* form. Feel +free to add your Business Process View to any existing Dashboard. You might also +want to create a dedicated Dashboard as shown in this example: + +![Add to Dashboard - Form](screenshot/16_dashboard/1602_add_to_dashboard-form.png) + + +## Want more? + +Head on and add multiple Business Processes to your Dashboard to show all of +them at once: + +![Sample Dashboard](screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png) diff --git a/doc/21-Store-Config.md b/doc/21-Store-Config.md new file mode 100644 index 0000000..a8380e7 --- /dev/null +++ b/doc/21-Store-Config.md @@ -0,0 +1,23 @@ +# Store your Configuration + +Changes to your *Business Process Configuration* are added to a stack and will +not be stored immediately. In case there are pending unstored changes, this will +be shown on every screen: + +![Pending Changes](screenshot/21_store-config/2101_Pending-Changes.png) + +A click on *Dismiss* immediately throws away all unstored changes. A click on +*Store* brings you to the configuration form. You have seen this before, once +you created your [very first configuration](03-Getting-Started.md): + +![Store Config](screenshot/21_store-config/2102_Store-Config.png) + +## Config Diff + +If unsure what changes you're going to store, you can still check the *Config Diff* +before finally storing to disk: + +![Show Diff](screenshot/21_store-config/2103_Show-Diff.png) + +You can also download your existing configuration to safe it elsewhere or to +apply manual modifications with our favourite plaintext editor. diff --git a/doc/22-Upload-Config.md b/doc/22-Upload-Config.md new file mode 100644 index 0000000..2afdb01 --- /dev/null +++ b/doc/22-Upload-Config.md @@ -0,0 +1,26 @@ +# Upload a Configuration File + +You can upload a formerly downloaded or even a manually created file directly +through the web frontend. Given sufficient permissions, the Dashboard provides +a related link: + +![From Dashboard to Upload](screenshot/22_upload-config/2201_go-to-upload.png) + +## Chose a file + +This can be any file: + +![Choose a File](screenshot/22_upload-config/2202_choose-file.png) + +It should be valid of course, but don't worry - Icinga Business Process Modeling +protects you from syntax errors: + +![Syntax Error](screenshot/22_upload-config/2203_syntax-error.png) + +Just for fun you could try to upload an image or whatever you want - it will not +break. It will also protect you from accidentally overwriting existing files: + +![Duplicate Name](screenshot/22_upload-config/2204_duplicate-name.png) + +So in case you need to replace an existing process, please delete it before +uploading a new one. diff --git a/doc/31-Permissions.md b/doc/31-Permissions.md new file mode 100644 index 0000000..b6b8b98 --- /dev/null +++ b/doc/31-Permissions.md @@ -0,0 +1,25 @@ +# Permission System + +The permission system of the module is based on permissions and restrictions. + +## Permissions + +The module has five levels of permissions: + +* Granting general module access allows a user to view business processes. (`module/businessprocess`) +* Create permissions allow to create new business processes. (`businessprocess/create`) +* Modify permissions allow to modify already existing ones. (`businessprocess/modify`) +* Permission to view all business processes regardless restrictions. (`businessprocess/showall`) +* Full permissions. (`businessprocess/*`) + +## Restrictions + +There are two ways to configure restrictions: prefix-based and access controls + +### Prefix-based + +This option allows to limit access of a role to only business processes with a specific prefix. For this the ID (Configuration name) of a business process has to start with a prefix and it has to be set as restriction on the role. (`businessprocess/prefix`) + +### Access controls + +This option allows for more fine granular permissions based on user (`AllowedUsers`), group (`AllowedGroups`) and role (`AllowedRoles`). These attributes take a comma-separated list, get added to the header of the business process configuration file and limit access to the owner and the mentioned ones. diff --git a/doc/81-History.md b/doc/81-History.md new file mode 100644 index 0000000..82a4024 --- /dev/null +++ b/doc/81-History.md @@ -0,0 +1,43 @@ +# Project History + +Icinga Business Process Modeling is based on the ideas of the Nagios(tm) [Business +Process AddOn](http://bp-addon.monitoringexchange.org/) written by Bernd +Strößenreuther. We always loved its simplicity, and while it looks pretty +oldschool right now there are still many shops happily using it in production. + +![BpAddOn Overview](screenshot/81_history/8101_bpaddon-overview.png) + +## Compatibility + +We fully support the BPaddon configuration language and will continue to do so. +It's also perfectly valid to run both products in parallel based on the very same +config files. New features are (mostly) added in a compatible way. + +Configuration titles and descriptions, properties related to state types or +permissions are examples for new features that didn't formerly exist. They are +stored as commented metadata in the file header and therefore invisible to the +old AddOn. + +The only way to break compatibility is to use newly introduced operators like +`NOT`. Once you do so, the old AddOn will no longer be able to parse your +configuration. + +![BpAddOn Details](screenshot/81_history/8102_bpaddon-detail.png) + +Lot's of changes went on and are still going on under the hood. We have more +features and new language constructs. We separated the config reader from the +state fetcher in our code base. This will allow us to eventually support config +backends like SQL databases or the Icinga 2 DSL. + +This would make it easier to distribute configuration in large environments. + +## Improvements + +Major focus has been put on execution speed. So while the Web integration shows +much more details at once and is able to display huge unfolded trees, it should +still render and refresh faster. Same goes for the Check Plugin. + +Behaviour for all operators is now strictly specified and Unit-tested. You still +can manually edit your configuration files. But much better, you also delegate +this to your co-workers, as Business Process definitions can now be built directly +in the GUI. diff --git a/doc/screenshot/00_preview/0001_preview-tree-view.png b/doc/screenshot/00_preview/0001_preview-tree-view.png Binary files differnew file mode 100644 index 0000000..2015a31 --- /dev/null +++ b/doc/screenshot/00_preview/0001_preview-tree-view.png diff --git a/doc/screenshot/00_preview/0002_preview_tile_view.png b/doc/screenshot/00_preview/0002_preview_tile_view.png Binary files differnew file mode 100644 index 0000000..08770ae --- /dev/null +++ b/doc/screenshot/00_preview/0002_preview_tile_view.png diff --git a/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png b/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/doc/screenshot/00_preview/0003_preview_businessprocesses_on_dashboard.png diff --git a/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png b/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png Binary files differnew file mode 100644 index 0000000..e8db7ae --- /dev/null +++ b/doc/screenshot/00_preview/0004_preview_tile_and_subtree.png diff --git a/doc/screenshot/00_preview/0005_readme-preview.png b/doc/screenshot/00_preview/0005_readme-preview.png Binary files differnew file mode 100644 index 0000000..4515c86 --- /dev/null +++ b/doc/screenshot/00_preview/0005_readme-preview.png diff --git a/doc/screenshot/02_installation/101_menu-configuration-modules.png b/doc/screenshot/02_installation/101_menu-configuration-modules.png Binary files differnew file mode 100644 index 0000000..0c2d9df --- /dev/null +++ b/doc/screenshot/02_installation/101_menu-configuration-modules.png diff --git a/doc/screenshot/02_installation/102_enable-module.png b/doc/screenshot/02_installation/102_enable-module.png Binary files differnew file mode 100644 index 0000000..140d38d --- /dev/null +++ b/doc/screenshot/02_installation/102_enable-module.png diff --git a/doc/screenshot/03_getting-started/0201_empty-dashboard.png b/doc/screenshot/03_getting-started/0201_empty-dashboard.png Binary files differnew file mode 100644 index 0000000..b8fddcb --- /dev/null +++ b/doc/screenshot/03_getting-started/0201_empty-dashboard.png diff --git a/doc/screenshot/03_getting-started/0202_create-new-configuration.png b/doc/screenshot/03_getting-started/0202_create-new-configuration.png Binary files differnew file mode 100644 index 0000000..48e91fa --- /dev/null +++ b/doc/screenshot/03_getting-started/0202_create-new-configuration.png diff --git a/doc/screenshot/03_getting-started/0203_create-new_name.png b/doc/screenshot/03_getting-started/0203_create-new_name.png Binary files differnew file mode 100644 index 0000000..02845eb --- /dev/null +++ b/doc/screenshot/03_getting-started/0203_create-new_name.png diff --git a/doc/screenshot/03_getting-started/0204_create-new_title.png b/doc/screenshot/03_getting-started/0204_create-new_title.png Binary files differnew file mode 100644 index 0000000..99e26bb --- /dev/null +++ b/doc/screenshot/03_getting-started/0204_create-new_title.png diff --git a/doc/screenshot/03_getting-started/0205_create-new_description.png b/doc/screenshot/03_getting-started/0205_create-new_description.png Binary files differnew file mode 100644 index 0000000..454ec82 --- /dev/null +++ b/doc/screenshot/03_getting-started/0205_create-new_description.png diff --git a/doc/screenshot/03_getting-started/0206_create-new_backend.png b/doc/screenshot/03_getting-started/0206_create-new_backend.png Binary files differnew file mode 100644 index 0000000..31fcc83 --- /dev/null +++ b/doc/screenshot/03_getting-started/0206_create-new_backend.png diff --git a/doc/screenshot/03_getting-started/0207_create-new_state-type.png b/doc/screenshot/03_getting-started/0207_create-new_state-type.png Binary files differnew file mode 100644 index 0000000..f875057 --- /dev/null +++ b/doc/screenshot/03_getting-started/0207_create-new_state-type.png diff --git a/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png b/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png Binary files differnew file mode 100644 index 0000000..c868015 --- /dev/null +++ b/doc/screenshot/03_getting-started/0208_create-new_add-to-menu.png diff --git a/doc/screenshot/03_getting-started/0209_new-empty-configuration.png b/doc/screenshot/03_getting-started/0209_new-empty-configuration.png Binary files differnew file mode 100644 index 0000000..b1fbe86 --- /dev/null +++ b/doc/screenshot/03_getting-started/0209_new-empty-configuration.png diff --git a/doc/screenshot/03_getting-started/0210_new-on-dashboard.png b/doc/screenshot/03_getting-started/0210_new-on-dashboard.png Binary files differnew file mode 100644 index 0000000..6717d3d --- /dev/null +++ b/doc/screenshot/03_getting-started/0210_new-on-dashboard.png diff --git a/doc/screenshot/04_first-root-node/0301_empty-config.png b/doc/screenshot/04_first-root-node/0301_empty-config.png Binary files differnew file mode 100644 index 0000000..b1fbe86 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0301_empty-config.png diff --git a/doc/screenshot/04_first-root-node/0302_add-new-node.png b/doc/screenshot/04_first-root-node/0302_add-new-node.png Binary files differnew file mode 100644 index 0000000..f3eeb87 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0302_add-new-node.png diff --git a/doc/screenshot/04_first-root-node/0303_node-title.png b/doc/screenshot/04_first-root-node/0303_node-title.png Binary files differnew file mode 100644 index 0000000..b6f9d12 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0303_node-title.png diff --git a/doc/screenshot/04_first-root-node/0304_operator.png b/doc/screenshot/04_first-root-node/0304_operator.png Binary files differnew file mode 100644 index 0000000..1ffa1c2 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0304_operator.png diff --git a/doc/screenshot/04_first-root-node/0305_display.png b/doc/screenshot/04_first-root-node/0305_display.png Binary files differnew file mode 100644 index 0000000..39e30b3 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0305_display.png diff --git a/doc/screenshot/04_first-root-node/0306_info-url.png b/doc/screenshot/04_first-root-node/0306_info-url.png Binary files differnew file mode 100644 index 0000000..770102d --- /dev/null +++ b/doc/screenshot/04_first-root-node/0306_info-url.png diff --git a/doc/screenshot/04_first-root-node/0307_first-node-created.png b/doc/screenshot/04_first-root-node/0307_first-node-created.png Binary files differnew file mode 100644 index 0000000..3fd5be6 --- /dev/null +++ b/doc/screenshot/04_first-root-node/0307_first-node-created.png diff --git a/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png b/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png Binary files differnew file mode 100644 index 0000000..d4f58ba --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0401_subprocesses_only.png diff --git a/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png b/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png Binary files differnew file mode 100644 index 0000000..4fc5f63 --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0402_choose_existing_process.png diff --git a/doc/screenshot/05_importing_nodes/0403_choose_configuration.png b/doc/screenshot/05_importing_nodes/0403_choose_configuration.png Binary files differnew file mode 100644 index 0000000..19b4c05 --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0403_choose_configuration.png diff --git a/doc/screenshot/05_importing_nodes/0404_choose_process.png b/doc/screenshot/05_importing_nodes/0404_choose_process.png Binary files differnew file mode 100644 index 0000000..010992c --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0404_choose_process.png diff --git a/doc/screenshot/05_importing_nodes/0405_import_successful.png b/doc/screenshot/05_importing_nodes/0405_import_successful.png Binary files differnew file mode 100644 index 0000000..9f4f346 --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0405_import_successful.png diff --git a/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png b/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png Binary files differnew file mode 100644 index 0000000..0929546 --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0406_breadcrumb_integration.png diff --git a/doc/screenshot/05_importing_nodes/0407_jump_to_original.png b/doc/screenshot/05_importing_nodes/0407_jump_to_original.png Binary files differnew file mode 100644 index 0000000..8fc0e2d --- /dev/null +++ b/doc/screenshot/05_importing_nodes/0407_jump_to_original.png diff --git a/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png b/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png Binary files differnew file mode 100644 index 0000000..5697786 --- /dev/null +++ b/doc/screenshot/06_customize_node_order/0501_tiles_grab_tile.png diff --git a/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png b/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png Binary files differnew file mode 100644 index 0000000..cd7b673 --- /dev/null +++ b/doc/screenshot/06_customize_node_order/0502_tiles_drop_at_location.png diff --git a/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png b/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png Binary files differnew file mode 100644 index 0000000..7687713 --- /dev/null +++ b/doc/screenshot/06_customize_node_order/0503_tree_grab_header.png diff --git a/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png b/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png Binary files differnew file mode 100644 index 0000000..828aebe --- /dev/null +++ b/doc/screenshot/06_customize_node_order/0504_tree_drop_at_location.png diff --git a/doc/screenshot/07_state_overrides/0701_override_config.png b/doc/screenshot/07_state_overrides/0701_override_config.png Binary files differnew file mode 100644 index 0000000..49ca2ad --- /dev/null +++ b/doc/screenshot/07_state_overrides/0701_override_config.png diff --git a/doc/screenshot/07_state_overrides/0702_overridden_tile.png b/doc/screenshot/07_state_overrides/0702_overridden_tile.png Binary files differnew file mode 100644 index 0000000..db2012e --- /dev/null +++ b/doc/screenshot/07_state_overrides/0702_overridden_tile.png diff --git a/doc/screenshot/07_state_overrides/0703_overridden_tree.png b/doc/screenshot/07_state_overrides/0703_overridden_tree.png Binary files differnew file mode 100644 index 0000000..ccf4fde --- /dev/null +++ b/doc/screenshot/07_state_overrides/0703_overridden_tree.png diff --git a/doc/screenshot/09_operators/0901_and-operator.png b/doc/screenshot/09_operators/0901_and-operator.png Binary files differnew file mode 100644 index 0000000..c6e7775 --- /dev/null +++ b/doc/screenshot/09_operators/0901_and-operator.png diff --git a/doc/screenshot/09_operators/0902_or-operator.png b/doc/screenshot/09_operators/0902_or-operator.png Binary files differnew file mode 100644 index 0000000..fd05ec3 --- /dev/null +++ b/doc/screenshot/09_operators/0902_or-operator.png diff --git a/doc/screenshot/09_operators/0903_or-operator-without-ok.png b/doc/screenshot/09_operators/0903_or-operator-without-ok.png Binary files differnew file mode 100644 index 0000000..e9fcd4e --- /dev/null +++ b/doc/screenshot/09_operators/0903_or-operator-without-ok.png diff --git a/doc/screenshot/09_operators/0904_min-operator.png b/doc/screenshot/09_operators/0904_min-operator.png Binary files differnew file mode 100644 index 0000000..fd05ec3 --- /dev/null +++ b/doc/screenshot/09_operators/0904_min-operator.png diff --git a/doc/screenshot/09_operators/0905_deg-operator.jpg b/doc/screenshot/09_operators/0905_deg-operator.jpg Binary files differnew file mode 100644 index 0000000..9dc05a3 --- /dev/null +++ b/doc/screenshot/09_operators/0905_deg-operator.jpg diff --git a/doc/screenshot/09_operators/0906_xor-operator.png b/doc/screenshot/09_operators/0906_xor-operator.png Binary files differnew file mode 100644 index 0000000..fd05ec3 --- /dev/null +++ b/doc/screenshot/09_operators/0906_xor-operator.png diff --git a/doc/screenshot/09_operators/0907_xor-operator-not-ok.png b/doc/screenshot/09_operators/0907_xor-operator-not-ok.png Binary files differnew file mode 100644 index 0000000..8ec41b3 --- /dev/null +++ b/doc/screenshot/09_operators/0907_xor-operator-not-ok.png diff --git a/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png b/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png Binary files differnew file mode 100644 index 0000000..a4f9a4d --- /dev/null +++ b/doc/screenshot/12_web-components_breadcrumb/1201_simple-breadcrumb.png diff --git a/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png b/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png Binary files differnew file mode 100644 index 0000000..fe3406b --- /dev/null +++ b/doc/screenshot/12_web-components_breadcrumb/1202_return-from-fullscreen.png diff --git a/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png b/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png Binary files differnew file mode 100644 index 0000000..b1daec5 --- /dev/null +++ b/doc/screenshot/12_web-components_breadcrumb/1203_add-to-dashboard.png diff --git a/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png b/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png Binary files differnew file mode 100644 index 0000000..0ba84a9 --- /dev/null +++ b/doc/screenshot/12_web-components_breadcrumb/1204_unlocked_config.png diff --git a/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png b/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png Binary files differnew file mode 100644 index 0000000..80a142f --- /dev/null +++ b/doc/screenshot/13_web-components-tile-renderer/1301_tile-view.png diff --git a/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png b/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png Binary files differnew file mode 100644 index 0000000..a03209d --- /dev/null +++ b/doc/screenshot/13_web-components-tile-renderer/1302_tile-and-subtree.png diff --git a/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png b/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png Binary files differnew file mode 100644 index 0000000..7bacb00 --- /dev/null +++ b/doc/screenshot/14_web-components-tree-renderer/1401_tree-view.png diff --git a/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png b/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png Binary files differnew file mode 100644 index 0000000..b1daec5 --- /dev/null +++ b/doc/screenshot/16_dashboard/1601_add-to-dashboard-link.png diff --git a/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png b/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png Binary files differnew file mode 100644 index 0000000..ab2d255 --- /dev/null +++ b/doc/screenshot/16_dashboard/1602_add_to_dashboard-form.png diff --git a/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png b/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png Binary files differnew file mode 100644 index 0000000..116bf04 --- /dev/null +++ b/doc/screenshot/16_dashboard/1603_businessprocesses_on_dashboard.png diff --git a/doc/screenshot/21_store-config/2101_Pending-Changes.png b/doc/screenshot/21_store-config/2101_Pending-Changes.png Binary files differnew file mode 100644 index 0000000..7e33981 --- /dev/null +++ b/doc/screenshot/21_store-config/2101_Pending-Changes.png diff --git a/doc/screenshot/21_store-config/2102_Store-Config.png b/doc/screenshot/21_store-config/2102_Store-Config.png Binary files differnew file mode 100644 index 0000000..d985786 --- /dev/null +++ b/doc/screenshot/21_store-config/2102_Store-Config.png diff --git a/doc/screenshot/21_store-config/2103_Show-Diff.png b/doc/screenshot/21_store-config/2103_Show-Diff.png Binary files differnew file mode 100644 index 0000000..7025f6c --- /dev/null +++ b/doc/screenshot/21_store-config/2103_Show-Diff.png diff --git a/doc/screenshot/22_upload-config/2201_go-to-upload.png b/doc/screenshot/22_upload-config/2201_go-to-upload.png Binary files differnew file mode 100644 index 0000000..1dda67c --- /dev/null +++ b/doc/screenshot/22_upload-config/2201_go-to-upload.png diff --git a/doc/screenshot/22_upload-config/2202_choose-file.png b/doc/screenshot/22_upload-config/2202_choose-file.png Binary files differnew file mode 100644 index 0000000..a8717dd --- /dev/null +++ b/doc/screenshot/22_upload-config/2202_choose-file.png diff --git a/doc/screenshot/22_upload-config/2203_syntax-error.png b/doc/screenshot/22_upload-config/2203_syntax-error.png Binary files differnew file mode 100644 index 0000000..ca81da0 --- /dev/null +++ b/doc/screenshot/22_upload-config/2203_syntax-error.png diff --git a/doc/screenshot/22_upload-config/2204_duplicate-name.png b/doc/screenshot/22_upload-config/2204_duplicate-name.png Binary files differnew file mode 100644 index 0000000..5f9c809 --- /dev/null +++ b/doc/screenshot/22_upload-config/2204_duplicate-name.png diff --git a/doc/screenshot/81_history/8101_bpaddon-overview.png b/doc/screenshot/81_history/8101_bpaddon-overview.png Binary files differnew file mode 100644 index 0000000..6ae8cb0 --- /dev/null +++ b/doc/screenshot/81_history/8101_bpaddon-overview.png diff --git a/doc/screenshot/81_history/8102_bpaddon-detail.png b/doc/screenshot/81_history/8102_bpaddon-detail.png Binary files differnew file mode 100644 index 0000000..7b38a1e --- /dev/null +++ b/doc/screenshot/81_history/8102_bpaddon-detail.png |