]> granicus.if.org Git - icinga2/blob - doc/1-about.md
Release version 2.3.4
[icinga2] / doc / 1-about.md
1 # <a id="about-icinga2"></a> About Icinga 2
2
3 ## <a id="what-is-icinga2"></a> What is Icinga 2?
4
5 Icinga 2 is an open source monitoring system which checks the availability of
6 your network resources, notifies users of outages, and generates performance
7 data for reporting.
8
9 Scalable and extensible, Icinga 2 can monitor large, complex environments across
10 multiple locations.
11
12 ## <a id="licensing"></a> Licensing
13
14 Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU
15 General Public License Version 2, you will find a copy of this license in the
16 LICENSE file included in the source package.
17
18 ## <a id="support"></a> Support
19
20 Support for Icinga 2 is available in a number of ways. Please have a look at
21 the [support overview page](https://support.icinga.org).
22
23 ## <a id="contribute"></a> Contribute
24
25 There are many ways to contribute to Icinga - whether it be sending patches,
26 testing, reporting bugs, or reviewing and updating the documentation. Every
27 contribution is appreciated!
28
29 Please get in touch with the Icinga team at https://www.icinga.org/community/.
30
31 If you want to help update this documentation please read
32 [this howto](https://wiki.icinga.org/display/community/Update+the+Icinga+2+documentation).
33
34 ### <a id="development"></a> Icinga 2 Development
35
36 You can follow Icinga 2's development closely by checking
37 out these resources:
38
39 * [Development Bug Tracker](https://dev.icinga.org/projects/i2): [How to report a bug?](https://www.icinga.org/icinga/faq/)
40 * Git Repositories: [main mirror on icinga.org](https://git.icinga.org/?p=icinga2.git;a=summary) [release mirror at github.com](https://github.com/Icinga/icinga2)
41 * [Git Checkins Mailinglist](https://lists.icinga.org/mailman/listinfo/icinga-checkins)
42 * [Development](https://lists.icinga.org/mailman/listinfo/icinga-devel) and [Users](https://lists.icinga.org/mailman/listinfo/icinga-users) Mailinglists
43 * [#icinga-devel on irc.freenode.net](http://webchat.freenode.net/?channels=icinga-devel) including a Git Commit Bot
44
45 For general support questions, please refer to the [community support channels](https://support.icinga.org).
46
47 ### <a id="how-to-report-bug-feature-requests"></a> How to Report a Bug or Feature Request
48
49 More details in the [Icinga FAQ](https://www.icinga.org/icinga/faq/).
50
51 * [Register](https://exchange.icinga.org/authentication/register) an Icinga account.
52 * Create a new issue at the [Icinga 2 Development Tracker](https://dev.icinga.org/projects/i2).
53 * When reporting a bug, please include the details described in the [Troubleshooting](16-troubleshooting.md#troubleshooting-information-required) chapter (version, configs, logs, etc).
54
55 ## <a id="whats-new"></a> What's New
56
57 ### What's New in Version 2.3.4
58
59 #### Changes
60
61 * Bugfixes
62 * ITL: Check commands for various databases
63 * Improve validation messages for time periods
64 * Update max_check_attempts in generic-{host,service} templates
65 * Update logrotate configuration
66
67 #### Issues
68
69 * Feature 8760: Add database plugins to ITL
70 * Feature 8803: Agent Wizard: add options for API defaults
71 * Feature 8893: Improve timeperiod validation error messages
72 * Feature 8895: Add explanatory note for Icinga2 client documentation
73
74 * Bug 8808: logrotate doesn't work on Ubuntu
75 * Bug 8821: command_endpoint check_results are not replicated to other endpoints in the same zone
76 * Bug 8879: Reword documentation of check_address
77 * Bug 8881: Add arguments to the UPS check
78 * Bug 8889: Fix a minor markdown error
79 * Bug 8892: Validation errors for time ranges which span the DST transition
80 * Bug 8894: Default max_check_attempts should be lower for hosts than for services
81 * Bug 8913: Windows Build: Flex detection
82 * Bug 8917: Node wizard should only accept 'y', 'n', 'Y' and 'N' as answers for boolean questions
83 * Bug 8919: Fix complexity class for Dictionary::Get
84 * Bug 8987: Fix a typo
85 * Bug 9012: Typo in graphite feature enable documentation
86 * Bug 9014: Don't update scheduleddowntime table w/ trigger_time column when only adding a downtime
87 * Bug 9016: Downtimes which have been triggered are not properly recorded in the database
88 * Bug 9017: scheduled_downtime_depth column is not reset when a downtime ends or when a downtime is being removed
89 * Bug 9021: Multiple log messages w/ "Attempting to send notifications for notification object"
90 * Bug 9041: Acknowledging problems w/ expire time does not add the expiry information to the related comment for IDO and compat
91 * Bug 9045: Vim syntax: Match groups before host/service/user objects
92 * Bug 9049: check_disk order of command arguments
93 * Bug 9050: web.conf is not in the RPM package
94 * Bug 9064: troubleshoot truncates crash reports
95 * Bug 9069: Documentation: set_if usage with boolean values and functions
96 * Bug 9073: custom attributes with recursive macro function calls causing sigabrt
97
98 ### What's New in Version 2.3.3
99
100 #### Changes
101
102 * New function: parse_performance_data
103 * Include more details in --version
104 * Improve documentation
105 * Bugfixes
106
107 #### Issues
108
109 * Feature 8685: Show state/type filter names in notice/debug log
110 * Feature 8686: Update documentation for "apply for" rules
111 * Feature 8693: New function: parse_performance_data
112 * Feature 8740: Add "access objects at runtime" examples to advanced section
113 * Feature 8761: Include more details in --version
114 * Feature 8816: Add "random" CheckCommand for test and demo purposes
115 * Feature 8827: Move release info in INSTALL.md into a separate file
116
117 * Bug 8660: Update syntax highlighting for 2.3 features
118 * Bug 8677: Re-order the object types in alphabetical order
119 * Bug 8724: Missing config validator for command arguments 'set_if'
120 * Bug 8734: startup.log broken when the DB schema needs an update
121 * Bug 8736: Don't update custom vars for each status update
122 * Bug 8748: Don't ignore extraneous arguments for functions
123 * Bug 8749: Build warnings with CMake 3.1.3
124 * Bug 8750: Flex version check does not reject unsupported versions
125 * Bug 8753: Fix a typo in the documentation of ICINGA2_WITH_MYSQL and ICINGA2_WITH_PGSQL
126 * Bug 8755: Fix VIM syntax highlighting for comments
127 * Bug 8757: Add missing keywords in the syntax highlighting files
128 * Bug 8762: Plugin "check_http" is missing in Windows environments
129 * Bug 8763: Typo in doc library-reference
130 * Bug 8764: Revamp migration documentation
131 * Bug 8765: Explain processing logic/order of apply rules with for loops
132 * Bug 8766: Remove prompt to create a TicketSalt from the wizard
133 * Bug 8767: Typo and invalid example in the runtime macro documentation
134 * Bug 8769: Improve error message for invalid field access
135 * Bug 8770: object Notification + apply Service fails with error "...refers to service which doesn't exist"
136 * Bug 8771: Correct HA documentation
137 * Bug 8829: Figure out why command validators are not triggered
138 * Bug 8834: Return doesn't work inside loops
139 * Bug 8844: Segmentation fault when executing "icinga2 pki new-cert"
140 * Bug 8862: wrong 'dns_lookup' custom attribute default in command-plugins.conf
141 * Bug 8866: Fix incorrect perfdata templates in the documentation
142 * Bug 8869: Array in command arguments doesn't work
143
144 ### What's New in Version 2.3.2
145
146 #### Changes
147
148 * Bugfixes
149
150 #### Issues
151
152 * Bug 8721: Log message for cli commands breaks the init script
153
154 ### What's New in Version 2.3.1
155
156 #### Changes
157
158 * Bugfixes
159
160 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
161
162 #### Issues
163
164 * Feature 8659: Implement String#contains
165
166 * Bug 8540: Kill signal sent only to check process, not whole process group
167 * Bug 8657: Missing program name in 'icinga2 --version'
168 * Bug 8658: Fix check_disk thresholds: make sure partitions are the last arguments
169 * Bug 8672: Api heartbeat message response time problem
170 * Bug 8673: Fix check_disk default thresholds and document the change of unit
171 * Bug 8679: Config validation fail because of unexpected new-line
172 * Bug 8680: Update documentation for DB IDO HA Run-Once
173 * Bug 8683: Make sure that the /var/log/icinga2/crash directory exists
174 * Bug 8684: Fix formatting for the GDB stacktrace
175 * Bug 8687: Crash in Dependency::Stop
176 * Bug 8691: Debian packages do not create /var/log/icinga2/crash
177
178 ### What's New in Version 2.3.0
179
180 #### Changes
181
182 * Improved configuration validation
183     * Unnecessary escapes are no longer permitted (e.g. \')
184     * Dashes are no longer permitted in identifier names (as their semantics are ambiguous)
185     * Unused values are detected (e.g. { "-M" })
186     * Validation for time ranges has been improved
187     * Additional validation rules for some object types (Notification and User)
188 * New language features
189     * Implement a separate type for boolean values
190     * Support for user-defined functions
191     * Support for conditional statements (if/else)
192     * Support for 'for' and 'while' loops
193     * Support for local variables using the 'var' keyword
194     * New operators: % (modulo), ^ (xor), - (unary minus) and + (unary plus)
195     * Implemented prototype-based methods for most built-in types (e.g. [ 3, 2 ].sort())
196     * Explicit access to local and global variables using the 'locals' and 'globals' keywords
197     * Changed the order in which filters are evaluated for apply rules with 'for'
198     * Make type objects accessible as global variables
199     * Support for using functions in custom attributes
200     * Access objects and their runtime attributes in functions (e.g. get_host(NodeName).state)
201 * ITL improvements
202     * Additional check commands were added to the ITL
203     * Additional arguments for existing check commands
204 * CLI improvements
205     * Add the 'icinga2 console' CLI command which can be used to test expressions
206     * Add the 'icinga2 troubleshoot' CLI command for collecting troubleshooting information
207     * Performance improvements for the 'icinga2 node update-config' CLI command
208     * Implement argument auto-completion for short options (e.g. daemon -c)
209     * 'node setup' and 'node wizard' create backups for existing certificate files
210 * Add ignore_soft_states option for Dependency object configuration
211 * Fewer threads are used for socket I/O
212 * Flapping detection for hosts and services is disabled by default
213 * Added support for OpenTSDB
214 * New Livestatus tables: hostsbygroup, servicesbygroup, servicesbyhostgroup
215 * Include GDB backtrace in crash reports
216 * Various documentation improvements
217 * Solved a number of issues where cluster instances would not reconnect after intermittent connection problems
218 * A lot of other, minor changes
219
220 * [DB IDO schema upgrade](17-upgrading-icinga-2.md#upgrading-icinga-2) to `1.13.0` required!
221
222 #### Issues
223
224 * Feature 3446: Add troubleshooting collect cli command
225 * Feature 6109: Don't spawn threads for network connections
226 * Feature 6570: Disallow side-effect-free r-value expressions in expression lists
227 * Feature 6697: Plugin Check Commands: add check_vmware_esx
228 * Feature 6857: Run CheckCommands with C locale (workaround for comma vs dot and plugin api bug)
229 * Feature 6858: Add some more PNP details
230 * Feature 6868: Disable flapping detection by default
231 * Feature 6923: IDO should fill program_end_time on a clean shutdown
232 * Feature 7136: extended Manubulon SNMP Check Plugin Command
233 * Feature 7209: ITL: Interfacetable
234 * Feature 7256: Add OpenTSDB Writer
235 * Feature 7292: ITL: Check_Mem.pl
236 * Feature 7294: ITL: ESXi-Hardware
237 * Feature 7326: Add parent soft states option to Dependency object configuration
238 * Feature 7361: Livestatus: Add GroupBy tables: hostsbygroup, servicesbygroup, servicesbyhostgroup
239 * Feature 7545: Please add labels in SNMP checks
240 * Feature 7564: Access object runtime attributes in custom vars & command arguments
241 * Feature 7610: Variable from for loop not usable in assign statement
242 * Feature 7700: Evaluate apply/object rules when the parent objects are created
243 * Feature 7702: Add an option that hides CLI commands
244 * Feature 7704: ConfigCompiler::HandleInclude* should return an AST node
245 * Feature 7706: ConfigCompiler::Compile* should return an AST node
246 * Feature 7748: Redesign how stack frames work for scripts
247 * Feature 7767: Rename _DEBUG to I2_DEBUG
248 * Feature 7774: Implement an AST Expression for T_CONST
249 * Feature 7778: Missing check_disk output on Windows
250 * Feature 7784: Implement the DISABLE_HOST_SVC_NOTIFICATIONS and ENABLE_HOST_SVC_NOTIFICATIONS commands
251 * Feature 7793: Don't build db_ido when both MySQL and PostgreSQL aren't enabled
252 * Feature 7794: Implement an option to disable building the Livestatus module
253 * Feature 7795: Implement an option to disable building the Demo component
254 * Feature 7805: Implement unit tests for the config parser
255 * Feature 7807: Move the cast functions into libbase
256 * Feature 7813: Implement the % operator
257 * Feature 7816: Document operator precedence
258 * Feature 7822: Make the config parser thread-safe
259 * Feature 7823: Figure out whether Number + String should implicitly convert the Number argument to a string
260 * Feature 7824: Implement the "if" and "else" keywords
261 * Feature 7873: Plugin Check Commands: Add icmp
262 * Feature 7879: Windows agent is missing the standard plugin check_ping
263 * Feature 7883: Implement official support for user-defined functions and the "for" keyword
264 * Feature 7901: Implement socket_path attribute for the IdoMysqlConnection class
265 * Feature 7910: The lexer shouldn't accept escapes for characters which don't have to be escaped
266 * Feature 7925: Move the config file for the ido-*sql features into the icinga2-ido-* packages
267 * Feature 8016: Documentation enhancement for snmp traps and passive checks.
268 * Feature 8019: Register type objects as global variables
269 * Feature 8020: Improve output of ToString for type objects
270 * Feature 8030: Evaluate usage of function()
271 * Feature 8033: Allow name changed from inside the object
272 * Feature 8040: Disallow calling strings as functions
273 * Feature 8043: Implement a boolean sub-type for the Value class
274 * Feature 8047: ConfigCompiler::HandleInclude should return an inline dictionary
275 * Feature 8060: Windows plugins should behave like their Linux cousins
276 * Feature 8065: Implement a way to remove dictionary keys
277 * Feature 8071: Implement a way to call methods on objects
278 * Feature 8074: Figure out how variable scopes should work
279 * Feature 8078: Backport i2tcl's error reporting functionality into "icinga2 console"
280 * Feature 8096: Document the new language features in 2.3
281 * Feature 8121: feature enable should use relative symlinks
282 * Feature 8133: Implement line-continuation for the "console" command
283 * Feature 8169: Implement additional methods for strings
284 * Feature 8172: Assignments shouldn't have a "return" value
285 * Feature 8195: Host/Service runtime macro downtime_depth
286 * Feature 8226: Make invalid log-severity option output an error instead of a warning
287 * Feature 8244: Implement keywords to explicitly access globals/locals
288 * Feature 8259: The check "hostalive" is not working with ipv6
289 * Feature 8269: Implement the while keyword
290 * Feature 8277: Add macros $host.check_source$ and $service.check_source$
291 * Feature 8290: Make operators &&, || behave like in JavaScript
292 * Feature 8291: Implement validator support for function objects
293 * Feature 8293: The Zone::global attribute is not documented
294 * Feature 8316: Extend disk checkcommand
295 * Feature 8322: Implement Array#join
296 * Feature 8371: Add path information for objects in object list
297 * Feature 8374: Add timestamp support for Graphite
298 * Feature 8386: Add documentation for cli command 'console'
299 * Feature 8393: Implement support for Json.encode and Json.decode
300 * Feature 8394: Implement continue/break keywords
301 * Feature 8399: Backup certificate files in 'node setup'
302 * Feature 8410: udp check command is missing arguments.
303 * Feature 8414: Add ITL check command for check_ipmi_sensor
304 * Feature 8429: add webinject checkcommand
305 * Feature 8465: Add the ability to use a CA certificate as a way of verifying hosts for CSR autosigning
306 * Feature 8467: introduce time dependent variable values
307 * Feature 8498: Snmp CheckCommand misses various options
308 * Feature 8515: Show slave lag for the cluster-zone check
309 * Feature 8522: Update Remote Client/Distributed Monitoring Documentation
310 * Feature 8527: Change Livestatus query log level to 'notice'
311 * Feature 8548: Add support for else-if
312 * Feature 8575: Include GDB backtrace in crash reports
313 * Feature 8599: Remove macro argument for IMPL_TYPE_LOOKUP
314 * Feature 8600: Add validator for time ranges in ScheduledDowntime objects
315 * Feature 8610: Support the SNI TLS extension
316 * Feature 8621: Add check commands for NSClient++
317 * Feature 8648: Document closures ('use')
318
319 * Bug 6171: Remove name and return value for stats functions
320 * Bug 6959: Scheduled start time will be ignored if the host or service is already in a problem state
321 * Bug 7311: Invalid macro results in exception
322 * Bug 7542: Update validators for CustomVarObject
323 * Bug 7576: validate configured legacy timeperiod ranges
324 * Bug 7582: Variable expansion is single quoted.
325 * Bug 7644: Unity build doesn't work with MSVC
326 * Bug 7647: Avoid rebuilding libbase when the version number changes
327 * Bug 7731: Reminder notifications not being sent but logged every 5 secs
328 * Bug 7765: DB IDO: Duplicate entry icinga_{host,service}dependencies
329 * Bug 7800: Fix the shift/reduce conflicts in the parser
330 * Bug 7802: Change parameter type for include and include_recursive to T_STRING
331 * Bug 7808: Unterminated string literals should cause parser to return an error
332 * Bug 7809: Scoping rules for "for" are broken
333 * Bug 7810: Return values for functions are broken
334 * Bug 7811: The __return keyword is broken
335 * Bug 7812: Validate array subscripts
336 * Bug 7814: Set expression should check whether LHS is a null pointer
337 * Bug 7815: - operator doesn't work in expressions
338 * Bug 7826: Compiler warnings
339 * Bug 7830: - shouldn't be allowed in identifiers
340 * Bug 7871: Missing persistent_comment, notify_contact columns for acknowledgement table
341 * Bug 7894: Fix warnings when using CMake 3.1.0
342 * Bug 7895: Serialize() fails to serialize objects which don't have a registered type
343 * Bug 7995: Windows Agent: Missing directory "zones" in setup
344 * Bug 8018: Value("").IsEmpty() should return true
345 * Bug 8029: operator precedence for % and > is incorrect
346 * Bug 8041: len() overflows
347 * Bug 8061: Confusing error message for import
348 * Bug 8067: Require at least one user for notification objects (user or as member of user_groups)
349 * Bug 8076: icinga 2 Config Error needs to be more verbose
350 * Bug 8081: Location info for strings is incorrect
351 * Bug 8100: POSTGRES IDO: invalid syntax for integer: "true" while trying to update table icinga_hoststatus
352 * Bug 8111: User::ValidateFilters isn't being used
353 * Bug 8117: Agent checks fail when there's already a host with the same name
354 * Bug 8122: Config file passing validation causes segfault
355 * Bug 8132: Debug info for indexer is incorrect
356 * Bug 8136: Icinga crashes when config file name is invalid
357 * Bug 8164: escaped backslash in string literals
358 * Bug 8166: parsing include_recursive
359 * Bug 8173: Segfault on icinga::String::operator= when compiling configuration
360 * Bug 8175: Compiler warnings
361 * Bug 8179: Exception on missing config files
362 * Bug 8184: group assign fails with bad lexical cast when evaluating rules
363 * Bug 8185: Argument auto-completion doesn't work for short options
364 * Bug 8211: icinga2 node update should not write config for blacklisted zones/host
365 * Bug 8230: Lexer term for T_ANGLE_STRING is too aggressive
366 * Bug 8249: Problems using command_endpoint inside HA zone
367 * Bug 8257: Report missing command objects on remote agent
368 * Bug 8260: icinga2 node wizard: Create backups of certificates
369 * Bug 8289: Livestatus operator =~ is not case-insensitive
370 * Bug 8294: Running icinga2 command as non privilged user raises error
371 * Bug 8298: notify flag is ignored in ACKNOWLEDGE_*_PROBLEM commands
372 * Bug 8300: ApiListener::ReplayLog shouldn't hold mutex lock during call to Socket::Poll
373 * Bug 8307: PidPath, VarsPath, ObjectsPath and StatePath no longer read from init.conf
374 * Bug 8309: Crash in ScheduledDowntime::CreateNextDowntime
375 * Bug 8313: Incorrectly formatted timestamp in .timestamp file
376 * Bug 8318: Remote Clients: Add manual setup cli commands
377 * Bug 8323: Apply rule '' for host does not match anywhere!
378 * Bug 8333: Icinga2 master doesn't change check-status when "accept_commands = true" is not set at client node
379 * Bug 8372: Stacktrace on Endpoint not belonging to a zone or multiple zones
380 * Bug 8383: last_hard_state missing in StatusDataWriter
381 * Bug 8387: StatusDataWriter: Wrong host notification filters (broken fix in #8192)
382 * Bug 8388: Config sync authoritative file never created
383 * Bug 8389: Added downtimes must be triggered immediately if checkable is Not-OK
384 * Bug 8390: Agent writes CR CR LF in synchronized config files
385 * Bug 8397: Icinga2 config reset after package update (centos6.6)
386 * Bug 8425: DB IDO: Duplicate entry icinga_scheduleddowntime
387 * Bug 8433: Make the arguments for the stats functions const-ref
388 * Bug 8434: Build fails on OpenBSD
389 * Bug 8436: Indicate that Icinga2 is shutting down in case of a fatal error
390 * Bug 8438: DB IDO {host,service}checks command_line value is "Object of type 'icinga::Array'"
391 * Bug 8444: Don't attempt to restore program state from non-existing state file
392 * Bug 8452: Livestatus query on commands table with custom vars fails
393 * Bug 8461: Don't request heartbeat messages until after we've synced the log
394 * Bug 8473: Exception in WorkQueue::StatusTimerHandler
395 * Bug 8488: Figure out why 'node update-config' becomes slow over time
396 * Bug 8493: Misleading ApiListener connection log messages on a master (Endpoint vs Zone)
397 * Bug 8496: Icinga doesn't update long_output in DB
398 * Bug 8511: Deadlock with DB IDO dump and forcing a scheduled check
399 * Bug 8517: Config parser fails non-deterministic on Notification missing Checkable
400 * Bug 8519: apply-for incorrectly converts loop var to string
401 * Bug 8529: livestatus limit header not working
402 * Bug 8535: Crash in ApiEvents::RepositoryTimerHandler
403 * Bug 8536: Valgrind warning for ExternalCommandListener::CommandPipeThread
404 * Bug 8537: Crash in DbObject::SendStatusUpdate
405 * Bug 8544: Hosts: process_performance_data = 0 in database even though enable_perfdata = 1 in config
406 * Bug 8555: Don't accept config updates for zones for which we have an authoritative copy of the config
407 * Bug 8559: check_memory tool shows incorrect memory size on windows
408 * Bug 8593: Memory leak in Expression::GetReference
409 * Bug 8594: Improve Livestatus query performance
410 * Bug 8596: Dependency: Validate *_{host,service}_name objects on their existance
411 * Bug 8604: Attribute hints don't work for nested attributes
412 * Bug 8627: Icinga2 shuts down when service is reloaded
413 * Bug 8638: Fix a typo in documentation