icinga2/doc/1-about.md

30 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.

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/.

If you want to help update this documentation, please read this howto.

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.

What's New

What's New in Version 2.5.3

Changes

This release addresses an issue with PostgreSQL support for the IDO database module.

Bugfixes

  • Bug 12533 (DB IDO): ido pgsql migration from 2.4.0 to 2.5.0 : wrong size for config_hash

What's New in Version 2.5.2

Bugfixes

  • Bug 12527 (DB IDO): Newly added group member tables in the IDO database are not updated
  • Bug 12529 (Checker): Icinga 2 sends SOFT recovery notifications

What's New in Version 2.5.1

Bugfixes

  • Bug 12517 (Notifications): Icinga 2 sends recovery notifications for SOFT NOT-OK states

What's New in Version 2.5.0

Changes

  • InfluxdbWriter feature
  • API
    • New endpoints: /v1/variables and /v1/templates (GET requests), /v1/action/generate-ticket (POST request)
    • State/type filters for notifications/users are now string values (PUT, POST, GET requests)
  • Configuration
    • TimePeriod excludes/includes attributes
    • DateTime object for formatting time strings
    • New prototype methods: Array#filter, Array#unique, Array#map, Array#reduce
    • icinga2.conf now includes plugins-contrib, manubulon, windows-plugins, nscp by default (ITL CheckCommand definitions)
    • Performance improvements (config compiler and validation)
  • CLI
    • 'icinga2 object list' formats state/type filters as string values
    • Compiled config files are now visible with "notice" debug level (hidden by default)
    • CA serial file now uses a hash value (HA cluster w/ 2 CA directories)
  • Cluster
    • There is a known issue with >2 endpoints inside a zone. Icinga 2 will now log a warning.
    • Support for accepted ciphers and minimum TLS version
    • Connection and error logging has been improved.
  • DB IDO
    • Schema upgrade required (2.5.0.sql)
    • Incremental config dump (performance boost)
    • categories attribute is now an array. Previous method is deprecated and to be removed.
    • DbCatLog is not enabled by default anymore.
    • SSL support for MySQL
  • New packages
    • vim-icinga2 for syntax highlighting
    • libicinga2 (Debian), icinga2-libs (RPM) for Icinga Studio packages

