Julian Brost
cbc0b21b86
Checkable: sync state_before_suppression in cluster
...
This ensures that in case of a failover in an HA zone, the other can take over
properly and has the required state to send the proper notifications.
2022-03-03 14:25:23 +01:00
Julian Brost
39cee3538a
Checkable: improve state notifications after suppression ends
...
This commit changes the Checkable notification suppression logic (notifications
are currently suppressed on the Checkable if it is unreachable, in a downtime,
or acknowledged) to that after the suppression reason ends, a state
notification is sent if and only if the first hard state after is different
from the last hard state from before. If the checkable is in a soft state after
the suppression ends, the notification is further suppressed until a hard state
is reached.
To achieve this behavior, a new attribute state_before_suppression is added to
Checkable. This attribute is set to the last hard state the first time either a
PROBLEM or a RECOVERY notification is suppressed. Compared to from before,
neither of these two flags in the suppressed_notification will ever be cleared
while the supression is still ongoing but only after the suppression ended and
the current state is compared with the old state stored in
state_before_suppression.
2022-03-03 14:25:23 +01:00
Julian Brost
23a4640ccd
Merge pull request #9148 from Icinga/feature/icingadb-redis-lost-history-memory
...
Icinga DB: keep history in memory until written to Redis
2022-03-02 19:46:01 +01:00
Alexander A. Klimov
6b5106ffdd
IcingaDB#Stop(): don't block shutdown, timeout instead
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
3a8efcb4ea
IcingaDB#Send*(): don't enqueue any history once stopped
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
cac22fe38b
RedisConnection#Connect(): wait for all promises to be completed
...
by the read loop from the previous connection.
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
9585a63fa0
Introduce IoEngine::YieldCurrentCoroutine()
2022-03-02 16:39:44 +01:00
Alexander A. Klimov
732d5c472d
RedisConnection#ReadLoop(): don't crash (silently) if a promise to be set is already set
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
50fee6aeb9
Icinga DB: include amount of history kept in memory in /v1/status
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
ad0fe764f7
Icinga DB: log amount of history kept in memory every 10s
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
8ea62f7fc7
Icinga DB: keep history in memory until written to Redis
...
by putting the messages into a Bulker and retrying each chunk.
2022-03-02 16:39:37 +01:00
Alexander A. Klimov
9a8d388734
Introduce Bulker
2022-03-02 16:39:37 +01:00
Julian Brost
ab70178bb3
Merge pull request #9266 from Icinga/feature/subscription
...
GHA: build RHEL and Amazon Linux
2022-03-02 09:09:07 +01:00
Alexander Aleksandrovič Klimov
3fee562e7a
Merge pull request #9256 from Icinga/bugfix/add-some-missing-locks
...
Add some missing locks to prevent data races
2022-03-01 16:12:50 +01:00
Alexander A. Klimov
3c75e09e99
GHA: preserve .rpm job names
2022-03-01 15:37:38 +01:00
Alexander A. Klimov
b6d22345f2
GHA: build Amazon Linux
2022-03-01 13:13:38 +01:00
Alexander A. Klimov
799f451fc8
GHA: build RHEL
2022-03-01 13:13:38 +01:00
Alexander A. Klimov
8c0b118302
GHA: correct subscription packages repo
2022-03-01 13:13:38 +01:00
Alexander A. Klimov
f6b194e9ae
GHA: new subscription packages repo access token
...
with more permissions and URL-friendlier login name.
2022-03-01 13:13:38 +01:00
Alexander A. Klimov
9013ebf0fb
GHA: explicitly specify whether $DISTRO packages require subscription
...
to have all info at one place in the file.
2022-02-28 16:36:16 +01:00
Julian Brost
9d3eba8383
Merge pull request #9259 from Icinga/bugfix/event-handler-spamming-8704
...
Checkable#ExecuteEventHandler(): don't outsource event command run twice
2022-02-25 16:51:31 +01:00
Yonas Habteab
f00a3c9693
ConfigObject: Initialize local static var at declaration to ensure thread safety
2022-02-25 15:23:49 +01:00
Yonas Habteab
fb21345bfd
ConfigItem: Use atomic variables for notified and commited items count
2022-02-25 15:17:33 +01:00
Alexander A. Klimov
74935dad7b
Checkable#ExecuteEventHandler(): don't outsource event command run twice
...
refs #8704
2022-02-24 14:03:57 +01:00
Alexander Aleksandrovič Klimov
db321b9fcb
Merge pull request #9230 from Icinga/feature/installation-instructions
...
Update installation instructions for easier navigation on icinga.com
2022-02-21 16:38:42 +01:00
Alexander Aleksandrovič Klimov
cf8923d628
Merge pull request #9016 from Napsty/nrpe-disable-logging
...
Add new check_nrpe parameter -D to disable logging to syslog
2022-02-21 12:19:56 +01:00
Julian Brost
5383df3c79
Merge pull request #9212 from Icinga/bugfix/multi-ido-notification-id
...
IDO: fix incorrect contacts in notification history with multiple IDO instances on a single node
2022-02-21 11:40:46 +01:00
Blerim Sheqa
a759c1e451
Update installation instructions for easier navigation on icinga.com
2022-02-18 15:09:09 +01:00
Julian Brost
8e81faf3e0
Merge pull request #9221 from Icinga/bugfix/processcheckresult-dependency-deadlock
...
Prevent deadlock in ProcessCheckResult
2022-02-18 14:14:46 +01:00
Julian Brost
99008755b5
Merge pull request #9213 from Icinga/feature/icingadb-add-previous_soft_state-to-host_state-and-service_state-9210
...
IcingaDB: Add previous_soft_state to host_state and service_state
2022-02-18 14:09:35 +01:00
Julian Brost
3bb9cdb8cc
Prevent deadlock in ProcessCheckResult
...
Without this commit, children and parents of a checkable were rescheduled on a
state change while holding the lock for the current checkable. If both ends of
a dependency are checked at the same time and both change state, they could end
up in a deadlock waiting for each other.
This commit fixes this problem by changing the code so that other checkables
are rescheduled only after releasing the lock for the current checkable.
2022-02-17 16:13:25 +01:00
Alexander A. Klimov
c613e62454
IcingaDB: Add previous_soft_state to host_state and service_state
...
refs #9210
2022-02-14 11:32:46 +01:00
Julian Brost
7c9d0fff01
IDO: use per-instance notification_id in history
...
When there are multiple active IDO instances on the same node, before this
commit, all of them would share a single DbValue object for the notification_id
column of the icinga_contactnotifications table. This resulted in the issue
that one database references the notification_id in another database.
This commit fixes this by using a separate DbValue value for each IDO instance.
This needs a new signal as the existing OnQuery and OnMultipleQueries signals
perform the same queries on all IDO instances, but different queries are needed
here per instance (they only differ in the referenced DbValue). Therefore, a
new signal OnMakeQueries is added that takes a std::function which is called
once per IDO instance and can access callbacks to perform one or multiple
queries only on this specific IDO instance.
2022-02-10 16:36:35 +01:00
Alexander Aleksandrovič Klimov
8016b013ac
Merge pull request #9208 from Icinga/bugfix/gha-pin-windows-version
...
GitHub Actions: pin Windows Server version to 2019
2022-02-09 12:52:07 +01:00
Julian Brost
4c4731a461
GitHub Actions: pin Windows Server version to 2019
2022-02-04 14:09:52 +01:00
Alexander Aleksandrovič Klimov
948f70a175
Merge pull request #9203 from Icinga/probot/update-authors/master/d0c7dc86e1154e0233eb1e1a360bfc6a80d6c495
...
Update AUTHORS
2022-02-03 16:06:54 +01:00
Julian Brost
1b0ad099f1
Merge pull request #9154 from Icinga/bugfix/icingadb-reachabilitychangehandler-9143
...
Icinga DB: ensure is_reachable and severity don't miss updates
2022-02-03 14:53:51 +01:00
icinga-probot[bot]
b767e92738
Update AUTHORS
2022-02-03 10:29:24 +00:00
Alexander Aleksandrovič Klimov
d0c7dc86e1
Merge pull request #9197 from maggu/feature/db-extra-opts
...
ITL: Add --extra-opts parameter to the mysql and pgsql CheckCommand d…
2022-02-03 11:29:03 +01:00
Alexander A. Klimov
2ef3dd6a38
Checkable#ProcessCheckResult(): call Checkable::OnReachabilityChanged less often
...
Call it only on state changes to reduce no-op Redis/IDO updates a lot.
refs #9143
2022-02-03 11:12:53 +01:00
Alexander Aleksandrovič Klimov
74c98d338b
Merge pull request #9201 from Icinga/Al2Klimov-patch-6
...
GHA: drop CentOS 8
2022-02-02 16:06:59 +01:00
Alexander Aleksandrovič Klimov
0d5b733af6
GHA: drop CentOS 8
...
It's EOL.
2022-02-02 11:46:30 +01:00
Julian Brost
4491123f7f
Merge pull request #9198 from Icinga/Al2Klimov-patch-6
...
Doc: technical concepts: allow to change severity formula across Icinga 2 releases
2022-01-31 16:43:06 +01:00
Julian Brost
373ca14137
Merge pull request #9196 from Icinga/Al2Klimov-patch-4
...
Service#GetSeverity(): behave as the respective IDO query of Icinga Web
2022-01-31 16:35:49 +01:00
Alexander Aleksandrovič Klimov
ff686792dd
Doc: technical concepts: allow to change severity formula across Icinga 2 releases
...
so nobody is surprised in that case.
2022-01-31 12:05:52 +01:00
C C Magnus Gustavsson
a9b6b1dba0
ITL: Add --extra-opts parameter to the mysql and pgsql CheckCommand definitions
2022-01-31 11:40:04 +01:00
Alexander Aleksandrovič Klimov
ff712f6b23
Service#GetSeverity(): behave as the respective IDO query of Icinga Web
...
which doesn't include host reachability.
2022-01-27 12:21:06 +01:00
Alexander A. Klimov
4c38715ef2
Checkable#ProcessCheckResult(): call Checkable::OnReachabilityChanged last
...
to ensure Checkable#IsReachable() returns correctly for dependency children inside OnReachabilityChanged().
That needs the dependency parent to be already in the correct state.
refs #9143
2022-01-25 13:33:46 +01:00
Alexander A. Klimov
84d09876b4
Icinga DB: ensure is_reachable and severity don't miss updates
...
refs #9143
2022-01-25 13:33:46 +01:00
Julian Brost
185fab3761
Merge pull request #9144 from Icinga/bugfix/icingadb-state-history
...
Icinga DB: don't write state history for ack/downtime/host problem changes
2022-01-20 12:00:24 +01:00