# Icinga 2.x CHANGELOG Please check [doc/1-about.md]. ## What's New ### What's New in Version 2.2.1 #### Changes * Support arrays in [command argument macros](#command-passing-parameters) #6709 * Allows to define multiple parameters for [nrpe -a](#plugin-check-command-nrpe), [nscp -l](#plugin-check-command-nscp), [disk -p](#plugin-check-command-disk), [dns -a](#plugin-check-command-dns). * Bugfixes #### Issues * Feature #6709: Support for arrays in macros * Feature #7463: Update spec file to use yajl-devel * Feature #7739: The classicui Apache conf doesn't support Apache 2.4 * Feature #7747: Increase default timeout for NRPE checks * Feature #7867: Document how arrays in macros work * Bug #7173: service icinga2 status gives wrong information when run as unprivileged user * Bug #7602: livestatus large amount of submitting unix socket command results in broken pipes * Bug #7613: icinga2 checkconfig should fail if group given for command files does not exist * Bug #7671: object and template with the same name generate duplicate object error * Bug #7708: Built-in commands shouldn't be run on the master instance in remote command execution mode * Bug #7725: Windows wizard uses incorrect CLI command * Bug #7726: Windows wizard is missing --zone argument * Bug #7730: Restart Icinga - Error Restoring program state from file '/var/lib/icinga2/icinga2.state' * Bug #7735: 2.2.0 has out-of-date icinga2 man page * Bug #7738: Systemd rpm scripts are run in wrong package * Bug #7740: /usr/sbin/icinga-prepare-dirs conflicts in the bin and common package * Bug #7741: Icinga 2.2 misses the build requirement libyajl-devel for SUSE distributions * Bug #7743: Icinga2 node add failed with unhandled exception * Bug #7754: Incorrect error message for localhost * Bug #7770: Objects created with node update-config can't be seen in Classic UI * Bug #7786: Move the icinga2-prepare-dirs script elsewhere * Bug #7806: !in operator returns incorrect result * Bug #7828: Verify if master radio box is disabled in the Windows wizard * Bug #7847: Wrong information in section "Linux Client Setup Wizard for Remote Monitoring" * Bug #7862: Segfault in CA handling * Bug #7868: Documentation: Explain how unresolved macros are handled * Bug #7890: Wrong permission in run directory after restart * Bug #7896: Fix Apache config in the Debian package ### 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](#gelfwriter): Logging check results, state changes, notifications to GELF (graylog2, logstash) #7619 * Agent/Client/Node framework #7249 * Windows plugins for the client/agent parts #7242 #7243 * 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 * `icinga2 daemon` for existing daemon arguments (`-c`, `-C`). Removed `-u` and `-g` parameters in favor of [init.conf](#init-conf). * bash auto-completion & terminal colors #7396 * Configuration * Former `localhost` example host is now defined in [hosts.conf](#hosts-conf) #7594 * All example services moved into advanced apply rules in [services.conf](#services-conf) * Updated downtimes configuration example in [downtimes.conf](#downtimes-conf) #7472 * Updated notification apply example in [notifications.conf](#notifications-conf) #7594 * Support for object attribute 'zone' #7400 * Support setting [object variables in apply rules](#dependencies-apply-custom-attributes) #7479 * Support arrays and dictionaries in [custom attributes](#custom-attributes-apply) #6544 #7560 * Add [apply for rules](#using-apply-for) for advanced dynamic object generation #7561 * New attribute `accept_commands` for [ApiListener](#objecttype-apilistener) #7559 * New [init.conf](#init-conf) file included first containing new constants `RunAsUser` and `RunAsGroup`. * Cluster * Add [CSR Auto-Signing support](#csr-autosigning-requirements) using generated ticket #7244 * Allow to [execute remote commands](#icinga2-remote-monitoring-client-command-execution) on endpoint clients #7559 * Perfdata * [PerfdataWriter](#writing-performance-data-files): Don't change perfdata, pass through from plugins #7268 * [GraphiteWriter](#graphite-carbon-cache-writer): 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 * Feature #6544: Support for array in custom variable. * Feature #6946: Add downtime depth as statistic metric for GraphiteWriter * Feature #7187: Document how to use multiple assign/ignore statements with logical "and" & "or" * Feature #7199: Cli commands: add filter capability to 'object list' * Feature #7241: Windows Wizard * Feature #7242: Windows plugins * Feature #7243: Windows installer * Feature #7244: CSR auto-signing * Feature #7245: Cli commands * Feature #7246: Cli command framework * Feature #7247: Cli command: pki * Feature #7248: Cli command: Node * Feature #7249: Node Repository * Feature #7250: Cli command: Feature * Feature #7251: Cli command: Object * Feature #7252: Cli command: SCM * Feature #7253: Cli Commands: Node Repository Blacklist & Whitelist * Feature #7254: Documentation: Agent/Satellite Setup * Feature #7255: Cli command: Repository * Feature #7262: macro processor needs an array printer * Feature #7319: Documentation: Add support for locally-scoped variables for host/service in applied Dependency * Feature #7334: GraphiteWriter: Add support for customized metric prefix names * Feature #7356: Documentation: Cli Commands * Feature #7366: GraphiteWriter: Add warn/crit/min/max perfdata values if existing * Feature #7370: CLI command: variable * Feature #7391: Add program_version column to programstatus table * Feature #7396: Implement generic color support for terminals * Feature #7400: Remove zone keyword and allow to use object attribute 'zone' * Feature #7415: CLI: List disabled features in feature list too * Feature #7421: Add -h next to --help * Feature #7423: Cli command: Node Setup * Feature #7452: Replace cJSON with a better JSON parser * Feature #7465: Cli command: Node Setup Wizard (for Satellites and Agents) * Feature #7467: Remove virtual agent name feature for localhost * Feature #7472: Update downtimes.conf example config * Feature #7478: Documentation: Mention 'icinga2 object list' in config validation * Feature #7479: Set host/service variable in apply rules * Feature #7480: Documentation: Add host/services variables in apply rules * Feature #7504: Documentation: Revamp getting started with 1 host and multiple (service) applies * Feature #7514: Documentation: Move troubleshooting after the getting started chapter * Feature #7524: Documentation: Explain how to manage agent config in central repository * Feature #7543: Documentation for arrays & dictionaries in custom attributes and their usage in apply rules for * Feature #7559: Execute remote commands on the agent w/o local objects by passing custom attributes * Feature #7560: Support dictionaries in custom attributes * Feature #7561: Generate objects using apply with foreach in arrays or dictionaries (key => value) * Feature #7566: Implement support for arbitrarily complex indexers * Feature #7594: Revamp sample configuration: add NodeName host, move services into apply rules schema * Feature #7596: Plugin Check Commands: disk is missing '-p', 'x' parameter * Feature #7619: Add GelfWriter for writing log events to graylog2/logstash * Feature #7620: Documentation: Update Icinga Web 2 installation * Feature #7622: Icinga 2 should use less RAM * Feature #7680: Conditionally enable MySQL and PostgresSQL, add support for FreeBSD and DragonFlyBSD * Bug #6547: delaying notifications with times.begin should postpone first notification into that window * Bug #7257: default value for "disable_notifications" in service dependencies is set to "false" * Bug #7268: Icinga2 changes perfdata order and removes maximum * Bug #7272: icinga2 returns exponential perfdata format with check_nt * Bug #7275: snmp-load checkcommand has wrong threshold syntax * Bug #7276: SLES (Suse Linux Enterprise Server) 11 SP3 package dependency failure * Bug #7302: ITL: check_procs and check_http are missing arguments * Bug #7324: config parser crashes on unknown attribute in assign * Bug #7327: Icinga2 docs: link supported operators from sections about apply rules * Bug #7331: Error messages for invalid imports missing * Bug #7338: Docs: Default command timeout is 60s not 5m * Bug #7339: Importing a CheckCommand in a NotificationCommand results in an exception without stacktrace. * Bug #7349: Documentation: Wrong check command for snmp-int(erface) * Bug #7351: snmp-load checkcommand has a wrong "-T" param value * Bug #7359: Setting snmp_v2 can cause snmp-manubulon-command derived checks to fail * Bug #7365: Typo for "HTTP Checks" match in groups.conf * Bug #7369: Fix reading perfdata in compat/checkresultreader * Bug #7372: custom attribute name 'type' causes empty vars dictionary * Bug #7373: Wrong usermod command for external command pipe setup * Bug #7378: Commands are auto-completed when they shouldn't be * Bug #7379: failed en/disable feature should return error * Bug #7380: Debian package root permissions interfere with icinga2 cli commands as icinga user * Bug #7392: Schema upgrade files are missing in /usr/share/icinga2-ido-{mysql,pgsql} * Bug #7417: CMake warnings on OS X * Bug #7428: Documentation: 1-about contribute links to non-existing report a bug howto * Bug #7433: Unity build fails on RHEL 5 * Bug #7446: When replaying logs the secobj attribute is ignored * Bug #7473: Performance data via API is broken * Bug #7475: can't assign Service to Host in nested HostGroup * Bug #7477: Fix typos and other small corrections in documentation * Bug #7482: OnStateLoaded isn't called for objects which don't have any state * Bug #7483: Hosts/services should not have themselves as parents * Bug #7495: Utility::GetFQDN doesn't work on OS X * Bug #7503: Icinga2 fails to start due to configuration errors * Bug #7520: Use ScriptVariable::Get for RunAsUser/RunAsGroup * Bug #7536: Object list dump erraneously evaluates template definitions * Bug #7537: Nesting an object in a template causes the template to become non-abstract * Bug #7538: There is no __name available to nested objects * Bug #7573: link missing in documentation about livestatus * Bug #7577: Invalid checkresult object causes Icinga 2 to crash * Bug #7579: only notify users on recovery which have been notified before (not-ok state) * Bug #7585: Nested templates do not work (anymore) * Bug #7586: Exception when executing check * Bug #7597: Compilation Error with boost 1.56 under Windows * Bug #7599: Plugin execution on Windows does not work * Bug #7617: mkclass crashes when called without arguments * Bug #7623: Missing state filter 'OK' must not prevent recovery notifications being sent * Bug #7624: Installation on Windows fails * Bug #7625: IDO module crashes on Windows * Bug #7646: Get rid of static boost::mutex variables * Bug #7648: Unit tests fail to run * Bug #7650: Wrong set of dependency state when a host depends on a service * Bug #7681: CreateProcess fails on Windows 7 * Bug #7688: DebugInfo is missing for nested dictionaries ### What's New in Version 2.1.1 #### Issues * Bug #6147: Link libcJSON against libm * Bug #6696: make test fails on openbsd * Bug #6841: Too many queued messages * Bug #6862: SSL_read errors during restart * Bug #6981: SSL errors with interleaved SSL_read/write * Bug #7029: icinga2.spec: files-attr-not-set for python-icinga2 package * Bug #7032: "Error parsing performance data" in spite of "enable_perfdata = false" * Bug #7036: Remove validator for the Script type * Bug #7037: icinga2-list-objects doesn't work with Python 3 * Bug #7038: Fix rpmlint errors * Bug #7042: icinga2-list-objects complains about Umlauts and stops output * Bug #7044: icinga2 init-script terminates with exit code 0 if $DAEMON is not in place or not executable * Bug #7047: service icinga2 status - prints cat error if the service is stopped * Bug #7058: Exit code is not initialized for some failed checks * Bug #7065: pipe2 returns ENOSYS on GNU Hurd and Debian kfreebsd * Bug #7072: GraphiteWriter should ignore empty perfdata value * Bug #7080: Missing differentiation between service and systemctl * Bug #7096: new SSL Errors with too many queued messages * Bug #7115: Build fails on Haiku * Bug #7123: Manubulon-Plugin conf Filename wrong * Bug #7139: GNUInstallDirs.cmake outdated * Bug #7167: Segfault using cluster in TlsStream::IsEof * Bug #7168: fping4 doesn't work correctly with the shipped command-plugins.conf * Bug #7186: Livestatus hangs from time to time * Bug #7195: fix memory leak ido_pgsql * Bug #7210: clarify on db ido upgrades * Feature #6719: Change log message for checking/sending notifications * Feature #7028: Document how to use @ to escape keywords * Feature #7033: Add include guards for mkclass files * Feature #7034: Ensure that namespaces for INITIALIZE_ONCE and REGISTER_TYPE are truly unique * Feature #7035: Implement support for unity builds * Feature #7039: Figure out a better way to set the version for snapshot builds * Feature #7040: Unity builds: Detect whether __COUNTER__ is available * Feature #7041: Enable unity build for RPM/Debian packages * Feature #7070: Explain event commands and their integration by a real life example (httpd restart via ssh) * Feature #7158: Extend documentation for icinga-web on Debian systems ### What's New in Version 2.1.0 #### Changes * DB IDO schema upgrade ([MySQL](#upgrading-mysql-db),[PostgreSQL](#upgrading-postgresql-db) required! * new schema version: **1.11.7** * RPMs install the schema files into `/usr/share/icinga2-ido*` instead of `/usr/share/doc/icinga2-ido*` #6881 * [Information for config objects](#list-configuration-objects) using `icinga2-list-objects` script #6702 * Add Python 2.4 as requirement #6702 * Add search path: If `-c /etc/icinga2/icinga2.conf` is omitted, use `SysconfDir + "/icinga2/icinga2.conf"` #6874 * Change log level for failed commands #6751 * Notifications are load-balanced in a [High Availability cluster setup](#high-availability-notifications) #6203 * New config attribute: `enable_ha` * DB IDO "run once" or "run everywhere" mode in a [High Availability cluster setup](#high-availability-db-ido) #6203 #6827 * New config attributes: `enable_ha` and `failover_timeout` * RPMs use the `icingacmd` group for /var/{cache,log,run}/icinga2 #6948 #### Issues * Bug #6881: make install does not install the db-schema * Bug #6915: use _rundir macro for configuring the run directory * Bug #6916: External command pipe: Too many open files * Bug #6917: enforce /usr/lib as base for the cgi path on SUSE distributions * Bug #6942: ExternalCommandListener fails open pipe: Too many open files * Bug #6948: check file permissions in /var/cache/icinga2 * Bug #6962: Commands are processed multiple times * Bug #6964: Host and service checks stuck in "pending" when hostname = localhost a parent/satellite setup * Bug #7001: Build fails with Boost 1.56 * Bug #7016: 64-bit RPMs are not installable * Feature #5219: Cluster support for modified attributes * Feature #6066: Better log messages for cluster changes * Feature #6203: Better cluster support for notifications / IDO * Feature #6205: Log replay sends messages to instances which shouldn't get those messages * Feature #6702: Information for config objects * Feature #6704: Release 2.1 * Feature #6751: Change log level for failed commands * Feature #6874: add search path for icinga2.conf * Feature #6898: Enhance logging for perfdata/graphitewriter * Feature #6919: Clean up spec file * Feature #6920: Recommend related packages on SUSE distributions * API - Bug #6998: ApiListener ignores bind_host attribute * DB IDO - Feature #6827: delay ido connect in ha cluster * Documentation - Bug #6870: Wrong object attribute 'enable_flap_detection' * Documentation - Bug #6878: Wrong parent in Load Distribution * Documentation - Bug #6909: clarify on which config tools are available * Documentation - Bug #6968: Update command arguments 'set_if' and beautify error message * Documentation - Bug #6995: Keyword "required" used inconsistently for host and service "icon_image*" attributes * Documentation - Feature #6651: Migration: note on check command timeouts * Documentation - Feature #6703: Documentation for zones and cluster permissions * Documentation - Feature #6743: Better explanation for HA config cluster * Documentation - Feature #6839: Explain how the order attribute works in commands * Documentation - Feature #6864: Add section for reserved keywords * Documentation - Feature #6867: add section about disabling re-notifications * Documentation - Feature #6869: Add systemd options: enable, journal * Documentation - Feature #6922: Enhance Graphite Writer description * Documentation - Feature #6949: Add documentation for icinga2-list-objects * Documentation - Feature #6997: how to add a new cluster node * Documentation - Feature #7018: add example selinux policy for external command pipe * Plugins - Feature #6650: Plugin Check Commands: add manubulon snmp plugins ### What's New in Version 2.0.2 * Bug #6450: ipmi-sensors segfault due to stack size * Bug #6479: Notifications not always triggered * Bug #6501: Classic UI Debian/Ubuntu: apache 2.4 requires 'a2enmod cgi' & apacheutils installed * Bug #6548: Add cmake constant for PluginDir * Bug #6549: GraphiteWriter regularly sends empty lines * Bug #6550: add log message for invalid performance data * Bug #6589: Command pipe blocks when trying to open it more than once in parallel * Bug #6621: Infinite loop in TlsStream::Close * Bug #6627: Location of the run directory is hard coded and bound to "local_state_dir" * Bug #6659: RPMLint security warning - missing-call-to-setgroups-before-setuid /usr/sbin/icinga2 * Bug #6682: Missing detailed error messages on ApiListener SSL Errors * Bug #6686: Event Commands are triggered in OK HARD state everytime * Bug #6687: Remove superfluous quotes and commas in dictionaries * Bug #6713: sample config: add check commands location hint (itl/plugin check commands) * Bug #6718: "order" attribute doesn't seem to work as expected * Bug #6724: TLS Connections still unstable in 2.0.1 * Bug #6756: GraphiteWriter: Malformatted integer values * Bug #6765: Config validation without filename argument fails with unhandled exception * Bug #6768: Repo Error on RHEL 6.5 * Bug #6773: Order doesn't work in check ssh command * Bug #6782: The "ssl" check command always sets -D * Bug #6790: Service icinga2 reload command does not cause effect * Bug #6809: additional group rights missing when Icinga started with -u and -g * Bug #6810: High Availablity does not synchronise the data like expected * Bug #6820: Icinga 2 crashes during startup * Bug #6821: [Patch] Fix build issue and crash found on Solaris, potentially other Unix OSes * Bug #6825: incorrect sysconfig path on sles11 * Bug #6832: Remove if(NOT DEFINED ICINGA2_SYSCONFIGFILE) in etc/initsystem/CMakeLists.txt * Bug #6840: Missing space in error message * Bug #6849: Error handler for getaddrinfo must use gai_strerror * Bug #6852: Startup logfile is not flushed to disk * Bug #6856: event command execution does not call finish handler * Bug #6861: write startup error messages to error.log * Feature #5818: SUSE packages * Feature #6655: Build packages for el7 * Feature #6688: Rename README to README.md * Feature #6698: Require command to be an array when the arguments attribute is used * Feature #6700: Release 2.0.2 * Feature #6783: Print application paths for --version * DB IDO - Bug #6414: objects and their ids are inserted twice * DB IDO - Bug #6608: Two Custom Variables with same name, but Upper/Lowercase creating IDO duplicate entry * DB IDO - Bug #6646: NULL vs empty string * DB IDO - Bug #6850: exit application if ido schema version does not match * Documentation - Bug #6652: clarify on which features are required for classic ui/web/web2 * Documentation - Bug #6708: update installation with systemd usage * Documentation - Bug #6711: icinga Web: wrong path to command pipe * Documentation - Bug #6725: Missing documentation about implicit dependency * Documentation - Bug #6728: wrong path for the file 'localhost.conf' * Migration - Bug #6558: group names quoted twice in arrays * Migration - Bug #6560: Service dependencies aren't getting converted properly * Migration - Bug #6561: $TOTALHOSTSERVICESWARNING$ and $TOTALHOSTSERVICESCRITICAL$ aren't getting converted * Migration - Bug #6563: Check and retry intervals are incorrect * Migration - Bug #6786: Fix notification definition if no host_name / service_description given * Plugins - Feature #6695: Plugin Check Commands: Add expect option to check_http * Plugins - Feature #6791: Plugin Check Commands: Add timeout option to check_ssh #### Changes * DB IDO schema upgrade required (new schema version: 1.11.6) ### What's New in Version 2.0.1 * Bug #6316: application fails to start on wrong log file permissions but does not tell about it * Bug #6368: Deadlock in ApiListener::RelayMessage * Bug #6373: base64 on CentOS 5 fails to read certificate bundles * Bug #6388: Debian package icinga2-classicui needs versioned dependency of icinga-cgi* * Bug #6488: build warnings * Bug #6492: icinga2.state could not be opened * Bug #6493: Copyright problems * Bug #6498: icinga2 cannot be built with both systemd and init.d files * Bug #6510: Reminder notifications are sent on disabled services * Bug #6526: htpasswd should be installed with icinga2-classicui on Ubuntu * Bug #6529: parsing of double defined command can generate unexpected errors * Bug #6537: Icinga doesn't send SetLogPosition messages when one of the endpoints fails to connect * Bug #6551: Improve systemd service definition * Bug #6565: Dependencies should cache their parent and child object * Bug #6574: Check command result doesn't match * Bug #6576: Remove line number information from stack traces * Bug #6588: Notifications causing segfault from exim * Bug #6605: Please add --sni option to http check command * Bug #6612: Icinga stops updating IDO after a while * Bug #6617: TLS connections are still unstable * Bug #6620: icinga2-build-ca shouldn't prompt for DN * Bug #6622: icinga2-sign-key creates ".crt" and ".key" files when the CA passphrase is invalid * Bug #6657: ICINGA2_SYSCONFIGFILE should use full path using CMAKE_INSTALL_FULL_SYSCONFDIR * Bug #6662: Increase icinga.cmd Limit * Bug #6665: Build fails when MySQL is not installed * Bug #6671: enabled_notification doesn't work as expected * Bug #6672: Icinga crashes after "Too many queued messages" * Bug #6673: enable_notifications = false for users has no effect * Feature #6531: Add port option to check imap/pop/smtp and a new dig * Feature #6581: Add more options to snmp check * DB IDO - Bug #5577: PostgreSQL string escaping * DB IDO - Bug #6577: icinga2-ido-pgsql snapshot package missing dependecy dbconfig-common * Documentation - Bug #6506: Array section confusing * Documentation - Bug #6592: Documentation for || and && is missing * Documentation - Feature #6658: change docs.icinga.org/icinga2/latest to git master * Livestatus - Bug #6494: Thruk Panorama View cannot query Host Status * Livestatus - Feature #5312: OutputFormat python * Migration - Bug #6559: $SERVICEDESC$ isn't getting converted correctly #### Changes ### Archive