Feature

  • Feature 7355 (libicinga): Exclude option for TimePeriod definitions
  • Feature 8401 (Packages): Package for syntax highlighting
  • Feature 9184 (Perfdata): Add timestamp support for GelfWriter
  • Feature 9264 (ITL): Extend CheckCommand definitions for nscp-local
  • Feature 9725 (DB IDO): Add SSL support for the IdoMysqlConnection feature
  • Feature 9839 (Configuration): Implement support for formatting date/time
  • Feature 9858 (Perfdata): Gelf module: expose 'perfdata' fields for 'CHECK_RESULT' events
  • Feature 10140 (libicinga): Remove the deprecated IcingaStatusWriter feature
  • Feature 10480 (Perfdata): Add InfluxDbWriter feature
  • Feature 10553 (Documentation): Update SELinux documentation
  • Feature 10669 (ITL): Add IPv4/IPv6 support to the rest of the monitoring-plugins
  • Feature 10722 (ITL): icinga2.conf: Include plugins-contrib, manubulon, windows-plugins, nscp by default
  • Feature 10816 (libbase): Add name attribute for WorkQueue class
  • Feature 10952 (Packages): Provide packages for icinga-studio on Fedora
  • Feature 11063 (API): Implement SSL cipher configuration support for the API feature
  • Feature 11290 (API): ApiListener: Force server's preferred cipher
  • Feature 11292 (API): ApiListener: Make minimum TLS version configurable
  • Feature 11359 (ITL): Add "retries" option to check_snmp command
  • Feature 11419 (Configuration): Config parser should not log names of included files by default
  • Feature 11423 (libicinga): Cleanup downtimes created by ScheduleDowntime
  • Feature 11445 (Configuration): Allow strings in state/type filters
  • Feature 11599 (Documentation): Documentation review
  • Feature 11612 (Configuration): Improve performance for field accesses
  • Feature 11623 (Installation): Add script for automatically cherry-picking commits for minor versions
  • Feature 11659 (Configuration): Remove the (unused) 'inherits' keyword
  • Feature 11706 (API): Improve logging for HTTP API requests
  • Feature 11739 (Packages): Windows Installer: Remove dependency on KB2999226 package
  • Feature 11772 (Cluster): Add lag threshold for cluster-zone check
  • Feature 11837 (Documentation): Use HTTPS for debmon.org links in the documentation
  • Feature 11869 (ITL): Add CIM port parameter for esxi_hardware CheckCommand
  • Feature 11875 (Tests): Add debugging mode for Utility::GetTime
  • Feature 11931 (ITL): Adding option to access ifName for manubulon snmp-interface check command
  • Feature 11941 (API): Support for enumerating available templates via the API
  • Feature 11955 (API): Implement support for getting a list of global variables from the API
  • Feature 11967 (DB IDO): Update DB IDO schema version to 1.14.1
  • Feature 11968 (DB IDO): Enhance IDO check with schema version info
  • Feature 11970 (ITL): add check command for plugin check_apache_status
  • Feature 12006 (ITL): Add check command definitions for kdc and rbl
  • Feature 12018 (Graphite): Add acknowledgement type to Graphite, InfluxDB, OpenTSDB metadata
  • Feature 12024 (DB IDO): Change Ido*Connection 'categories' attribute to an array
  • Feature 12041 (API): API: Add missing downtime_depth attribute
  • Feature 12061 (ITL): Add check command definition for db2_health
  • Feature 12106 (DB IDO): Do not populate logentries table by default
  • Feature 12116 (Cluster): Enhance client disconnect message for "No data received on new API connection."
  • Feature 12189 (ITL): Add support for "-A" command line switch to CheckCommand "snmp-process"
  • Feature 12194 (Cluster): Improve log message for connecting nodes without configured Endpoint object
  • Feature 12201 (Cluster): Improve error messages for failed certificate validation
  • Feature 12215 (Cluster): Include IP address and port in the "New connection" log message
  • Feature 12221 (ITL): A lot of missing parameters for (latest) mysql_health
  • Feature 12222 (Cluster): Log a warning if there are more than 2 zone endpoint members
  • Feature 12234 (CLI): Add history for icinga2 console
  • Feature 12247 (Configuration): Add map/reduce and filter functionality for the Array class
  • Feature 12254 (API): Remove obsolete debug log message
  • Feature 12256 (ITL): Add check command definition for check_graphite
  • Feature 12287 (Cluster): Enhance TLS handshake error messages with connection information
  • Feature 12304 (Notifications): Add the notification type into the log message
  • Feature 12314 (ITL): Add command definition for check_mysql_query
  • Feature 12327 (API): Support for determining the Icinga 2 version via the API
  • Feature 12329 (libicinga): Implement process_check_result script method for the Checkable class
  • Feature 12336 (libbase): Improve logging for the WorkQueue class
  • Feature 12338 (Configuration): Move internal script functions into the 'Internal' namespace
  • Feature 12386 (Documentation): Rewrite Client and Cluster chapter and; add service monitoring chapter
  • Feature 12389 (libbase): Include compiler name/version and build host name in --version
  • Feature 12392 (ITL): Add custom variables for all check_swap arguments
  • Feature 12393 (libbase): Implement support for marking functions as deprecated
  • Feature 12407 (CLI): Implement support for inspecting variables with LLDB/GDB
  • Feature 12408 (Configuration): Implement support for namespaces
  • Feature 12412 (Documentation): Add URL and short description for Monitoring Plugins inside the ITL documentation
  • Feature 12424 (ITL): Add perfsyntax parameter to nscp-local-counter CheckCommand
  • Feature 12426 (Configuration): Implement comparison operators for the Array class
  • Feature 12433 (API): Add API action for generating a PKI ticket
  • Feature 12434 (DB IDO): Remove unused code from the IDO classes
  • Feature 12435 (DB IDO): Incremental updates for the IDO database
  • Feature 12448 (libbase): Improve performance for type lookups
  • Feature 12450 (Cluster): Improve performance for Endpoint config validation
  • Feature 12457 (libbase): Remove unnecessary Dictionary::Contains calls
  • Feature 12468 (ITL): Add interfacetable CheckCommand options --trafficwithpkt and --snmp-maxmsgsize
  • Feature 12477 (Documentation): Development docs: Add own section for gdb backtrace from a running process
  • Feature 12481 (libbase): Remove some unused #includes

