Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Icinga 2.14 #9760

Merged
merged 62 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
560918d
Icinga 2.14
Al2Klimov May 10, 2023
976e6fe
TEMPORARILY don't annoy colleagues
Al2Klimov May 10, 2023
d62bf9f
docs
Al2Klimov May 10, 2023
58671ed
ITL WIP
Al2Klimov May 11, 2023
2f52659
ITL WIP
Al2Klimov May 11, 2023
f31b6ae
ITL WIP
Al2Klimov May 11, 2023
3bbf7ef
ITL WIP
Al2Klimov May 11, 2023
9075645
ITL WIP
Al2Klimov May 11, 2023
4a3b4ee
ITL WIP
Al2Klimov May 11, 2023
533c826
Breaking Changes
Al2Klimov May 11, 2023
1087f90
Breaking Changes
Al2Klimov May 11, 2023
764acd5
Significantly reduce config load time of large setups.
Al2Klimov May 11, 2023
bf1c3bc
Miscellaneous
Al2Klimov May 11, 2023
cc7953e
+On the other hand MSIs are now 75% smaller than before.
Al2Klimov May 12, 2023
ab5b08a
Enhancements
Al2Klimov May 12, 2023
13cec68
Bugfixes
Al2Klimov May 12, 2023
1dcaec8
follow ups
Al2Klimov May 12, 2023
d150868
misc
Al2Klimov May 12, 2023
b73c7f6
misc
Al2Klimov May 12, 2023
b7303e5
upgrading stub
Al2Klimov May 15, 2023
ba1d31a
Dependencies and Redundancy Groups
Al2Klimov May 15, 2023
1c3bb7f
WIP
Al2Klimov May 15, 2023
15f9287
upgrading done
Al2Klimov May 15, 2023
bb0b0a9
fix
Al2Klimov May 22, 2023
72248e7
fix
Al2Klimov May 22, 2023
d18e9de
fix
Al2Klimov May 22, 2023
69f931b
loose ends
Al2Klimov Jun 1, 2023
659a008
9737
Al2Klimov Jun 1, 2023
57304a4
WIP
Al2Klimov Jun 1, 2023
69033f2
WIP
Al2Klimov Jun 1, 2023
9f98051
-
Al2Klimov Jun 1, 2023
6393899
-
Al2Klimov Jun 6, 2023
8c4751f
cluster-zone ain't ITL
Al2Klimov Jun 7, 2023
da390e1
Link to: Redundancy Groups: "Emulate v2.12/v2.13 behavior" section
Al2Klimov Jun 7, 2023
33df7ae
future CMake version
Al2Klimov Jun 7, 2023
7cbc321
child was considered unreachable
Al2Klimov Jun 7, 2023
3129f67
Typo
Al2Klimov Jun 12, 2023
42f4228
redundancy groups
Al2Klimov Jun 12, 2023
28f2360
Don't hang in timed out connection attempt.
Al2Klimov Jun 30, 2023
cf3c724
Default email notification scripts: link to Icinga DB Web, not the mo…
Al2Klimov Jun 30, 2023
91f9fdd
Introduce redundancy groups allowing dependencies to represent (not) …
Al2Klimov Jun 30, 2023
ac0bacf
ElasticsearchWriter: fix data buffer flush race condition during stop…
Al2Klimov Jul 3, 2023
eb99df3
Forget that attribute was modified via API if it's changed back to it…
Al2Klimov Jul 3, 2023
d001020
Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers. #9811
Al2Klimov Jul 3, 2023
50a26cc
API: POST /v1/objects/TYPE/NAME: allow array of modified attributes t…
Al2Klimov Jul 3, 2023
08e829a
Icinga DB feature: normalize several Redis data not to crash the Go d…
Al2Klimov Jul 3, 2023
4982bd9
Allow to connect dependencies via redundancy groups. Only parents wit…
Al2Klimov Jul 3, 2023
2fc6935
API: POST /v1/objects: allow to discard some previously modified attr…
Al2Klimov Jul 3, 2023
c7aa859
Clean up global default TLS cipher list to improve security. #9809
Al2Klimov Jul 3, 2023
84e165b
Update OpenSSL shipped on Windows to v3.0.9. #9787
Al2Klimov Jul 3, 2023
5ac8ff6
ElasticsearchWriter: support Elasticsearch v8. #9812
Al2Klimov Jul 3, 2023
0215a02
Trigger flexible downtimes not in the past if checkable is already do…
Al2Klimov Jul 4, 2023
e60908e
PR 9524 doesn't matter
Al2Klimov Jul 4, 2023
587697f
typo
Al2Klimov Jul 4, 2023
7f55b3d
API: reject config modifications during reload with HTTP status 503. …
Al2Klimov Jul 4, 2023
427e170
Speed up Icinga DB config dump. #9524
Al2Klimov Jul 4, 2023
68d97a4
2023-07-12
Al2Klimov Jul 5, 2023
1a93749
Revert "TEMPORARILY don't annoy colleagues"
Al2Klimov Jul 5, 2023
16b84b3
Service#host\_name
Al2Klimov Jul 7, 2023
66b69d2
`_`
Al2Klimov Jul 7, 2023
28665c5
more `_`
Al2Klimov Jul 7, 2023
deb997b
Application::m_LastReloadFailed: if double isn't always lock free, us…
Al2Klimov Jul 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
192 changes: 192 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,198 @@ documentation before upgrading to a new release.

