icinga2/doc/1-about.md

13 KiB

About Icinga 2

What is Icinga 2?

Icinga 2 is an open source monitoring system which checks the availability of your network resources, notifies users of outages, and generates performance data for reporting.

Scalable and extensible, Icinga 2 can monitor large, complex environments across multiple locations.

Licensing

Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU General Public License Version 2, you will find a copy of this license in the LICENSE file included in the source package.

Support

Support for Icinga 2 is available in a number of ways. Please have a look at the support overview page at https://support.icinga.org.

Contribute

There are many ways to contribute to Icinga - whether it be sending patches, testing, reporting bugs, or reviewing and updating the documentation. Every contribution is appreciated!

Please get in touch with the Icinga team at https://www.icinga.org/community/.

Icinga 2 Development

You can follow Icinga 2's development closely by checking out these resources:

For general support questions, please refer to the community support channels.

How to Report a Bug or Feature Request

More details in the Icinga FAQ.

Demo VM

Icinga 2 is available as Vagrant Demo VM.

What's new

What's New in Version 2.2.0

Changes

  • DB IDO schema update to version 1.12.0
    • schema files in lib/db_ido_{mysql,pgsql}/schema (source)
    • Table programstatus: New column program_version
    • Table customvariables and customvariablestatus: New column is_json (required for custom attribute array/dictionary support)
  • New features
    • GelfWriter: Logging check results, state changes, notifications to GELF (graylog2, logstash) #7619
  • New CLI commands #7245
    • icinga2 feature {enable,disable} replaces icinga2-{enable,disable}-feature script #7250
    • icinga2 object list replaces icinga2-list-objects script #7251
    • icinga2 pki replaces icinga2-build-{ca,key} scripts #7247
    • icinga2 repository manages /etc/icinga2/repository.d which must be included in icinga2.conf #7255
    • icinga2 node cli command provides node (master, satellite, agent) setup (wizard) and management functionality #7248
    • bash auto-completion & terminal colors #7396
  • Configuration
    • Former localhost example host is now defined in hosts.conf #7594
    • All example services moved into advanced apply rules in services.conf
    • Updated downtimes configuration example in downtimes.conf #7472
    • Updated notification apply example in notifications.conf #7594
    • Support for object attribute 'zone' #7400
    • Support setting object variables in apply rules #7479
    • Support arrays and dictionaries in custom attributes #6544 #7560
    • Add apply for rules for advanced dynamic object generation #7561
  • Cluster
    • Add CSR Auto-Signing support using generated ticket #7244
  • Perfdata
    • PerfdataWriter: Don't change perfdata, pass through from plugins #7268
    • GraphiteWriter: Add warn/crit/min/max perfdata and downtime_depth stats values #7366 #6946
  • Packages
    • python-icinga2 package dropped in favor of integrated cli commands #7245
    • Windows Installer for the agent parts #7243

Note

Please remove conf.d/hosts/localhost* after verifying your updated configuration!

Issues

Archive

Please check the ChangeLog file.

Icinga 2 in a Nutshell

Look for available packages on http://packages.icinga.org or ask your distribution's maintainer. Compiling from source is not recommended.

  • Real Distributed Architecture

Cluster model for distributed setups, load balancing and High-Availability installations (or a combination of them). On-demand configuration synchronisation between zones is available, but not mandatory (for example when config management tools such as Puppet are used). Secured by SSL x509 certificates, supporting IPv4 and IPv6. High Availability for DB IDO: Only active on the current zone master, failover happens automatically.

  • Monitoring Remote Clients

Built on proven cluster stack, Icinga 2 clients can be installed acting as remote satellite or agent. Secured communication by SSL x509 certificates, install them with cli commands, and configure them either locally with discovery on the master, or use them for executing checks and event handlers remotely.

  • High Performance

Multithreaded and scalable for small embedded systems as well as large scale environments. Running checks every second is no longer a problem and enables real-time monitoring capabilities. Checks, notifications and event handlers do not block Icinga 2 in its operation. Same goes for performance data writers and the external command pipe, or any file writers on disk (statusdata). Unlike Icinga 1.x the daemon reload happens asynchronously. 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. 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. That way you are not blind (anymore) during a configuration reload and benefit from a real scalable architecture.

  • Integrated CLI with Bash Auto-Completion

