1 # <a id="about-icinga2"></a> About Icinga 2
3 ## <a id="what-is-icinga2"></a> What is Icinga 2?
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.
8 Scalable and extensible, Icinga 2 can monitor large, complex environments across
11 ## <a id="licensing"></a> Licensing
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.
17 ## <a id="support"></a> Support
19 Support for Icinga 2 is available in a number of ways. Please have a look at
20 the [support overview page](https://support.icinga.org).
22 ## <a id="contribute"></a> Contribute
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
28 Please get in touch with the Icinga team at https://www.icinga.org/community/.
30 ### <a id="development"></a> Icinga 2 Development
32 You can follow Icinga 2's development closely by checking
35 * [Development Bug Tracker](https://dev.icinga.org/projects/i2): [How to report a bug?](https://www.icinga.org/icinga/faq/)
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
41 For general support questions, please refer to the [community support channels](https://support.icinga.org).
43 ### <a id="how-to-report-bug-feature-requests"></a> How to Report a Bug or Feature Request
45 More details in the [Icinga FAQ](https://www.icinga.org/icinga/faq/).
47 * [Register](https://exchange.icinga.org/authentication/register) an Icinga account.
48 * Create a new issue at the [Icinga 2 Development Tracker](https://dev.icinga.org/projects/i2).
49 * When reporting a bug, please include the details described in the [Troubleshooting](8-troubleshooting.md#troubleshooting-information-required) chapter (version, configs, logs, etc).
51 ## <a id="whats-new"></a> What's new
53 ### What's New in Version 2.3
63 ## <a id="icinga2-in-a-nutshell"></a> Icinga 2 in a Nutshell
65 * Use [Packages](2-getting-started.md#getting-started)
67 Look for available packages on http://packages.icinga.org or ask your distribution's maintainer.
68 Compiling from source is not recommended.
70 * Real Distributed Architecture
72 [Cluster](4-monitoring-remote-systems.md#distributed-monitoring-high-availability) model for distributed setups, load balancing
73 and High-Availability installations (or a combination of them). On-demand configuration
74 synchronisation between zones is available, but not mandatory (for example when config management
75 tools such as Puppet are used). Secured by TLS with certificates, supporting IPv4 and IPv6.
76 High Availability for DB IDO: Only active on the current zone master, failover happens automatically.
78 * Monitoring Remote Clients
80 Built on proven [cluster](4-monitoring-remote-systems.md#distributed-monitoring-high-availability) stack,
81 [Icinga 2 clients](4-monitoring-remote-systems.md#icinga2-remote-client-monitoring) can be installed acting as remote satellite or
82 agent. Secured communication by TLS with certificates, install them with [CLI commands](5-cli-commands.md#cli-commands),
83 and configure them either locally with discovery on the master, or use them for executing checks and
84 event handlers remotely.
89 Multithreaded and scalable for small embedded systems as well as large scale environments.
90 Running checks every second is no longer a problem and enables real-time monitoring capabilities.
91 Checks, notifications and event handlers [do not block Icinga 2](9-migrating-from-icinga-1x.md#differences-1x-2-async-event-execution)
92 in its operation. Same goes for performance data writers and the external command pipe, or any
93 file writers on disk (`statusdata`).
94 Unlike Icinga 1.x the [daemon reload](9-migrating-from-icinga-1x.md#differences-1x-2-real-reload) happens asynchronously.
95 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.
96 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 parallel allowing fast verification checks.
97 That way you are not blind (anymore) during a configuration reload and benefit from a real scalable architecture.
99 * Integrated CLI with Bash Auto-Completion
101 Enable only the [features](5-cli-commands.md#cli-command-feature) which are currently disabled,
102 [list objects](5-cli-commands.md#cli-command-object) generated from [apply rules](3-monitoring-basics.md#using-apply) or
103 [generate X.509 certificates](5-cli-commands.md#cli-command-pki) for remote clients or cluster setup.
104 Start/stop the Icinga 2 [daemon](5-cli-commands.md#cli-command-daemon) or validate your configuration,
105 [manage and install](5-cli-commands.md#cli-command-node) remote clients and service discovery helped
106 with black- and whitelists.
108 * Modular & flexible [features](5-cli-commands.md#features)
110 Enable only the features you require. Want to use Icinga Web 2 with DB IDO but no status data?
111 No problem! Just enable ido-mysql and disable statusdata. Another example: Graphite should be enabled
112 on a dedicated cluster node. Enable it over there and point it to the carbon cache socket.
114 Combine Icinga 2 Core with web user interfaces: Use [Icinga Web 2](2-getting-started.md#setting-up-icingaweb2), but also
115 Web 1.x or Classic UI or your own preferred addon.
117 * Native support for the [Livestatus protocol](7-livestatus.md#setting-up-livestatus)
119 In Icinga2, the 'Livestatus' protocol is available for use as either a UNIX, or TCP socket.
121 * Native support for [Graphite](3-monitoring-basics.md#graphite-carbon-cache-writer)
123 Icinga 2 still supports writing performance data files for graphing addons, but also adds the
124 capability of writing performance data directly into a Graphite TCP socket simplifying realtime
127 * Native support for writing log events to [GELF](12-object-types.md#objecttype-gelfwriter) receivers (graylog2, Logstash)
129 Icinga 2 will write all check result, state change and notification event logs into a defined
130 [GELF](3-monitoring-basics.md#gelfwriter) input receiver. Natively provided by [graylog2](http://www.graylog2.org),
131 and as additional input type provided by [Logstash](http://logstash.net).
133 * Dynamic configuration language
135 Simple [apply](3-monitoring-basics.md#using-apply) and [assign](10-language-reference.md#group-assign) rules for creating configuration object
136 relationships based on patterns. More advanced features for dynamic object generation using
137 [apply for rules](3-monitoring-basics.md#using-apply-for) helped with arrays and dictionaries for
138 [custom attributes](3-monitoring-basics.md#custom-attributes-apply).
139 Supported with [duration literals](10-language-reference.md#duration-literals) for interval
140 attributes, [expression operators](10-language-reference.md#expression-operators), [function calls](10-language-reference.md#function-calls) for
141 pattern and regex matching and (global) [constants](10-language-reference.md#constants).
142 [Check command configuration](13-icinga-template-library.md#plugin-check-commands) for common plugins is shipped with Icinga 2 as part of the [Icinga Template Library](13-icinga-template-library.md#icinga-template-library).
146 One command to rule them all - supporting optional and conditional [command arguments](3-monitoring-basics.md#command-arguments).
147 [Environment variables](3-monitoring-basics.md#command-environment-variables) exported on-demand populated with
148 runtime evaluated macros.
149 Three types of commands used for different actions: checks, notifications and events.
150 Check timeout for commands instead of a global option. Commands also have custom attributes allowing
151 you to specify default values.
152 There is no plugin output or performance data length restriction anymore compared to Icinga 1.x.
154 * Custom Runtime Macros
156 Access [custom attributes](3-monitoring-basics.md#custom-attributes) with their short name, for example $mysql_user$,
157 or any object attribute, for example $host.notes$. Additional macros with runtime and statistic
158 information are available as well. Use these [runtime macros](3-monitoring-basics.md#runtime-custom-attributes) in
159 the command line, environment variables and custom attribute assignments.
161 * Notifications simplified
163 Multiple [notifications](3-monitoring-basics.md#notifications) for one host or service with existing users
164 and notification commands. No more duplicated contacts for different notification types.
165 Telling notification filters by state and type, even more fine-grained than Icinga 1.x.
166 [Escalation notifications](3-monitoring-basics.md#notification-escalations) and [delayed notifications](#first-notification-delay)
167 are just notifications with an additional begin and/or end time attribute.
169 * Dependencies between Hosts and Services
171 Classic [dependencies](3-monitoring-basics.md#dependencies) between host and parent hosts, and services and parent services work the
172 same way as "mixed" dependencies from a service to a parent host and vice versa. Host checks
173 depending on an upstream link port (as service) are not a problem anymore.
174 No more additional parents settings - host dependencies already define the host parent relationship
175 required for network reachability calculations.
176 Set parent host/services based on [host/service custom attributes](3-monitoring-basics.md#dependencies-apply-custom-attributes)
177 generated from your cloud inventory or CMDB and make your dependency rules simple and short.
179 * [Recurring Downtimes](3-monitoring-basics.md#recurring-downtimes)
181 Forget using cronjobs to set up recurring downtime - you can configure them as Icinga 2 configuration
182 objects and specify their active time window.
184 * Embedded Health Checks
186 No more external statistic tool but an [instance](13-icinga-template-library.md#itl-icinga) and [cluster](13-icinga-template-library.md#itl-icinga-cluster) health
187 check providing direct statistics as performance data for your graphing addon, for example Graphite.
189 * Compatibility with Icinga 1.x
191 All known interfaces are optionally available: [status files](3-monitoring-basics.md#status-data), [logs](3-monitoring-basics.md#compat-logging),
192 [DB IDO](2-getting-started.md#configuring-db-ido) MySQL/PostgreSQL, [performance data](3-monitoring-basics.md#performance-data),
193 [external command pipe](3-monitoring-basics.md#external-commands) and for migration reasons a
194 [checkresult file reader](3-monitoring-basics.md#check-result-files) too.
195 All [Monitoring Plugins](2-getting-started.md#setting-up-check-plugins) can be integrated into Icinga 2 with
196 newly created check command configuration if not already provided.
197 [Configuration migration](9-migrating-from-icinga-1x.md#configuration-migration) is possible through an external migration tool.
199 Detailed [migration hints](9-migrating-from-icinga-1x.md#manual-config-migration-hints) explain migration of the Icinga 1.x
200 configuration objects into the native Icinga 2 configuration schema.
201 Additional information on the differences is documented in the [migration](9-migrating-from-icinga-1x.md#differences-1x-2) chapter.
203 * Configuration Syntax Highlighting
205 Icinga 2 ships [syntax highlighting](2-getting-started.md#configuration-syntax-highlighting) for `vim` and `nano` to help
206 edit your configuration.
208 * Puppet modules, Chef Cookbooks, Ansible Playbooks, Salt Formulas, etc
210 This is a constant work-in-progress. For details checkout https://dev.icinga.org/projects/icinga-tools
211 If you want to contribute to these projects, do not hesitate to contact us at https://support.icinga.org