Bugfixes

  • Bug 7354 (libicinga): Disable immediate hard state after first checkresult
  • Bug 9242 (Cluster): Custom notification external commands do not work in a master-master setup
  • Bug 9848 (libbase): Function::Invoke should optionally register ScriptFrame
  • Bug 10061 (DB IDO): IDO: icinga_host/service_groups alias columns are TEXT columns
  • Bug 10066 (DB IDO): Missing indexes for icinga_endpoints* and icinga_zones* tables in DB IDO schema
  • Bug 10069 (DB IDO): IDO: check_source should not be a TEXT field
  • Bug 10070 (DB IDO): IDO: there is no usable object index on icinga_{scheduleddowntime,comments}
  • Bug 10075 (libbase): Race condition in CreatePipeOverlapped
  • Bug 10363 (Notifications): Notification times w/ empty begin/end specifications prevent sending notifications
  • Bug 10570 (API): /v1 returns HTML even if JSON is requested
  • Bug 10903 (Perfdata): GELF multi-line output
  • Bug 10937 (Configuration): High CPU usage with self-referenced parent zone config
  • Bug 11182 (DB IDO): IDO: entry_time of all comments is set to the date and time when Icinga 2 was restarted
  • Bug 11196 (Cluster): High load when pinning command endpoint on HA cluster
  • Bug 11483 (libicinga): Numbers are not properly formatted in runtime macro strings
  • Bug 11562 (Notifications): last_problem_notification should be synced in HA cluster
  • Bug 11590 (Notifications): notification interval = 0 not honoured in HA clusters
  • Bug 11622 (Configuration): Don't allow flow control keywords outside of other flow control constructs
  • Bug 11648 (Packages): Reload permission error with SELinux
  • Bug 11650 (Packages): RPM update starts disabled icinga2 service
  • Bug 11688 (DB IDO): Outdated downtime/comments not removed from IDO database (restart)
  • Bug 11730 (libicinga): Icinga 2 client gets killed during network scans
  • Bug 11782 (Packages): Incorrect filter in pick.py
  • Bug 11793 (Documentation): node setup: Add a note for --endpoint syntax for client-master connection
  • Bug 11817 (Installation): Windows: Error with repository handler (missing /var/lib/icinga2/api/repository path)
  • Bug 11823 (DB IDO): Volatile check results for OK->OK transitions are logged into DB IDO statehistory
  • Bug 11825 (libicinga): Problems with check scheduling for HARD state changes (standalone/command_endpoint)
  • Bug 11832 (Tests): Boost tests are missing a dependency on libmethods
  • Bug 11847 (Documentation): Missing quotes for API action URL
  • Bug 11851 (Notifications): Downtime notifications do not pass author and comment
  • Bug 11862 (libicinga): SOFT OK-state after returning from a soft state
  • Bug 11887 (ITL): Add "fuse.gvfsd-fuse" to the list of excluded file systems for check_disk
  • Bug 11890 (Configuration): Config validation should not delete comments/downtimes w/o reference
  • Bug 11894 (Configuration): Incorrect custom variable name in the hosts.conf example config
  • Bug 11898 (libicinga): last SOFT state should be hard (max_check_attempts)
  • Bug 11899 (libicinga): Flapping Notifications dependent on state change
  • Bug 11903 (Documentation): Fix systemd client command formatting
  • Bug 11905 (Documentation): Improve "Endpoint" documentation
  • Bug 11926 (API): Trying to delete an object protected by a permissions filter, ends up deleting all objects that match the filter instead
  • Bug 11933 (DB IDO): SOFT state changes with the same state are not logged
  • Bug 11962 (DB IDO): Overflow in current_notification_number column in DB IDO MySQL
  • Bug 11991 (Documentation): Incorrect URL for API examples in the documentation
  • Bug 11993 (DB IDO): Comment/Downtime delete queries are slow
  • Bug 12003 (libbase): Hang in TlsStream::Handshake
  • Bug 12008 (Documentation): Add a note about creating Zone/Endpoint objects with the API
  • Bug 12016 (Configuration): ConfigWriter::EmitScope incorrectly quotes dictionary keys
  • Bug 12022 (Configuration): Icinga crashes when using include_recursive in an object definition
  • Bug 12029 (Documentation): Migration docs still show unsupported CHANGE_*MODATTR external commands
  • Bug 12044 (Packages): Icinga fails to build with OpenSSL 1.1.0
  • Bug 12046 (Documentation): Typo in Manubulon CheckCommand documentation
  • Bug 12067 (Documentation): Documentation: Setting up Plugins section is broken
  • Bug 12077 (Documentation): Add a note to the docs that API POST updates to custom attributes/groups won't trigger re-evaluation
  • Bug 12085 (DB IDO): deadlock in ido reconnect
  • Bug 12092 (API): Icinga incorrectly disconnects all endpoints if one has a wrong certificate
  • Bug 12098 (Configuration): include_recursive should gracefully handle inaccessible files
  • Bug 12099 (Packages): Build fails with Visual Studio 2013
  • Bug 12100 (libbase): Ensure to clear the SSL error queue before calling SSL_{read,write,do_handshake}
  • Bug 12107 (DB IDO): Add missing index on state history for DB IDO cleanup
  • Bug 12135 (ITL): ITL: check_iftraffic64.pl default values, wrong postfix value in CheckCommand
  • Bug 12144 (Documentation): pkg-config is not listed as a build requirement in INSTALL.md
  • Bug 12147 (DB IDO): IDO module starts threads before daemonize
  • Bug 12179 (Cluster): Duplicate messages for command_endpoint w/ master and satellite
  • Bug 12180 (Cluster): CheckerComponent sometimes fails to schedule checks in time
  • Bug 12193 (Cluster): Increase cluster reconnect interval
  • Bug 12199 (API): Fix URL encoding for '&'
  • Bug 12204 (Documentation): Improve author information about check_yum
  • Bug 12210 (DB IDO): Do not clear {host,service,contact}group_members tables on restart
  • Bug 12216 (libicinga): icinga check reports "-1" for minimum latency and execution time and only uptime has a number but 0
  • Bug 12217 (Documentation): Incorrect documentation about apply rules in zones.d directories
  • Bug 12219 (Documentation): Missing explanation for three level clusters with CSR auto-signing
  • Bug 12225 (libicinga): Icinga stats min_execution_time and max_execution_time are invalid
  • Bug 12227 (Perfdata): Incorrect escaping / formatting of perfdata to InfluxDB
  • Bug 12237 (Installation): Increase default systemd timeout
  • Bug 12257 (Notifications): Notification interval mistimed
  • Bug 12259 (Documentation): Incorrect API permission name for /v1/status in the documentation
  • Bug 12267 (Notifications): Multiple notifications when master fails
  • Bug 12274 (ITL): -q option for check_ntp_time is wrong
  • Bug 12288 (DB IDO): Change the way outdated comments/downtimes are deleted on restart
  • Bug 12293 (Notifications): Missing notification for recovery during downtime
  • Bug 12302 (Cluster): Remove obsolete README files in tools/syntax
  • Bug 12310 (Notifications): Notification sent too fast when one master fails
  • Bug 12318 (Configuration): Icinga doesn't delete temporary icinga2.debug file when config validation fails
  • Bug 12331 (libbase): Fix building Icinga with -fvisibility=hidden
  • Bug 12333 (Notifications): Incorrect downtime notification events
  • Bug 12334 (libbase): Handle I/O errors while writing the Icinga state file more gracefully
  • Bug 12390 (libbase): Disallow casting "" to an Object
  • Bug 12391 (libbase): Don't violate POSIX by ensuring that the argument to usleep(3) is less than 1000000
  • Bug 12395 (libicinga): Flexible downtimes should be removed after trigger_time+duration
  • Bug 12401 (DB IDO): Fixed downtime start does not update actual_start_time
  • Bug 12402 (Notifications): Notification resent, even if interval = 0
  • Bug 12404 (Notifications): Add log message if notifications are forced (i.e. filters are not checked)
  • Bug 12409 (Configuration): 'use' keyword cannot be used with templates
  • Bug 12416 (Documentation): The description for the http_certificate attribute doesn't have the right default value
  • Bug 12417 (DB IDO): IDO does duplicate config updates
  • Bug 12418 (DB IDO): IDO marks objects as inactive on shutdown
  • Bug 12422 (CLI): pki sign-csr does not log where it is writing the certificate file
  • Bug 12425 (libicinga): CompatUtility::GetCheckableNotificationStateFilter is returning an incorrect value
  • Bug 12428 (DB IDO): Fix the "ido" check command for use with command_endpoint
  • Bug 12430 (DB IDO): ido CheckCommand returns returns "Could not connect to database server" when HA enabled
  • Bug 12432 (Cluster): Only allow sending command_endpoint checks to directly connected child zones
  • Bug 12438 (libbase): Replace GetType()->GetName() calls with GetReflectionType()->GetName()
  • Bug 12442 (Documentation): Missing documentation for "legacy-timeperiod" template
  • Bug 12452 (Installation): Remove unused functions from icinga-installer
  • Bug 12453 (libbase): Use hash-based serial numbers for new certificates
  • Bug 12454 (API): API: action schedule-downtime requires a duration also when fixed is true
  • Bug 12458 (DB IDO): Insert fails for the icinga_scheduleddowntime table due to duplicate key
  • Bug 12459 (DB IDO): Query for customvariablestatus incorrectly updates the host's/service's insert ID
  • Bug 12460 (Cluster): DB IDO started before daemonizing (no systemd)
  • Bug 12461 (DB IDO): IDO query fails due to key contraint violation for the icinga_customvariablestatus table
  • Bug 12464 (API): API: events for DowntimeTriggered does not provide needed information
  • Bug 12473 (Documentation): Docs: API example uses wrong attribute name
  • Bug 12474 (libmethods): ClrCheck is null on *nix
  • Bug 12475 (Cluster): Incorrect certificate validation error message
  • Bug 12487 (Configuration): Memory leak when using closures
  • Bug 12488 (Documentation): Typo in Notification object documentation