Enable only the features which are currently disabled, list objects generated from apply rules or generate SSL x509 certificates for remote clients or cluster setup. Start/stop the Icinga 2 daemon or validate your configuration, manage and install remote clients and service discovery helped with black- and whitelists.

Enable only the features you require. Want to use Icinga Web 2 with DB IDO but no status data? No problem! Just enable ido-mysql and disable statusdata. Another example: Graphite should be enabled on a dedicated cluster node. Enable it over there and point it to the carbon cache socket.

Combine Icinga 2 Core with web user interfaces: Use Icinga Web 2, but also Web 1.x or Classic UI or your own preferred addon.

In Icinga2, the 'Livestatus' protocol is available for use as either a UNIX, or TCP socket.

Icinga 2 still supports writing performance data files for graphing addons, but also adds the capability of writing performance data directly into a Graphite TCP socket simplifying realtime monitoring graphs.

  • Native support for writing log events to GELF receivers (graylog2, Logstash)

Icinga 2 will write all check result, state change and notification event logs into a defined GELF input receiver. Natively provided by graylog2, and as additional input type provided by Logstash.

  • Dynamic configuration language

Simple apply and assign rules for creating configuration object relationships based on patterns. More advanced features for dynamic object generation using apply for rules helped with arrays and dictionaries for custom attributes. Supported with duration literals for interval attributes, expression operators, function calls for pattern and regex matching and (global) constants. Check command configuration for common plugins is shipped with Icinga 2 as part of the Icinga Template Library.

  • Revamped Commands

One command to rule them all - supporting optional and conditional command arguments. Environment variables exported on-demand populated with runtime evaluated macros. Three types of commands used for different actions: checks, notifications and events. Check timeout for commands instead of a global option. Commands also have custom attributes allowing you to specify default values. There is no plugin output or performance data length restriction anymore compared to Icinga 1.x.

  • Custom Runtime Macros

Access custom attributes with their short name, for example mysql_user, or any object attribute, for example host.notes. Additional macros with runtime and statistic information are available as well. Use these runtime macros in the command line, environment variables and custom attribute assignments.

  • Notifications simplified

Multiple notifications for one host or service with existing users and notification commands. No more duplicated contacts for different notification types. Telling notification filters by state and type, even more fine-grained than Icinga 1.x. Escalation notifications and delayed notifications are just notifications with an additional begin and/or end time attribute.

  • Dependencies between Hosts and Services

Classic dependencies between host and parent hosts, and services and parent services work the same way as "mixed" dependencies from a service to a parent host and vice versa. Host checks depending on an upstream link port (as service) are not a problem anymore. No more additional parents settings - host dependencies already define the host parent relationship required for network reachability calculations. Set parent host/services based on host/service custom attributes generated from your cloud inventory or CMDB and make your dependency rules simple and short.

Forget using cronjobs to set up recurring downtime - you can configure them as Icinga 2 configuration objects and specify their active time window.

  • Embedded Health Checks

No more external statistic tool but an instance and cluster health check providing direct statistics as performance data for your graphing addon, for example Graphite.

  • Compatibility with Icinga 1.x

All known interfaces are optionally available: status files, logs, DB IDO MySQL/PostgreSQL, performance data, external command pipe and for migration reasons a checkresult file reader too. All Monitoring Plugins can be integrated into Icinga 2 with newly created check command configuration if not already provided. Configuration migration is possible through an external migration tool.

Detailed migration hints explain migration of the Icinga 1.x configuration objects into the native Icinga 2 configuration schema. Additional information on the differences is documented in the migration chapter.

  • Configuration Syntax Highlighting

Icinga 2 ships syntax highlighting for vim and nano to help edit your configuration.

  • Puppet modules, Chef Cookbooks, Ansible Playbooks, Salt Formulas, etc

This is a constant work-in-progress. For details checkout https://dev.icinga.org/projects/icinga-tools If you want to contribute to these projects, do not hesitate to contact us at https://support.icinga.org

Used for demo cases and development tests. Get Icinga 2 running within minutes and spread the #monitoringlove to your friends and colleagues.