]> granicus.if.org Git - icinga2/blobdiff - ChangeLog
Fix string escaping in hpasm argument description
[icinga2] / ChangeLog
index d22be203d9c6148618a1e4b9dc164e9a013483a5..07ea8a25d5e05988f25d51b3e8139c41f1e16664 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 # Icinga 2.x CHANGELOG
 
-Please check doc/1-about.md.
+Please check [doc/1-about.md].
 
 ## What's New
 
-### What's New in Version 0.0.11
+### What's New in Version 2.3.10
 
-* Redesigned cluster stack. #6192
-* Support for conditional command arguments. #5933
-* IDO: is_reachable attribute for hosts and services. #6094
-* IDO: Add missing events for service/host state changes. #6151
-* Lots of documentation updates. #6010, #6115, #6149, #6163, #6184, #6198, #6114, #6128, #5485
-* Plenty of bug fixes. #6179, #6148, #6111, #6131, and many more
+#### Features
 
-### What's New in Version 0.0.10
+* Feature 9218: Use the command_endpoint name as check_source value if defined
 
-* Make Host and Service checkable. #5919
-* Support new lines in addition to commas to seperate object attributes. #5901
-* Add group membership assign rules. #5910
-* Support nested groups. #5858
-* Add apply target type. #5924
-* Add relative object names. #5925
-* Merge macros and custom into 'vars' dictionary. Changed runtime macros and environment variable export. #5855
-* Add support for modified attributes for custom attributes. #5956
-* Allow to assign var values to existin vars evaluted on runtime. #5959
-* Rename/shorten attribute names and filter variables. #5857 
-* Remove the 'Icinga' prefix for global constants. #5960
-* Global option to enable/disable host/service checks. #5975
-* Add legacy attributes to host, service and group objects: `address{,6}'`, `notes`, `notes_url`, `action_url`, `icon_image`, `icon_image_alt`. #5856
-* Support "#" hash comments. #5994
-* Cluster: Spanning Tree like communication. #5467
-* Properly implement the Process class for Windows. #3684
+#### Bugfixes
+
+* Bug 9244: String escape problem with PostgreSQL >= 9.1 and standard_conforming_strings=on
+* Bug 10003: Nested "outer" macro calls fails on (handled) missing "inner" values
+* Bug 10051: Missing fix for reload on Windows in 2.3.9
+* Bug 10058: Wrong calculation for host compat state "UNREACHABLE" in DB IDO
+* Bug 10074: Missing zero padding for generated CA serial.txt
+
+### What's New in Version 2.3.9
 
 #### Changes
 
-> **Note**
->
-> Configuration updates required!
+* Fix that the first SOFT state is recognized as second SOFT state
+* Implemented reload functionality for Windows
+* New ITL check commands
+* Documentation updates
+* Various other bugfixes
+
+#### Features
 