Released closed milestones can be found on [GitHub](https://github.com/Icinga/icinga2/milestones?state=closed).

## 2.14.0 (2023-07-12)

[Issues and PRs](https://github.com/Icinga/icinga2/issues?q=is%3Aclosed+milestone%3A2.14.0)

### Notes

Upgrading docs: https://icinga.com/docs/icinga2/snapshot/doc/16-upgrading-icinga-2/#upgrading-to-2-14

Thanks to all contributors:
[atj](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Aatj),
[atwebm](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Aatwebm),
[cspeterson](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Acspeterson),
[cycloon](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Acycloon),
[DamianoChini](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3ADamianoChini),
[efuss](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Aefuss),
[fabieins](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Afabieins),
[haxtibal](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Ahaxtibal),
[jaapmarcus](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Ajaapmarcus),
[log1-c](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Alog1-c),
[lrupp](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Alrupp),
[maggu](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Amaggu),
[mcodato](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Amcodato),
[Napsty](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3ANapsty),
[orbison](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Aorbison),
[peteeckel](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Apeteeckel),
[slalomsk8er](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Aslalomsk8er),
[stevie-sy](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3Astevie-sy),
[Tqnsls](https://github.com/Icinga/icinga2/pulls?q=is%3Apr+is%3Aclosed+milestone%3A2.14.0+author%3ATqnsls)

### Breaking Changes

* Remove CheckResultReader (which has been deprecated since v2.9). #9714
* Remove StatusDataWriter (which has been deprecated since v2.9). #9715
* ElasticsearchWriter: drop support for Elasticsearch < v7. #9812
* Consider a checkable unreachable once one Dependency fails.
Previously all of them had to fail. (Consult the upgrading docs.) #8218
Al2Klimov marked this conversation as resolved.
Show resolved Hide resolved
* API: reject config modifications during reload with HTTP status 503. #9445
* `icinga2 daemon`: to reduce config load time, write file needed by
`icinga2 object list` only if `--dump-objects` is given. #9586 #9591
* Default email notification scripts: link to Icinga DB Web,
not the monitoring module. (Consult the upgrading docs.) #9742 #9757
* API: for security reasons hide TicketSalt in /v1/variables. #7863

#### Icinga 2 Config DSL

* Disallow global variable modification after config commit start (i.e.
inside `object/apply T "x" { ... }`) to reduce config load time. #9740
* Forbid Dependency cycles at config load time. #8389
* Allow only strings in the arrays Host#groups, Service#groups and
User#groups. Needed for consistency, especially by the IDO. #9057
* Disallow empty object names. (They worked only partially anyway.) #9409

#### Windows Agent only

The official MSIs don't include the following features anymore.
They weren't intended, tested or needed on Windows and only waste build time,
bandwidth and disk space. Both new installations and upgrades are affected.

* ElasticsearchWriter #9704
* GelfWriter #9704
* GraphiteWriter #9704
* InfluxdbWriter and Influxdb2Writer #9704
* OpenTsdbWriter #9704
* PerfdataWriter #9704

We also don't ship the following files anymore.
(You can still obtain them manually.)

* `NSCP.msi` (NSClient++ installer) #9703
* [doc/](doc) (Icinga 2 markdown documentation) #9705

On the other hand MSIs are now 75% smaller than before.

### Enhancements

* Significantly reduce config load time of large setups.
#8118 #9555 #9557 #9572 #9577 #9603 #9608 #9627 #9648 #9657 #9662
* Allow to connect dependencies via redundancy groups. Only parents within
one group are assumed to provide redundancy for each other. #8218
* Built-in check command ifw-api, communicates directly with the Icinga for
Windows REST API. (Doesn't spawn a PowerShell process for that.) #9062
* JournaldLogger which logs to systemd journal. #9000
* API: POST /v1/objects: allow to discard some previously modified attributes,
i.e. to restore the config files' values. #9783
* ElasticsearchWriter: support Elasticsearch v8. #9812
* Support `$env.ENV_VAR_NAME$` macros. #8302
* Speed up Icinga DB config dump. #9524
* Default mail notification scripts: also print `$host.notes$` and `$service.notes$`. #9713
* Enable built-in OpenSSL DH parameters to allow DHE TLS ciphers. #9811
* Clean up global default TLS cipher list to improve security. #9809
* Influxdb(2)Writer: write more precise timestamps (nanoseconds). #9599

### Bugfixes

* Icinga DB feature: normalize several Redis data not to crash the Go daemon.
#9772 #9775 #9792 #9793 #9794 #9805
* Fix parsing of perfdata across multiple lines in plugin output. #8969
* icinga check: fix last reload failure time. #8429
* Resolve macros inside custom vars of IcingaApplication. #9779
* SELinux: allow Icinga and its plugins to write to syslog. #9688
* ElasticsearchWriter: fix data buffer flush race condition during stop. #9810
* Trigger flexible downtimes not in the past if checkable is already down. #9726
* Send downtime expiration notifications immediately, not after up to a minute. #9726
julianbrost marked this conversation as resolved.
Show resolved Hide resolved

#### Cluster

* Don't hang in timed out connection attempt. #9711 #9725
* Fix lost acknowledgements after re-connect. #9718
* cluster-zone check: don't complain about not connected
other local zone members if there aren't any. #8595
* Allow agent to update executions delegated to it via /v1/actions/execute-command. #8627

#### API

* Disallow breaking inter-object relationships by changing
relationship attributes at runtime, e.g. Service#host_name. #9407
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, there is a single unescaped _ here.

* Correct several HTTP response status codes. #7958 #9354
* Correct Boolean field types previously reported by /v1/types as Number. #9514

#### CLI

* `icinga2 daemon`: fix -DConfiguration.Concurrency= flag
which now allows to override the number of threads. #9643
* `icinga2 node wizard`: avoid unnecessary chown(2) which may fail and abort the wizard. #8744
* Correct several log messages. #8895 #8965 #9663

### ITL

Add linux\_netdev check command. #9045

#### Command Argument Changes

* disk: don't pass -m (disk\_megabytes) by default. #9642
* disk: pass -X fuse.portal (disk\_exclude\_type) by default. #9459
* http: support multiple -k (http\_header) as array. #8574
* icmp: double defaults for -w (icmp\_wpl) and -c (icmp\_cpl). #9041
* logfiles: pass --winwarncrit (logfiles\_winwarncrit) without argument. #9056
* nwc\_health: pass SNMPv3-only args only when using SNMPv3. #9095
* vmware-esx-dc-runtime-tools and vmware-esx-soap-vm-runtime-tools:
rename --open-vm-tools to --open\_vm\_tools\_ok (vmware\_openvmtools). #9611

#### New Command Arguments

| Command | Argument | Custom Variable | PR |
|----------------------------------|----------------------------|------------------------------------------|-------|
| disk | -P | disk\_inode\_perfdata | #9494 |
| esxi\_hardware | --format | esxi\_hardware\_format | #9435 |
| esxi\_hardware | --pretty | esxi\_hardware\_pretty | #9435 |
| http | --verify-host | http\_verify\_host | #8005 |
| icingacli-businessprocess | --ack-is-ok | icingacli\_businessprocess\_ackisok | #9103 |
| icingacli-businessprocess | --blame | icingacli\_businessprocess\_blame | #9103 |
| icingacli-businessprocess | --colors | icingacli\_businessprocess\_colors | #9103 |
| icingacli-businessprocess | --downtime-is-ok | icingacli\_businessprocess\_downtimeisok | #9103 |
| icingacli-businessprocess | --root-cause | icingacli\_businessprocess\_rootcause | #9103 |
| mem | -a | mem\_available | #9385 |
| mongodb | --disable\_retry\_writes | mongodb\_disableretrywrites | #9539 |
| mongodb | --ssl-ca-cert-file | mongodb\_ssl\_ca\_cert\_file | #9610 |
| mysql | --extra-opts | mysql\_extra\_opts | #9197 |
| nrpe | -3 | nrpe\_version\_3 | #9296 |
| nrpe | -D | nrpe\_no\_logging | #9016 |
| nrpe | -P | nrpe\_payload\_size | #9032 |
| pgsql | --extra-opts | pgsql\_extra\_opts | #9197 |
| postgres | $PGCONTROLDATA (env. var.) | postgres\_pgcontroldata | #8929 |
| postgres | --datadir | postgres\_datadir | #8924 |
| postgres | --language | postgres\_language | #8924 |
| postgres | --perflimit | postgres\_perflimit | #8924 |
| ssl\_cert | --ignore-host-cn | ssl\_cert\_ignore\_host\_cn | #9512 |
| ssl\_cert | --ignore-ocsp-errors | ssl\_cert\_ignore\_ocsp\_errors | #9512 |
| ssl\_cert | --ignore-ocsp-timeout | ssl\_cert\_ignore\_ocsp\_timeout | #9512 |
| ssl\_cert | --ignore-tls-renegotiation | ssl\_cert\_ignore\_tls\_renegotiation | #9042 |
| ssl\_cert | --proxy | ssl\_cert\_proxy | #8927 |
| tcp | --sni | tcp\_sni | #9347 |
| vmware-esx-dc-runtime-tools | --no\_vm\_tools\_ok | vmware\_novmtools | #9611 |
| vmware-esx-soap-vm-runtime-tools | --no\_vm\_tools\_ok | vmware\_novmtools | #9611 |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use `foo_bar` instead of foo\_bar instead? IMHO this would make it more pleasant to read in the plain text form and also is more grep-friendly.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could do this, but this would enlarge the table further. see also doc/ITL/disk

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see also doc/ITL/disk

Either I don't understand what you're referring to or what I should see there.


### Miscellaneous

* Require GCC 7+ for building to enable C++17. #9133 #9485 #9489
* Require CMake v2.8.12+ for building.
(Compatibility with older ones will be removed from a future CMake version.) #9706
* Repair config reload on OpenBSD by using waitpid(2), not a SIGCHLD handler. #9518
* Ignore SIGHUP in main process to allow `/etc/rc.d/icinga2 reload`
sending it to all Icinga 2 processes on OpenBSD. #9622
* Fix crash in debug build on macOS when API and debug log are enabled. #9497
* Update Boost shipped on Windows to v1.82. #9761
* Update OpenSSL shipped on Windows to v3.0.9. #9787
* Update vendored https://github.com/nlohmann/json to v3.9.1. #9675
* Update vendored https://github.com/nemtrif/utfcpp to v3.2.3. #9683
* Documentation: several fixes and improvements. #8954 #9741 #9763 #9767 #9769 #9777
* Several code quality improvements. #8815 #9106 #9250
#9508 #9517 #9537 #9594 #9605 #9606 #9641 #9658 #9702 #9717 #9738
julianbrost marked this conversation as resolved.
Show resolved Hide resolved

## 2.13.7 (2023-02-16)

This security release updates Boost and OpenSSL libraries bundled on Windows
Expand Down
2 changes: 1 addition & 1 deletion ICINGA2_VERSION
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Version: 2.13.0
Version: 2.14.0
Revision: 1
27 changes: 27 additions & 0 deletions doc/16-upgrading-icinga-2.md
julianbrost marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,33 @@ Specific version upgrades are described below. Please note that version
updates are incremental. An upgrade from v2.6 to v2.8 requires to
follow the instructions for v2.7 too.

## Upgrading to v2.14 <a id="upgrading-to-2-14"></a>

### Dependencies and Redundancy Groups <a id="upgrading-to-2-14-dependencies"></a>

Before Icinga v2.12 all dependencies were cumulative.
I.e. the child was considered reachable only if no dependency was violated.
In v2.12 and v2.13, all dependencies were redundant.
I.e. the child was considered unreachable only if no dependency was fulfilled.

v2.14 restores the pre-v2.12 behavior, but allows to override it.
I.e. you can still make any number of your dependencies redundant, as you wish.
For details read the docs' [redundancy groups section](03-monitoring-basics.md#dependencies-redundancy-groups).

### Email Notification Scripts <a id="upgrading-to-2-14-email-notification"></a>

The email notification scripts shipped with Icinga 2 (/etc/icinga2/scripts)
now link to Icinga DB Web, not the monitoring module.
Both new and existing installations are affected unless you've altered the scripts.

In the latter case package managers won't upgrade those "config" files in-place,
but just put files with similar names into the same directory.
This allows you to patch them by yourself based on diff(1).

On the other hand, if you want to stick to the monitoring module for now,
add any comments to the notification scripts before upgrading.
This way package managers won't touch those files.

## Upgrading to v2.13 <a id="upgrading-to-2-13"></a>

### DB IDO Schema Update <a id="upgrading-to-2-13-db-ido"></a>
Expand Down