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
Fix cluster message routing for global zones #8440
Conversation
With this PR, multiple agents properly receive the config update (without, only one agent logs this message): PUT:
DELETE:
|
Good for review from my side, but as this touches code very deep in the cluster communication, this still needs more testing in different cluster scenarios. |
Now started testing this in more detail. Replaying the delete message to endpoints that were offline when the delete request was issued did not work. Will investigate. |
The problem I was observing seems to be more related to how config sync works in general than to the code I am touching in this PR, as the routing seems to work as expected. To me it looks like config sync is supposed to work without the replay log. Both icinga2/lib/remote/apilistener-configsync.cpp Line 376 in dc79c4e
icinga2/lib/remote/apilistener-configsync.cpp Line 426 in dc79c4e
And in general, I don't think it would be a good idea to me to rely on the replay log for config sync, as the default log duration is one day (i.e. if a node is offline for more than a day, it would break nonetheless) and there are even examples in the documentation for disabling it completely. The other way to fix this would be updating the initial config sync for each connection to also handle propagating the deletion of objects, but this change would require some serious changes. |
RelayMessageOne used to relay the message only to one other endpoint for other zones, which is fine, as long as the target zone is a child/parent zone but breaks if the target zone is a global one. In this case, the message has to be forwarded within the local zone as well as to one node in each child zone.
18e5761
to
cb47617
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it fixes the problem...
Please verify whether it does. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before
➜ icinga2 git:(1450e1bb7) curl -fksSLu root:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5661/v1/objects/hostgroups/lolcat' -d '{ "attrs": { "zone": "global-templates" }, "pretty": true }'; echo
{
"results": [
{
"code": 200.0,
"status": "Object was created"
}
]
}
➜ icinga2 git:(1450e1bb7) prefix1/sbin/icinga2 daemon -C; prefix1/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:06:08 +0100] information/cli: Icinga application loader (version: v2.12.0-144-g1450e1bb7)
[2020-11-11 12:06:08 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:06:08 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:06:08 +0100] information/ApiListener: My API identity: m1
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 ApiUser.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:06:08 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2020-11-11 12:06:08 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix1/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:06:08 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(1450e1bb7) prefix2/sbin/icinga2 daemon -C; prefix2/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:06:22 +0100] information/cli: Icinga application loader (version: v2.12.0-144-g1450e1bb7)
[2020-11-11 12:06:22 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:06:22 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:06:22 +0100] information/ApiListener: My API identity: a1
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:06:22 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:06:22 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix2/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:06:22 +0100] information/cli: Finished validating the configuration file(s).
➜ icinga2 git:(1450e1bb7) prefix3/sbin/icinga2 daemon -C; prefix3/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:06:40 +0100] information/cli: Icinga application loader (version: v2.12.0-144-g1450e1bb7)
[2020-11-11 12:06:40 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:06:40 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:06:40 +0100] information/ApiListener: My API identity: a2
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:06:40 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:06:40 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix3/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:06:40 +0100] information/cli: Finished validating the configuration file(s).
➜ icinga2 git:(1450e1bb7) prefix4/sbin/icinga2 daemon -C; prefix4/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:06:54 +0100] information/cli: Icinga application loader (version: v2.12.0-144-g1450e1bb7)
[2020-11-11 12:06:54 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:06:54 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:06:54 +0100] information/ApiListener: My API identity: a3
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:06:54 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:06:54 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix4/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:06:54 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(1450e1bb7) cat prefix1/etc/icinga2/zones.conf
object Endpoint "m1" {
host = "127.0.0.1"
port = 5661
}
object Zone "master" {
endpoints = [ "m1" ]
}
object Endpoint "a1" {
host = "127.0.0.1"
port = 5662
}
object Zone "a1" {
endpoints = [ "a1" ]
parent = "master"
}
object Endpoint "a2" {
host = "127.0.0.1"
port = 5663
}
object Zone "a2" {
endpoints = [ "a2" ]
parent = "master"
}
object Endpoint "a3" {
host = "127.0.0.1"
port = 5664
}
object Zone "a3" {
endpoints = [ "a3" ]
parent = "master"
}
object Zone "global-templates" {
global = true
}
➜ icinga2 git:(1450e1bb7)
After
➜ icinga2 git:(bugfix/message-routing-for-global-zones) curl -fksSLu root:icinga -H 'Accept: application/json' -X PUT 'https://localhost:5661/v1/objects/hostgroups/lolcat' -d '{ "attrs": { "zone": "global-templates" }, "pretty": true }'; echo
{
"results": [
{
"code": 200.0,
"status": "Object was created"
}
]
}
➜ icinga2 git:(bugfix/message-routing-for-global-zones) prefix1/sbin/icinga2 daemon -C; prefix1/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:13:41 +0100] information/cli: Icinga application loader (version: v2.12.0-145-gcb476172e)
[2020-11-11 12:13:41 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:13:41 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:13:41 +0100] information/ApiListener: My API identity: m1
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 ApiUser.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:13:41 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2020-11-11 12:13:41 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix1/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:13:41 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix1/var/lib/icinga2/api/packages/_api/80a76565-a2fc-467d-876c-46b4e1017d1c/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(bugfix/message-routing-for-global-zones) prefix2/sbin/icinga2 daemon -C; prefix2/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:14:00 +0100] information/cli: Icinga application loader (version: v2.12.0-145-gcb476172e)
[2020-11-11 12:14:00 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:14:00 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:14:00 +0100] information/ApiListener: My API identity: a1
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:14:00 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2020-11-11 12:14:00 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix2/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:14:00 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix2/var/lib/icinga2/api/packages/_api/21547a95-83cd-4af6-892f-bbb3f79644b5/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix2/var/lib/icinga2/api/packages/_api/21547a95-83cd-4af6-892f-bbb3f79644b5/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix2/var/lib/icinga2/api/packages/_api/21547a95-83cd-4af6-892f-bbb3f79644b5/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix2/var/lib/icinga2/api/packages/_api/21547a95-83cd-4af6-892f-bbb3f79644b5/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(bugfix/message-routing-for-global-zones) prefix3/sbin/icinga2 daemon -C; prefix3/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:14:18 +0100] information/cli: Icinga application loader (version: v2.12.0-145-gcb476172e)
[2020-11-11 12:14:18 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:14:18 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:14:18 +0100] information/ApiListener: My API identity: a2
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:14:18 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2020-11-11 12:14:18 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix3/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:14:18 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix3/var/lib/icinga2/api/packages/_api/5b2fe254-d2d6-48a5-bccc-361ce22c9f5b/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix3/var/lib/icinga2/api/packages/_api/5b2fe254-d2d6-48a5-bccc-361ce22c9f5b/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix3/var/lib/icinga2/api/packages/_api/5b2fe254-d2d6-48a5-bccc-361ce22c9f5b/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix3/var/lib/icinga2/api/packages/_api/5b2fe254-d2d6-48a5-bccc-361ce22c9f5b/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(bugfix/message-routing-for-global-zones) prefix4/sbin/icinga2 daemon -C; prefix4/sbin/icinga2 object list -t hostgroup
[2020-11-11 12:14:37 +0100] information/cli: Icinga application loader (version: v2.12.0-145-gcb476172e)
[2020-11-11 12:14:37 +0100] information/cli: Loading configuration file(s).
[2020-11-11 12:14:37 +0100] information/ConfigItem: Committing config item(s).
[2020-11-11 12:14:37 +0100] information/ApiListener: My API identity: a3
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 ApiListener.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 235 CheckCommands.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 4 Endpoints.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 HostGroup.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 5 Zones.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2020-11-11 12:14:37 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2020-11-11 12:14:37 +0100] information/ScriptGlobal: Dumping variables to file '/Users/aklimov/NET/WS/icinga2/prefix4/var/cache/icinga2/icinga2.vars'
[2020-11-11 12:14:37 +0100] information/cli: Finished validating the configuration file(s).
Object 'lolcat' of type 'HostGroup':
% declared in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* __name = "lolcat"
* action_url = ""
* display_name = "lolcat"
* groups = null
* name = "lolcat"
* notes = ""
* notes_url = ""
* package = "_api"
* source_location
* first_column = 0
* first_line = 1
* last_column = 24
* last_line = 1
* path = "/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf"
* templates = [ "lolcat" ]
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 1:0-1:24
* type = "HostGroup"
* vars = null
* zone = "global-templates"
% = modified in '/Users/aklimov/NET/WS/icinga2/prefix4/var/lib/icinga2/api/packages/_api/d0b92a71-a839-415c-ac38-2dc47ed2b77a/conf.d/hostgroups/lolcat.conf', lines 3:2-3:26
➜ icinga2 git:(bugfix/message-routing-for-global-zones)
RelayMessageOne used to relay the message only to one other endpoint for other zones, which is fine, as long as the target zone is a child/parent zone but breaks if the target zone is a global one. In this case, the message has to be forwarded within the local zone as well as to one node in each child zone.
The diff looks way worse than what got actually changed: instead of iterating over all endpoints combined from multiple zones, this now happens in nested loops for the zones and their endpoints and the
relayed
/log_needed
/log_done
logic is done separately for each zone.fixes #8439