-* Configuration Changes. For a detailed list of changes check out [#5909](https://dev.icinga.org/issues/5909)
-* DB IDO schema upgrade required.
+* Feature 9527: CheckCommand for check_interfaces
+* Feature 9671: Add check_yum to ITL
+* Feature 9675: Add check_redis to ITL
+* Feature 9686: Update gdb pretty printer docs w/ Python 3
+* Feature 9699: Adding "-r" parameter to the check_load command for dividing the load averages by the number of CPUs.
+* Feature 9747: check_command for plugin check_clamd
+* Feature 9796: Implement Dictionary#get and Array#get
+* Feature 9801: Add check_jmx4perl to ITL
+* Feature 9811: add check command for check_mailq
+* Feature 9827: snmpv3 CheckCommand section improved
+* Feature 9882: Implement the Dictionary#keys method
+* Feature 9883: Use an empty dictionary for the 'this' scope when executing commands with Livestatus
+* Feature 9985: add check command nscp-local-counter
+* Feature 9996: Add new arguments openvmtools for Open VM Tools
 
-### What's New in Version 0.0.9
+#### Bugfixes
 
-* new [apply](#apply) rules for assigning objects based on attribute conditions
-* inline object definitions removed in favor of [apply](#apply) rules
-* [import](#template-imports) keyword instead of `inherits` keyword for all objects
-* new [constants.conf](#constants-conf) providing `PluginDir` constant instead of `$plugindir$` macro
-* unknown attributes and duplicate objects generate a configuration error
-* improved configuration error output
-* create endpoint tables for legacy interfaces (status data, DB IDO, Livestatus)
-* export host `check` attribute in legacy interfaces (status data, DB IDO, Livestatus)
-* add documentation about [cluster scenarios](#cluster-scenarios)
-* Livestatus: add `check_source` attribute to services table
-* Compat: Fix host service order for Classic UI
-* Remove comments when clearing acknowledgements
-* Recovery [Notifications](#objecttype-notification) require StateFilterOK
+* Bug 8979: Missing DEL_DOWNTIME_BY_HOST_NAME command required by Classic UI 1.x
+* Bug 9262: cluster check w/ immediate parent and child zone endpoints
+* Bug 9623: missing config warning on empty port in endpoints
+* Bug 9769: Set correct X509 version for certificates
+* Bug 9773: Add log for missing EventCommand for command_endpoints
+* Bug 9779: Trying to set a field for a non-object instance fails
+* Bug 9782: icinga2 node wizard don't take zone_name input
+* Bug 9806: Operator + is inconsistent when used with empty and non-empty strings
+* Bug 9814: Build fix for Boost 1.59
+* Bug 9835: Dict initializer incorrectly re-initializes field that is set to an empty string
+* Bug 9860: missing check_perfmon.exe
+* Bug 9867: Agent freezes when the check returns massive output
+* Bug 9884: Warning about invalid API function icinga::Hello
+* Bug 9897: First SOFT state is recognized as second SOFT state
+* Bug 9902: typo in docs
+* Bug 9912: check_command interfaces option match_aliases has to be boolean
+* Bug 9913: Default disk checks on Windows fail because check_disk doesn't support -K
+* Bug 9928: Add missing category for IDO query
+* Bug 9947: Serial number field is not properly initialized for CA certificates
+* Bug 9961: Don't re-download NSCP for every build
+* Bug 9962: Utility::Glob on Windows doesn't support wildcards in all but the last path component
+* Bug 9972: Icinga2 - too many open files - Exception
+* Bug 9984: fix check command nscp-local
+* Bug 9992: Duplicate severity type in the documentation for SyslogLogger
+
+### What's New in Version 2.3.8
 
 #### Changes
 
-> **Note**
->
-> Configuration updates required!
-
-* removed deprecated `var`/`set` identifier, use [const](#const) instead
-* [constants.conf](#constants-conf) needs to be included in [icinga2.conf](#icinga2-conf) before [ITL](#itl) inclusion
-* [import](#template-imports) instead of `inherits` (examples in [localhost.conf](#localhost-conf))
-* [apply](#apply) rules instead of inline definitions for [Service](#objecttype-service),
-[Dependency](#objecttype-dependency), [Notification](#objecttype-notitifcation),
-[ScheduledDowntime](#objecttype-scheduleddowntime) objects (examples in [localhost.conf](#localhost-conf)).
-* unknown attributes and duplicate objects generate a configuration error
-* DB IDO: schema update for 0.0.9 ([MySQL](#upgrading-mysql-db), [PostgreSQL](#upgrading-postgresql-db))
-
-
-### What's New in Version 0.0.8
-
-* Add [Dependency](#objecttype-dependency) object for advanced host/service dependency definition
-* Add optional [NodeName](#global-constants) for cluster feature
-* Populate check_source attribute with the checker's node name
-* [Cluster](#objecttype-endpoint) supports recursive config includes
-* Add [Cluster health check](#cluster-health-check)
-* Add more performance data to the [Icinga health check](#itl-icinga)
-* Add [IcingaStatusWriter](#objecttype-icingastatuswriter) feature writing a status json file
-* Smoother pending service checking during startup
-* Reduce virtual memory usage
-* Stack traces include file names and line numbers
-* Treat script variables as constants preventing override
-* Fix pending services are being checked with the retry interval
-* DB IDO: Fix deleted objects are not marked as is_active=0
-* DB IDO: additional fields for cluster/checker nodes
-
-#### Changes
-* {host,service}_dependencies attributes have been changed to [Dependency](#objecttype-dependency)
-objects supporting new attributes: `disable_checks`, `disable_notifications`, `state_filter`,
-`period`. For better readability, there is `parent_service` and `child_service` for example.
+* Bugfixes
+
+#### Bugfixes
+
+* Bug 9554: Don't allow "ignore where" for groups when there's no "assign where"
+* Bug 9634: DB IDO: Do not update endpointstatus table on config updates
+* Bug 9637: Wrong parameter for CheckCommand "ping-common-windows"
+* Bug 9665: Escaping does not work for OpenTSDB perfdata plugin
+* Bug 9666: checkcommand disk does not check free inode - check_disk
+
+### What's New in Version 2.3.7
+
+#### Changes
+
+* Bugfixes
+
+#### Features
+
+* Feature 9610: Enhance troubleshooting ssl errors & cluster replay log
+
+#### Bugfixes
+
+* Bug 9406: Selective cluster reconnecting breaks client communication
+* Bug 9535: Config parser ignores "ignore" in template definition
+* Bug 9584: Incorrect return value for the macro() function
+* Bug 9585: Wrong formatting in DB IDO extensions docs
+* Bug 9586: DB IDO: endpoint* tables are cleared on reload causing constraint violations
+* Bug 9621: Assertion failed in icinga::ScriptUtils::Intersection
+* Bug 9622: Missing lock in ScriptUtils::Union
+
+### What's New in Version 2.3.6
+
+#### Changes
+
+* Require openssl1 on sles11sp3 from Security Module repository
+  * Bug in SLES 11's OpenSSL version 0.9.8j preventing verification of generated certificates.
+  * Re-create these certificates with 2.3.6 linking against openssl1 (cli command or CSR auto-signing).
+* ITL: Add ldap, ntp_peer, mongodb and elasticsearch CheckCommand definitions
+* Bugfixes
+
+#### Features
+
+* Feature 6714: add pagerduty notification documentation
+* Feature 9172: Add "ldap" CheckCommand for "check_ldap" plugin
+* Feature 9191: Add "mongodb" CheckCommand definition
+* Feature 9415: Add elasticsearch checkcommand to itl
+* Feature 9416: snmpv3 CheckCommand: Add possibility to set securityLevel
+* Feature 9451: Merge documentation fixes from GitHub
+* Feature 9523: Add ntp_peer CheckCommand
+* Feature 9562: Add new options for ntp_time CheckCommand
+* Feature 9578: new options for smtp CheckCommand
+
+#### Bugfixes
+
+* Bug 9205: port empty when using icinga2 node wizard
+* Bug 9253: Incorrect variable name in the ITL
+* Bug 9303: Missing 'snmp_is_cisco' in Manubulon snmp-memory command definition
+* Bug 9436: Functions can't be specified as command arguments
+* Bug 9450: node setup: indent accept_config and accept_commands
+* Bug 9452: Wrong file reference in README.md
+* Bug 9456: Windows client w/ command_endpoint broken with $nscp_path$ and NscpPath detection
+* Bug 9463: Incorrect check_ping.exe parameter in the ITL
+* Bug 9476: Documentation for checks in an HA zone is wrong
+* Bug 9481: Fix stability issues in the TlsStream/Stream classes
+* Bug 9489: Add log message for discarded cluster events (e.g. from unauthenticated clients)
+* Bug 9490: Missing openssl verify in cluster troubleshooting docs
+* Bug 9513: itl/plugins-contrib.d/*.conf should point to PluginContribDir
+* Bug 9522: wrong default port documentated for nrpe
+* Bug 9549: Generated certificates cannot be verified w/ openssl 0.9.8j on SLES 11
+* Bug 9558: mysql-devel is not available in sles11sp3
+* Bug 9563: Update getting started for Debian Jessie
+
+### What's New in Version 2.3.5
+
+#### Changes
+
+* NSClient++ is now bundled with the Windows setup wizard and can optionally be installed
+* Windows Wizard: "include <nscp>" is set by default
+* Windows Wizard: Add update mode
+* Plugins: Add check_perfmon plugin for Windows
+* ITL: Add CheckCommand objects for Windows plugins ("include <windows-plugins>")
+* ITL: Add CheckCommand definitions for "mongodb", "iftraffic", "disk_smb"
+* ITL: Add arguments to CheckCommands "dns", "ftp", "tcp", "nscp"
+
+#### Features
+
+* Feature 8116: Extend Windows installer with an update mode
+* Feature 8180: Add documentation and CheckCommands for the windows plugins
+* Feature 8809: Add check_perfmon plugin for Windows
+* Feature 9115: Add SHOWALL to NSCP Checkcommand
+* Feature 9130: Add 'check_drivesize' as nscp-local check command
+* Feature 9145: Add arguments to "dns" CheckCommand
+* Feature 9146: Add arguments to "ftp" CheckCommand
+* Feature 9147: Add arguments to "tcp" CheckCommand
+* Feature 9176: ITL Documentation: Add a link for passing custom attributes as command parameters
+* Feature 9180: Include Windows support details in the documentation
+* Feature 9185: Add timestamp support for PerfdataWriter
+* Feature 9191: Add "mongodb" CheckCommand definition
+* Feature 9238: Bundle NSClient++ in Windows Installer
+* Feature 9254: Add 'disk_smb' Plugin CheckCommand definition
+* Feature 9256: Determine NSClient++ installation path using MsiGetComponentPath
+* Feature 9260: Include <nscp> by default on Windows
+* Feature 9261: Add the --load-all and --log options for nscp-local
+* Feature 9263: Add support for installing NSClient++ in the Icinga 2 Windows wizard
+* Feature 9270: Update service apply for documentation
+* Feature 9272: Add 'iftraffic' to plugins-contrib check command definitions
+* Feature 9285: Best practices: cluster config sync
+* Feature 9297: Add examples for function usage in "set_if" and "command" attributes
+* Feature 9310: Add typeof in 'assign/ignore where' expression as example
+* Feature 9311: Add local variable scope for *Command to documentation (host, service, etc)
+* Feature 9313: Use a more simple example for passing command parameters
+* Feature 9318: Explain string concatenation in objects by real-world example
+* Feature 9363: Update documentation for escape sequences
+* Feature 9419: Enhance cluster/client troubleshooting
+* Feature 9420: Enhance cluster docs with HA command_endpoints
+* Feature 9431: Documentation: Move configuration before advanced topics
+
+#### Bugfixes
+
+* Bug 8853: Syntax Highlighting: host.address vs host.add
+* Bug 8888: Icinga2 --version: Error showing Distribution
+* Bug 8891: Node wont connect properly to master if host is is not set for Endpoint on new installs
+* Bug 9055: Wrong timestamps w/ historical data replay in DB IDO
+* Bug 9109: WIN: syslog is not an enable-able feature in windows
+* Bug 9116: node update-config reports critical and warning
+* Bug 9121: Possible DB deadlock
+* Bug 9131: Missing ")" in last Apply Rules example
+* Bug 9142: Downtimes are always "fixed"
+* Bug 9143: Incorrect type and state filter mapping for User objects in DB IDO
+* Bug 9161: 'disk': wrong order of threshold command arguments
+* Bug 9187: SPEC: Give group write permissions for perfdata dir
+* Bug 9205: port empty when using icinga2 node wizard
+* Bug 9222: Missing custom attributes in backends if name is equal to object attribute
+* Bug 9253: Incorrect variable name in the ITL
+* Bug 9255: --scm-installs fails when the service is already installed
+* Bug 9258: Some checks in the default Windows configuration fail
+* Bug 9259: Disk and 'icinga' services are missing in the default Windows config
+* Bug 9268: Typo in Configuration Best Practice
+* Bug 9269: Wrong permission etc on windows
+* Bug 9324: Multi line output not correctly handled from compat channels
+* Bug 9328: Multiline vars are broken in objects.cache output
+* Bug 9372: plugins-contrib.d/databases.conf: wrong argument for mssql_health
+* Bug 9389: Documentation: Typo
+* Bug 9390: Wrong service table attributes in Livestatus documentation
+* Bug 9393: Documentation: Extend Custom Attributes with the boolean type
+* Bug 9394: Including <nscp> on Linux fails with unregistered function
+* Bug 9399: Documentation: Typo
+* Bug 9406: Selective cluster reconnecting breaks client communication
+* Bug 9412: Documentation: Update the link to register a new Icinga account
+
+### What's New in Version 2.3.4
+
+#### Changes
+
+* ITL: Check commands for various databases
+* Improve validation messages for time periods
+* Update max_check_attempts in generic-{host,service} templates
+* Update logrotate configuration
+* Bugfixes
+
+#### Features
+
+* Feature 8760: Add database plugins to ITL
+* Feature 8803: Agent Wizard: add options for API defaults
+* Feature 8893: Improve timeperiod validation error messages
+* Feature 8895: Add explanatory note for Icinga2 client documentation
+
+#### Bugfixes
+
+* Bug 8808: logrotate doesn't work on Ubuntu
+* Bug 8821: command_endpoint check_results are not replicated to other endpoints in the same zone
+* Bug 8879: Reword documentation of check_address
+* Bug 8881: Add arguments to the UPS check
+* Bug 8889: Fix a minor markdown error
+* Bug 8892: Validation errors for time ranges which span the DST transition
+* Bug 8894: Default max_check_attempts should be lower for hosts than for services
+* Bug 8913: Windows Build: Flex detection
+* Bug 8917: Node wizard should only accept 'y', 'n', 'Y' and 'N' as answers for boolean questions
+* Bug 8919: Fix complexity class for Dictionary::Get
+* Bug 8987: Fix a typo
+* Bug 9012: Typo in graphite feature enable documentation
+* Bug 9014: Don't update scheduleddowntime table w/ trigger_time column when only adding a downtime
+* Bug 9016: Downtimes which have been triggered are not properly recorded in the database
+* Bug 9017: scheduled_downtime_depth column is not reset when a downtime ends or when a downtime is being removed
+* Bug 9021: Multiple log messages w/ "Attempting to send notifications for notification object"
+* Bug 9041: Acknowledging problems w/ expire time does not add the expiry information to the related comment for IDO and compat
+* Bug 9045: Vim syntax: Match groups before host/service/user objects
+* Bug 9049: check_disk order of command arguments
+* Bug 9050: web.conf is not in the RPM package
+* Bug 9064: troubleshoot truncates crash reports
+* Bug 9069: Documentation: set_if usage with boolean values and functions
+* Bug 9073: custom attributes with recursive macro function calls causing sigabrt
+
+### What's New in Version 2.3.3
+
+#### Changes
+
+* New function: parse_performance_data
+* Include more details in --version
+* Improve documentation
+* Bugfixes
+
+#### Features
+
+* Feature 8685: Show state/type filter names in notice/debug log
+* Feature 8686: Update documentation for "apply for" rules
+* Feature 8693: New function: parse_performance_data
+* Feature 8740: Add "access objects at runtime" examples to advanced section
+* Feature 8761: Include more details in --version
+* Feature 8816: Add "random" CheckCommand for test and demo purposes
+* Feature 8827: Move release info in INSTALL.md into a separate file
+
+#### Bugfixes
+
+* Bug 8660: Update syntax highlighting for 2.3 features
+* Bug 8677: Re-order the object types in alphabetical order
+* Bug 8724: Missing config validator for command arguments 'set_if'
+* Bug 8734: startup.log broken when the DB schema needs an update
+* Bug 8736: Don't update custom vars for each status update
+* Bug 8748: Don't ignore extraneous arguments for functions
+* Bug 8749: Build warnings with CMake 3.1.3
+* Bug 8750: Flex version check does not reject unsupported versions
+* Bug 8753: Fix a typo in the documentation of ICINGA2_WITH_MYSQL and ICINGA2_WITH_PGSQL
+* Bug 8755: Fix VIM syntax highlighting for comments
+* Bug 8757: Add missing keywords in the syntax highlighting files
+* Bug 8762: Plugin "check_http" is missing in Windows environments
+* Bug 8763: Typo in doc library-reference
+* Bug 8764: Revamp migration documentation
+* Bug 8765: Explain processing logic/order of apply rules with for loops
+* Bug 8766: Remove prompt to create a TicketSalt from the wizard
+* Bug 8767: Typo and invalid example in the runtime macro documentation
+* Bug 8769: Improve error message for invalid field access
+* Bug 8770: object Notification + apply Service fails with error "...refers to service which doesn't exist"
+* Bug 8771: Correct HA documentation
+* Bug 8829: Figure out why command validators are not triggered
+* Bug 8834: Return doesn't work inside loops
+* Bug 8844: Segmentation fault when executing "icinga2 pki new-cert"
+* Bug 8862: wrong 'dns_lookup' custom attribute default in command-plugins.conf
+* Bug 8866: Fix incorrect perfdata templates in the documentation
+* Bug 8869: Array in command arguments doesn't work
+
+### What's New in Version 2.3.2
+
+#### Changes
+
+* Bugfixes
+
+#### Bugfixes
+
+* Bug 8721: Log message for cli commands breaks the init script
+
+### What's New in Version 2.3.1
+
+#### Changes
+
+* Bugfixes
+
+Please note that this version fixes the default thresholds for the disk check which were inadvertently broken in 2.3.0; if you're using percent-based custom thresholds you will need to add the '%' sign to your custom attributes
+
+#### Features
+
+* Feature 8659: Implement String#contains
+
+#### Bugfixes
+
+* Bug 8540: Kill signal sent only to check process, not whole process group
+* Bug 8657: Missing program name in 'icinga2 --version'
+* Bug 8658: Fix check_disk thresholds: make sure partitions are the last arguments
+* Bug 8672: Api heartbeat message response time problem
+* Bug 8673: Fix check_disk default thresholds and document the change of unit
+* Bug 8679: Config validation fail because of unexpected new-line
+* Bug 8680: Update documentation for DB IDO HA Run-Once
+* Bug 8683: Make sure that the /var/log/icinga2/crash directory exists
+* Bug 8684: Fix formatting for the GDB stacktrace
+* Bug 8687: Crash in Dependency::Stop
+* Bug 8691: Debian packages do not create /var/log/icinga2/crash
+
+### What's New in Version 2.3.0
+
+#### Changes
+
+* Improved configuration validation
+    * Unnecessary escapes are no longer permitted (e.g. \')
+    * Dashes are no longer permitted in identifier names (as their semantics are ambiguous)
+    * Unused values are detected (e.g. { "-M" })
+    * Validation for time ranges has been improved
+    * Additional validation rules for some object types (Notification and User)
+* New language features
+    * Implement a separate type for boolean values
+    * Support for user-defined functions
+    * Support for conditional statements (if/else)
+    * Support for 'for' and 'while' loops
+    * Support for local variables using the 'var' keyword
+    * New operators: % (modulo), ^ (xor), - (unary minus) and + (unary plus)
+    * Implemented prototype-based methods for most built-in types (e.g. [ 3, 2 ].sort())
+    * Explicit access to local and global variables using the 'locals' and 'globals' keywords
+    * Changed the order in which filters are evaluated for apply rules with 'for'
+    * Make type objects accessible as global variables
+    * Support for using functions in custom attributes
+    * Access objects and their runtime attributes in functions (e.g. get_host(NodeName).state)
+* ITL improvements
+    * Additional check commands were added to the ITL
+    * Additional arguments for existing check commands
+* CLI improvements
+    * Add the 'icinga2 console' CLI command which can be used to test expressions
+    * Add the 'icinga2 troubleshoot' CLI command for collecting troubleshooting information
+    * Performance improvements for the 'icinga2 node update-config' CLI command
+    * Implement argument auto-completion for short options (e.g. daemon -c)
+    * 'node setup' and 'node wizard' create backups for existing certificate files
+* Add ignore_soft_states option for Dependency object configuration
+* Fewer threads are used for socket I/O
+* Flapping detection for hosts and services is disabled by default
+* Added support for OpenTSDB
+* New Livestatus tables: hostsbygroup, servicesbygroup, servicesbyhostgroup
+* Include GDB backtrace in crash reports
+* Various documentation improvements
+* Solved a number of issues where cluster instances would not reconnect after intermittent connection problems
+* A lot of other, minor changes
+
+* [DB IDO schema upgrade](17-upgrading-icinga-2.md#upgrading-icinga-2) to `1.13.0` required!
+
+#### Features
+
+* Feature 3446: Add troubleshooting collect cli command
+* Feature 6109: Don't spawn threads for network connections
+* Feature 6570: Disallow side-effect-free r-value expressions in expression lists
+* Feature 6697: Plugin Check Commands: add check_vmware_esx
+* Feature 6857: Run CheckCommands with C locale (workaround for comma vs dot and plugin api bug)
+* Feature 6858: Add some more PNP details
+* Feature 6868: Disable flapping detection by default
+* Feature 6923: IDO should fill program_end_time on a clean shutdown
+* Feature 7136: extended Manubulon SNMP Check Plugin Command
+* Feature 7209: ITL: Interfacetable
+* Feature 7256: Add OpenTSDB Writer
+* Feature 7292: ITL: Check_Mem.pl
+* Feature 7294: ITL: ESXi-Hardware
+* Feature 7326: Add parent soft states option to Dependency object configuration
+* Feature 7361: Livestatus: Add GroupBy tables: hostsbygroup, servicesbygroup, servicesbyhostgroup
+* Feature 7545: Please add labels in SNMP checks
+* Feature 7564: Access object runtime attributes in custom vars & command arguments
+* Feature 7610: Variable from for loop not usable in assign statement
+* Feature 7700: Evaluate apply/object rules when the parent objects are created
+* Feature 7702: Add an option that hides CLI commands
+* Feature 7704: ConfigCompiler::HandleInclude* should return an AST node
+* Feature 7706: ConfigCompiler::Compile* should return an AST node
+* Feature 7748: Redesign how stack frames work for scripts
+* Feature 7767: Rename _DEBUG to I2_DEBUG
+* Feature 7774: Implement an AST Expression for T_CONST
+* Feature 7778: Missing check_disk output on Windows
+* Feature 7784: Implement the DISABLE_HOST_SVC_NOTIFICATIONS and ENABLE_HOST_SVC_NOTIFICATIONS commands
+* Feature 7793: Don't build db_ido when both MySQL and PostgreSQL aren't enabled
+* Feature 7794: Implement an option to disable building the Livestatus module
+* Feature 7795: Implement an option to disable building the Demo component
+* Feature 7805: Implement unit tests for the config parser
+* Feature 7807: Move the cast functions into libbase
+* Feature 7813: Implement the % operator
+* Feature 7816: Document operator precedence
+* Feature 7822: Make the config parser thread-safe
+* Feature 7823: Figure out whether Number + String should implicitly convert the Number argument to a string
+* Feature 7824: Implement the "if" and "else" keywords
+* Feature 7873: Plugin Check Commands: Add icmp
+* Feature 7879: Windows agent is missing the standard plugin check_ping
+* Feature 7883: Implement official support for user-defined functions and the "for" keyword
+* Feature 7901: Implement socket_path attribute for the IdoMysqlConnection class
+* Feature 7910: The lexer shouldn't accept escapes for characters which don't have to be escaped
+* Feature 7925: Move the config file for the ido-*sql features into the icinga2-ido-* packages
+* Feature 8016: Documentation enhancement for snmp traps and passive checks.
+* Feature 8019: Register type objects as global variables
+* Feature 8020: Improve output of ToString for type objects
+* Feature 8030: Evaluate usage of function()
+* Feature 8033: Allow name changed from inside the object
+* Feature 8040: Disallow calling strings as functions
+* Feature 8043: Implement a boolean sub-type for the Value class
+* Feature 8047: ConfigCompiler::HandleInclude should return an inline dictionary
+* Feature 8060: Windows plugins should behave like their Linux cousins
+* Feature 8065: Implement a way to remove dictionary keys
+* Feature 8071: Implement a way to call methods on objects
+* Feature 8074: Figure out how variable scopes should work
+* Feature 8078: Backport i2tcl's error reporting functionality into "icinga2 console"
+* Feature 8096: Document the new language features in 2.3
+* Feature 8121: feature enable should use relative symlinks
+* Feature 8133: Implement line-continuation for the "console" command
+* Feature 8169: Implement additional methods for strings
+* Feature 8172: Assignments shouldn't have a "return" value
+* Feature 8195: Host/Service runtime macro downtime_depth
+* Feature 8226: Make invalid log-severity option output an error instead of a warning
+* Feature 8244: Implement keywords to explicitly access globals/locals
+* Feature 8259: The check "hostalive" is not working with ipv6
+* Feature 8269: Implement the while keyword
+* Feature 8277: Add macros $host.check_source$ and $service.check_source$
+* Feature 8290: Make operators &&, || behave like in JavaScript
+* Feature 8291: Implement validator support for function objects
+* Feature 8293: The Zone::global attribute is not documented
+* Feature 8316: Extend disk checkcommand
+* Feature 8322: Implement Array#join
+* Feature 8371: Add path information for objects in object list
+* Feature 8374: Add timestamp support for Graphite
+* Feature 8386: Add documentation for cli command 'console'
+* Feature 8393: Implement support for Json.encode and Json.decode
+* Feature 8394: Implement continue/break keywords
+* Feature 8399: Backup certificate files in 'node setup'
+* Feature 8410: udp check command is missing arguments.
+* Feature 8414: Add ITL check command for check_ipmi_sensor
+* Feature 8429: add webinject checkcommand
+* Feature 8465: Add the ability to use a CA certificate as a way of verifying hosts for CSR autosigning
+* Feature 8467: introduce time dependent variable values
+* Feature 8498: Snmp CheckCommand misses various options
+* Feature 8515: Show slave lag for the cluster-zone check
+* Feature 8522: Update Remote Client/Distributed Monitoring Documentation
+* Feature 8527: Change Livestatus query log level to 'notice'
+* Feature 8548: Add support for else-if
+* Feature 8575: Include GDB backtrace in crash reports
+* Feature 8599: Remove macro argument for IMPL_TYPE_LOOKUP
+* Feature 8600: Add validator for time ranges in ScheduledDowntime objects
+* Feature 8610: Support the SNI TLS extension
+* Feature 8621: Add check commands for NSClient++
+* Feature 8648: Document closures ('use')
+
+#### Bugfixes
+
+* Bug 6171: Remove name and return value for stats functions
+* Bug 6959: Scheduled start time will be ignored if the host or service is already in a problem state
+* Bug 7311: Invalid macro results in exception
+* Bug 7542: Update validators for CustomVarObject
+* Bug 7576: validate configured legacy timeperiod ranges
+* Bug 7582: Variable expansion is single quoted.
+* Bug 7644: Unity build doesn't work with MSVC
+* Bug 7647: Avoid rebuilding libbase when the version number changes
+* Bug 7731: Reminder notifications not being sent but logged every 5 secs
+* Bug 7765: DB IDO: Duplicate entry icinga_{host,service}dependencies
+* Bug 7800: Fix the shift/reduce conflicts in the parser
+* Bug 7802: Change parameter type for include and include_recursive to T_STRING
+* Bug 7808: Unterminated string literals should cause parser to return an error
+* Bug 7809: Scoping rules for "for" are broken
+* Bug 7810: Return values for functions are broken
+* Bug 7811: The __return keyword is broken
+* Bug 7812: Validate array subscripts
+* Bug 7814: Set expression should check whether LHS is a null pointer
+* Bug 7815: - operator doesn't work in expressions
+* Bug 7826: Compiler warnings
+* Bug 7830: - shouldn't be allowed in identifiers
+* Bug 7871: Missing persistent_comment, notify_contact columns for acknowledgement table
+* Bug 7894: Fix warnings when using CMake 3.1.0
+* Bug 7895: Serialize() fails to serialize objects which don't have a registered type
+* Bug 7995: Windows Agent: Missing directory "zones" in setup
+* Bug 8018: Value("").IsEmpty() should return true
+* Bug 8029: operator precedence for % and > is incorrect
+* Bug 8041: len() overflows
+* Bug 8061: Confusing error message for import
+* Bug 8067: Require at least one user for notification objects (user or as member of user_groups)
+* Bug 8076: icinga 2 Config Error needs to be more verbose
+* Bug 8081: Location info for strings is incorrect
+* Bug 8100: POSTGRES IDO: invalid syntax for integer: "true" while trying to update table icinga_hoststatus
+* Bug 8111: User::ValidateFilters isn't being used
+* Bug 8117: Agent checks fail when there's already a host with the same name
+* Bug 8122: Config file passing validation causes segfault
+* Bug 8132: Debug info for indexer is incorrect
+* Bug 8136: Icinga crashes when config file name is invalid
+* Bug 8164: escaped backslash in string literals
+* Bug 8166: parsing include_recursive
+* Bug 8173: Segfault on icinga::String::operator= when compiling configuration
+* Bug 8175: Compiler warnings
+* Bug 8179: Exception on missing config files
+* Bug 8184: group assign fails with bad lexical cast when evaluating rules
+* Bug 8185: Argument auto-completion doesn't work for short options
+* Bug 8211: icinga2 node update should not write config for blacklisted zones/host
+* Bug 8230: Lexer term for T_ANGLE_STRING is too aggressive
+* Bug 8249: Problems using command_endpoint inside HA zone
+* Bug 8257: Report missing command objects on remote agent
+* Bug 8260: icinga2 node wizard: Create backups of certificates
+* Bug 8289: Livestatus operator =~ is not case-insensitive
+* Bug 8294: Running icinga2 command as non privilged user raises error
+* Bug 8298: notify flag is ignored in ACKNOWLEDGE_*_PROBLEM commands
+* Bug 8300: ApiListener::ReplayLog shouldn't hold mutex lock during call to Socket::Poll
+* Bug 8307: PidPath, VarsPath, ObjectsPath and StatePath no longer read from init.conf
+* Bug 8309: Crash in ScheduledDowntime::CreateNextDowntime
+* Bug 8313: Incorrectly formatted timestamp in .timestamp file
+* Bug 8318: Remote Clients: Add manual setup cli commands
+* Bug 8323: Apply rule '' for host does not match anywhere!
+* Bug 8333: Icinga2 master doesn't change check-status when "accept_commands = true" is not set at client node
+* Bug 8372: Stacktrace on Endpoint not belonging to a zone or multiple zones
+* Bug 8383: last_hard_state missing in StatusDataWriter
+* Bug 8387: StatusDataWriter: Wrong host notification filters (broken fix in #8192)
+* Bug 8388: Config sync authoritative file never created
+* Bug 8389: Added downtimes must be triggered immediately if checkable is Not-OK
+* Bug 8390: Agent writes CR CR LF in synchronized config files
+* Bug 8397: Icinga2 config reset after package update (centos6.6)
+* Bug 8425: DB IDO: Duplicate entry icinga_scheduleddowntime
+* Bug 8433: Make the arguments for the stats functions const-ref
+* Bug 8434: Build fails on OpenBSD
+* Bug 8436: Indicate that Icinga2 is shutting down in case of a fatal error
+* Bug 8438: DB IDO {host,service}checks command_line value is "Object of type 'icinga::Array'"
+* Bug 8444: Don't attempt to restore program state from non-existing state file
+* Bug 8452: Livestatus query on commands table with custom vars fails
+* Bug 8461: Don't request heartbeat messages until after we've synced the log
+* Bug 8473: Exception in WorkQueue::StatusTimerHandler
+* Bug 8488: Figure out why 'node update-config' becomes slow over time
+* Bug 8493: Misleading ApiListener connection log messages on a master (Endpoint vs Zone)
+* Bug 8496: Icinga doesn't update long_output in DB
+* Bug 8511: Deadlock with DB IDO dump and forcing a scheduled check
+* Bug 8517: Config parser fails non-deterministic on Notification missing Checkable
+* Bug 8519: apply-for incorrectly converts loop var to string
+* Bug 8529: livestatus limit header not working
+* Bug 8535: Crash in ApiEvents::RepositoryTimerHandler
+* Bug 8536: Valgrind warning for ExternalCommandListener::CommandPipeThread
+* Bug 8537: Crash in DbObject::SendStatusUpdate
+* Bug 8544: Hosts: process_performance_data = 0 in database even though enable_perfdata = 1 in config
+* Bug 8555: Don't accept config updates for zones for which we have an authoritative copy of the config
+* Bug 8559: check_memory tool shows incorrect memory size on windows
+* Bug 8593: Memory leak in Expression::GetReference
+* Bug 8594: Improve Livestatus query performance
+* Bug 8596: Dependency: Validate *_{host,service}_name objects on their existance
+* Bug 8604: Attribute hints don't work for nested attributes
+* Bug 8627: Icinga2 shuts down when service is reloaded
+* Bug 8638: Fix a typo in documentation
+
+### What's New in Version 2.2.4
+
+#### Changes
+
+* Bugfixes
+
+#### Bugfixes
+
+* Bug #6943: Configured recurring downtimes not applied on saturdays
+* Bug #7660: livestatus / nsca / etc submits are ignored during reload
+* Bug #7685: kUn-Bashify mail-{host,service}-notification.sh
+* Bug #8128: Icinga 2.2.2 build fails on SLES11SP3 because of changed boost dependency
+* Bug #8131: vfork() hangs on OS X
+* Bug #8162: Satellite doesn't use manually supplied 'local zone name'
+* Bug #8192: Feature statusdata shows wrong host notification options
+* Bug #8201: Update Icinga Web 2 uri to /icingaweb2
+* Bug #8214: Fix YAJL detection on Debian squeeze
+* Bug #8222: inconsistent URL http(s)://www.icinga.org
+* Bug #8223: Typos in readme file for windows plugins
+* Bug #8245: check_ssmtp command does NOT support mail_from
+* Bug #8256: Restart fails after deleting a Host
+* Bug #8288: Crash in DbConnection::ProgramStatusHandler
+* Bug #8295: Restart of Icinga hangs
+* Bug #8299: Scheduling downtime for host and all services only schedules services
+* Bug #8311: Segfault in Checkable::AddNotification
+* Bug #8321: enable_event_handlers attribute is missing in status.dat
+* Bug #8368: Output in "node wizard" is confusing
+
+### What's New in Version 2.2.3
+
+#### Changes
+
+* Bugfixes
+
+#### Bugfixes
+
+* Bug #8063: Volatile checks trigger invalid notifications on OK->OK state changes
+* Bug #8125: Incorrect ticket shouldn't cause "node wizard" to terminate
+* Bug #8126: Icinga 2.2.2 doesn't build on i586 SUSE distributions
+* Bug #8143: Windows plugin check_service.exe can't find service NTDS
+* Bug #8144: Arguments without values are not used on plugin exec
+* Bug #8147: check_interval must be greater than 0 error on update-config
+* Bug #8152: DB IDO query queue limit reached on reload
+* Bug #8171: Typo in example of StatusDataWriter
+* Bug #8178: Icinga 2.2.2 segfaults on FreeBSD
+* Bug #8181: icinga2 node update config shows hex instead of human readable names
+* Bug #8182: Segfault on update-config old empty config
+
+### What's New in Version 2.2.2
+
+#### Changes
+
+* Bugfixes
+
+#### Bugfixes
+
+* Bug #7045: icinga2 init-script doesn't validate configuration on reload action
+* Bug #7064: Missing host downtimes/comments in Livestatus
+* Bug #7301: Docs: Better explaination of dependency state filters
+* Bug #7314: double macros in command arguments seems to lead to exception
+* Bug #7511: Feature `compatlog' should flush output buffer on every new line
+* Bug #7518: update-config fails to create hosts
+* Bug #7591: CPU usage at 100% when check_interval = 0 in host object definition
+* Bug #7618: Repository does not support services which have a slash in their name
+* Bug #7683: If a parent host goes down, the child host isn't marked as unrechable in the db ido
+* Bug #7707: "node wizard" shouldn't crash when SaveCert fails
+* Bug #7745: Cluster heartbeats need to be more aggressive
+* Bug #7769: The unit tests still crash sometimes
+* Bug #7863: execute checks locally if command_endpoint == local endpoint
+* Bug #7878: Segfault on issuing node update-config
+* Bug #7882: Improve error reporting when libmysqlclient or libpq are missing
+* Bug #7891: CLI `icinga2 node update-config` doesn't sync configs from remote clients as expected
+* Bug #7913: /usr/lib/icinga2 is not owned by a package
+* Bug #7914: SUSE packages %set_permissions post statement wasn't moved to common
+* Bug #7917: update_config not updating configuration
+* Bug #7920: Test Classic UI config file with Apache 2.4
+* Bug #7929: Apache 2.2 fails with new apache conf
+* Bug #8002: typeof() seems to return null for arrays and dictionaries
+* Bug #8003: SIGABRT while evaluating apply rules
+* Bug #8028: typeof does not work for numbers
+* Bug #8039: Livestatus: Replace unixcat with nc -U
+* Bug #8048: Wrong command in documentation for installing Icinga 2 pretty printers.
+* Bug #8050: exception during config check
+* Bug #8051: Update host examples in Dependencies for Network Reachability documentation
+* Bug #8058: DB IDO: Missing last_hard_state column update in {host,service}status tables
+* Bug #8059: Unit tests fail on FreeBSD
+* Bug #8066: Setting a dictionary key to null does not cause the key/value to be removed
+* Bug #8070: Documentation: Add note on default notification interval in getting started notifications.conf
+* Bug #8075: No option to specify timeout to check_snmp and snmp manubulon commands
+
+### 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
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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**
 >
-> Update your existing configuration!
-
-* DB IDO: Schema updates for 0.0.8: [MySQL](#upgrading-mysql-db) [PostgreSQL](#upgrading-postgresql-db)
-
-
-### What's New in Version 0.0.7
-
-* DB IDO performance improvements on startup
-* Fix notification_id handling in DB IDO
-* More automated tests (based on the Vagrant VM)
-* New documentation chapters
-
-### What's New in Version 0.0.6
-
-* Scheduled Downtimes as configuration object (also known as "Recurring Downtimes").
-* Log command arguments
-* Performance improvements for the config compiler
-* Config validation provides stats at the end
-* icinga2-enable-feature lists already enabled features
-* Add support for latency statistics to IcingaCheckTask
-* Implement support for using custom attributes as macros
-* StatusDataWriter update interval as config attribute
-* Improve performance with fetching data for status.dat/objects.cache, DB IDO and Livestatus
-* Livestatus History Table performance improvements
-
-#### Changes
-* Generated object names (host with services array) use an exclamation mark instead of a colon
-as separator. State file objects with downtimes, comments, etc are invalid (unknown) for that
-reason.
-* Script variables are set using 'var' and 'const' instead of the previous 'set' identifier
-* ITL constants are now embedded in libicinga
-* Removed the ConsoleLogger object and keep the default console log enabled until we daemonize
-
-### What's New in Version 0.0.5
-
-* Cluster: Implement support for CRLs
-* Implement modified attributes
-* Log messages providing more context
-* Default log is a file (rather than syslog)
-* Improve latency after start-up
-* NSCA-ng support for the Vagrant demo VM
-* Configuration: Recursively include configuration files matching a certain pattern
-* IDO: Improve performance
-* Migration: Add fallback for objects.cache instead of cfg_{dir,file}
-* Lots of bugfixes and performance improvements
-* Package fixes (Note: GPG key of packages.icinga.org has been updated)
-
-### What's New in Version 0.0.4
-
-* IDO: PostgreSQL support
-* IDO: implemented options to filter which kind of events are written to the database
-* Livestatus: implemented support for the log and statehist tables
-* Livestatus: implemented regex filters (~ and ~~)
-* Replaced autotools-based build system with cmake
-* Lots of bug fixes and performance improvements
-
-### What's New in Version 0.0.3
-
-* `StatusDataWriter` and `ExternalCommandListener` (former `Compat`) and `CompatLogger`
-(former CompatLog) for status.dat/objects.cache/icinga2.cmd/icinga.log for Icinga 1.x Classic UI support
-* `IdoMysqlConnection` and `ExternalCommandListener` for Icinga 1.x Web
-* `IdoMysqlConnection` for Icinga 1.x Reporting, NagVis
-* `LivestatusListener` for addons using the livestatus interface (history tables tbd)
-* `PerfDataWriter` for graphing addons such as PNP/inGraph/graphite (can be loaded multiple times!)
-* `GraphiteWriter` for sending metrics directly to graphite carbon sockets
-* `CheckResultReader` to collect Icinga 1.x slave checkresults (migrate your distributed setup step-by-step)
-* `ClusterListener` for real distributed architecture including config and runtime data (checks, comments, downtimes) sync and replay
-* `SyslogLogger`, `FileLogger` and `ConsoleLogger` for different types of logging
-* Domain support for distributed cluster environments
-* Config migration script supporting easier migration from Icinga 1.x configuration
-* Reviewed configuration options, additional attributes added
-* Enhanced ITL, added sample configuration
-* Enable/Disable Icinga 2 features on CLI
-* Documentation using Markdown (`Getting Started`, `Monitoring Basics`, `Object Types`, `Icinga Template Library`,
-`Advanced Topics`, `Migration from Icinga 1.x`, `Differences between Icinga 1.x and 2`, `Vagrant Demo VM`)
-* Vagrant Demo VM supported by Puppet modules installing RPM snapshots for Icinga 2, Icinga 1.x Classic UI and Web
-* Package snapshots available on [packages.icinga.org]
+>  Please remove `conf.d/hosts/localhost*` after verifying your updated configuration!
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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
+
+### 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
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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
+
+### What's New in Version 2.0.2
+
+#### Changes
+
+* DB IDO schema upgrade required (new schema version: 1.11.6)
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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
+
+### What's New in Version 2.0.1
+
+#### Features
+
+* 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
+
+#### Bugfixes
+
+* 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
+