]> granicus.if.org Git - icinga2/blob - doc/1-about.md
DB IDO: Change schema version to 1.12.0
[icinga2] / doc / 1-about.md
1 # <a id="about-icinga2"></a> About Icinga 2
2
3 ## <a id="what-is-icinga2"></a> What is Icinga 2?
4
5 Icinga 2 is an open source monitoring system which checks the availability of your
6 network resources, notifies users of outages, and generates performance data for reporting.
7
8 Scalable and extensible, Icinga 2 can monitor large, complex environments across
9 multiple locations.
10
11 ## <a id="licensing"></a> Licensing
12
13 Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU
14 General Public License Version 2, you will find a copy of this license in the
15 LICENSE file included in the source package.
16
17 ## <a id="support"></a> Support
18
19 Support for Icinga 2 is available in a number of ways. Please have a look at
20 the support overview page at https://support.icinga.org.
21
22 ## <a id="contribute"></a> Contribute
23
24 There are many ways to contribute to Icinga - whether it be sending patches, testing,
25 reporting bugs, or reviewing and updating the documentation. Every contribution
26 is appreciated!
27
28 Please get in touch with the Icinga team at https://www.icinga.org/community/.
29
30 ## <a id="development"></a> Icinga 2 Development
31
32 You can follow Icinga 2's development closely by checking
33 out these resources:
34
35 * [Development Bug Tracker](https://dev.icinga.org/projects/i2): [How to report a bug?](http://www.icinga.org/faq/how-to-report-a-bug/)
36 * Git Repositories: [main mirror on icinga.org](https://git.icinga.org/?p=icinga2.git;a=summary) [release mirror at github.com](https://github.com/Icinga/icinga2)
37 * [Git Checkins Mailinglist](https://lists.icinga.org/mailman/listinfo/icinga-checkins)
38 * [Development](https://lists.icinga.org/mailman/listinfo/icinga-devel) and [Users](https://lists.icinga.org/mailman/listinfo/icinga-users) Mailinglists
39 * [#icinga-devel on irc.freenode.net](http://webchat.freenode.net/?channels=icinga-devel) including a Git Commit Bot
40
41 For general support questions, please refer to the [community support channels](https://support.icinga.org).
42
43 ## <a id="demo-vm"></a> Demo VM
44
45 Icinga 2 is available as [Vagrant Demo VM](#vagrant).
46
47 ## <a id="whats-new"></a> What's new
48
49 ### What's New in Version 2.2.0
50
51 #### Changes
52
53 * DB IDO schema update to version `1.12.0`
54     * schema files in `lib/db_ido_{mysql,pgsql}/schema`
55 * New CLI commands #7245
56     * `icinga2-{enable,disable}-feature` tool = cli command `icinga2 feature {enable,disable}` #7250
57     * `icinga2-list-objects` tool = cli command `icinga2 object list` #7251
58     * `icinga2-build-{ca,key}` can be used with cli command `icinga2 pki` #7247
59
60 * `python-icinga2` package dropped in favor of cli commands #7245
61 * GraphiteWriter: Add warn/crit/min/max perfdata and downtime_depth stats values #7366 #6946
62
63 #### Issues
64
65
66
67 ### Archive
68
69 Please check the `ChangeLog` file.
70
71 ## <a id="icinga2-in-a-nutshell"></a> Icinga 2 in a Nutshell
72
73 * Use [Packages](#getting-started)
74
75 Look for available packages on http://packages.icinga.org or ask your distribution's maintainer.
76 Compiling from source is not recommended.
77
78 * Real Distributed Architecture
79
80 [Cluster](#distributed-monitoring-high-availability) model for distributed setups, load balancing
81 and High-Availability installations (or a combination of them). On-demand configuration
82 synchronisation between zones is available, but not mandatory (for example when config management
83 tools such as Puppet are used). Secured by SSL x509 certificates, supporting IPv4 and IPv6.
84 High Availability for DB IDO: Only active on the current zone master, failover happens automatically.
85
86 * High Performance
87
88 Multithreaded and scalable for small embedded systems as well as large scale environments.
89 Running checks every second is no longer a problem and enables real-time monitoring capabilities.
90 Checks, notifications and event handlers [do not block Icinga 2](#differences-1x-2-async-event-execution)
91 in its operation. Same goes for performance data writers and the external command pipe, or any
92 file writers on disk (`statusdata`).
93 Unlike Icinga 1.x the [daemon reload](#differences-1x-2-real-reload) happens asynchronously.
94 A child daemon validates the new configuration, the parent process is still doing checks, replicating cluster events, triggering alert notifications, etc. If the configuration validation is ok, all remaining events are synchronized and the child process continues as normal.
95 The DB IDO configuration dump and status/historical event updates also runs asynchronously in a queue not blocking the core anymore. The configuration validation itself runs in paralell allowing fast verification checks.
96 That way you are not blind (anymore) during a configuration reload and benefit from a real scalable architecture.
97
98
99 * Modular & flexible [features](#features)
100
101 Enable only the features you require. Want to use Icinga Web 2 with DB IDO but no status data?
102 No problem! Just enable ido-mysql and disable statusdata. Another example: Graphite should be enabled
103 on a dedicated cluster node. Enable it over there and point it to the carbon cache socket.
104
105 * Native support for the [Livestatus protocol](#setting-up-livestatus)
106
107 In Icinga2, the 'Livestatus' protocol is available for use as either a UNIX, or TCP socket.
108
109 * Native support for [Graphite](#graphite-carbon-cache-writer)
110
111 Icinga 2 still supports writing performance data files for graphing addons, but also adds the
112 capability of writing performance data directly into a Graphite TCP socket simplifying realtime
113 monitoring graphs.
114
115 * Dynamic configuration language
116
117 Simple [apply](#using-apply) and [assign](#group-assign) rules for creating configuration object
118 relationships based on patterns. Supported with [duration literals](#duration-literals) for interval
119 attributes, [expression operators](#expression-operators), [function calls](#function-calls) for
120 pattern and regex matching and (global) [constants](#constants).
121 Sample configuration for common plugins is shipped with Icinga 2 as part of the [Icinga Template Library](#itl).
122
123 * Revamped Commands
124
125 One command to rule them all - supporting optional and conditional [command arguments](#command-arguments).
126 [Environment variables](#command-environment-variables) exported on-demand populated with
127 runtime evaluated macros.
128 Three types of commands used for different actions: checks, notifications and events.
129 Check timeout for commands instead of a global option. Commands also have custom attributes allowing
130 you to specify default values.
131 There is no plugin output or performance data length restriction anymore compared to Icinga 1.x.
132
133 * Custom Runtime Macros
134
135 Access [custom attributes](#custom-attributes) with their short name, for example $mysql_user$,
136 or any object attribute, for example $host.notes$. Additional macros with runtime and statistic
137 information are available as well. Use these [runtime macros](#runtime-custom-attributes) in
138 the command line, environment variables and custom attribute assignments.
139
140 * Notifications simplified
141
142 Multiple [notifications](#notifications) for one host or service with existing users
143 and notification commands. No more duplicated contacts for different notification types.
144 Telling notification filters by state and type, even more fine-grained than Icinga 1.x.
145 [Escalation notifications](#notification-escalations) and [delayed notifications](#first-notification-delay)
146 are just notifications with an additional begin and/or end time attribute.
147
148 * Dependencies between Hosts and Services
149
150 Classic [dependencies](#dependencies) between host and parent hosts, and services and parent services work the
151 same way as "mixed" dependencies from a service to a parent host and vice versa. Host checks
152 depending on an upstream link port (as service) are not a problem anymore.
153 No more additional parents settings - host dependencies already define the host parent relationship
154 required for network reachability calculations.
155
156 * [Recurring Downtimes](#recurring-downtimes)
157
158 Forget using cronjobs to set up recurring downtime - you can configure them as Icinga 2 configuration
159 objects and specify their active time window.
160
161 * Embedded Health Checks
162
163 No more external statistic tool but an [instance](#itl-icinga) and [cluster](#itl-cluster) health
164 check providing direct statistics as performance data for your graphing addon, for example Graphite.
165
166 * Compatibility with Icinga 1.x
167
168 All known interfaces are optionally available: [status files](#status-data), [logs](#compat-logging),
169 [DB IDO](#configuring-ido) MySQL/PostgreSQL, [performance data](#performance-data),
170 [external command pipe](#external-commands) and for migration reasons a
171 [checkresult file reader](#check-result-files) too.
172 All [Monitoring Plugins](#setting-up-check-plugins) can be integrated into Icinga 2 with
173 newly created check command configuration if not already provided.
174 [Configuration migration](#configuration-migration) is possible through an external migration tool.
175
176 Detailed [migration hints](#manual-config-migration-hints) explain migration the Icinga 1.x
177 configuration objects into the native Icinga 2 configuration schema.
178 Additional information on the differences is documented in the [migration](#differences-1x-2) chapter.
179
180 * Configuration Syntax Highlighting
181
182 Icinga 2 ships [syntax highlighting](#configuration-syntax-highlighting) for `vim` and `nano` to help
183 edit your configuration.
184
185 * Puppet modules, Chef Cookbooks, Ansible Playbooks, Salt Formulas, etc
186
187 This is a constant work-in-progress. For details checkout https://dev.icinga.org/projects/icinga-tools
188 If you want to contribute to these projects, do not hesitate to contact us at https://support.icinga.org
189
190 * [Vagrant Demo VM](#vagrant)
191
192 Used for demo cases and development tests. Get Icinga 2 running within minutes and spread the #monitoringlove
193 to your friends and colleagues.