After upgrading to from 2.13 to 2.14, global-templates/commands.conf no longer syncs to endpoints

Hi all,

we have a distributed setup with a master and endpoints (no satellites). After upgrading from 2.13 on Debian Bookworm to 2.14 on Debian Trixie, remote command execution of newly created custom commands fails.The synchronization of the files in /etc/icinga2/zones.d/global-templates/ seems to be broken. I cannot see any updates in /var/lib/icinga2/api/zones/global-templates/ on the endpoints. A simplified version of zones.conf on the master has

object Endpoint “master.tld” {
host=“master.tld”
port=“5665”
}

object Endpoint “endpoint1.tld” {
log_duration = 0
}

object Zone “master” {
endpoints = [ “master.tld” ]
}

object Zone “endpoint1.tld” {
endpoints = [“endpoint1.tld”]
parent = “master”
}

object Zone “global-templates” {
global = true
}

object Zone “director-global” {
global = true
}

How can I debug this? I am lost. It used to be that I could define new check commands in global-templates/commands.conf, and would be able to use them on the endpoints… Any help is appreciated. Thank you very much,

Christian

OK, I think I solved it. I was using LocalPluginDir in the checks I had defined. With the old version, I had that defined in global-templates/constants.conf. With the upgrade, I had to remove that definition from global-templates/constants.conf because it would conflict with the one in /etc/icinga2/constants.conf on the master. However, that appears to have stopped the validation of the synced files on the endpoints. I noticed this by looking at the log files in /var/lib/icinga2/api. So now I defined our own MyLocalPluginDir in global-templates/constants.conf and use that in the checks. Does that make sense? Best wishes,

Christian

I am glad you were able to debug this. In general, your solution sounds reasonable for me. However, without some Icinga 2 validation output or error log, I can only guess. If it works now, you are good to go!