Synchronization problems between master and satellite

  • Version used: version: r2.13.6-1
  • Operating System and version: Debian GNU/Linux 12 (bookworm)
  • Enabled features: api checker mainlog
  • Icinga Web 2 version and modules: Icinga Web 2 Version 2.11.4
  • Config validation:
[2024-07-02 06:28:29 -0500] information/cli: Icinga application loader (version: r2.13.6-1)
[2024-07-02 06:28:29 -0500] information/cli: Loading configuration file(s).
[2024-07-02 06:28:29 -0500] information/ConfigItem: Committing config item(s).
[2024-07-02 06:28:29 -0500] critical/config: Error: Error while evaluating expression: Tried to access undefined script variable 'TelegramBotToken'
Location: in /var/lib/icinga2/api/zones/global-templates/_etc/commands.conf: 294:26-294:41
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(292):     NOTIFICATIONCOMMENT = "$notification.comment$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(293):     HOSTDISPLAYNAME = "$host.display_name$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(294):     TELEGRAM_BOT_TOKEN = TelegramBotToken
                                                                                              ^^^^^^^^^^^^^^^^
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(295):     TELEGRAM_CHAT_ID = "$user.vars.telegram_chat_id$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(296):   }
[2024-07-02 06:28:29 -0500] critical/config: Error: Error while evaluating expression: Tried to access undefined script variable 'TelegramBotToken'
Location: in /var/lib/icinga2/api/zones/global-templates/_etc/commands.conf: 315:26-315:41
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(313):     HOSTDISPLAYNAME = "$host.display_name$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(314):     SERVICEDISPLAYNAME = "$service.display_name$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(315):     TELEGRAM_BOT_TOKEN = TelegramBotToken
                                                                                              ^^^^^^^^^^^^^^^^
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(316):     TELEGRAM_CHAT_ID = "$user.vars.telegram_chat_id$"
/var/lib/icinga2/api/zones/global-templates/_etc/commands.conf(317):   }
[2024-07-02 06:28:29 -0500] critical/config: 2 errors
[2024-07-02 06:28:29 -0500] critical/cli: Config validation failed. Re-run with 'icinga2 daemon -C' after fixing the config.

  • icinga2 object list --type Endpoint
Object 'domain.com' of type 'Endpoint':
  % declared in '/etc/icinga2/zones.conf', lines 15:1-15:39
  * __name = "domain.com"
  * host = ""
  * log_duration = 86400
  * name = "domain.com"
  * package = "_etc"
  * port = "5665"
  * source_location
    * first_column = 1
    * first_line = 15
    * last_column = 39
    * last_line = 15
    * path = "/etc/icinga2/zones.conf"
  * templates = [ "domain.com" ]
    % = modified in '/etc/icinga2/zones.conf', lines 15:1-15:39
  * type = "Endpoint"
  * zone = ""

Object 'domain_master.com' of type 'Endpoint':
  % declared in '/etc/icinga2/zones.conf', lines 6:1-6:29
  * __name = "domain_master.com"
  * host = "xxx.xxx.xxx.xxx"
    % = modified in '/etc/icinga2/zones.conf', lines 7:2-7:23
  * log_duration = 86400
  * name = "domain_master.com"
  * package = "_etc"
  * port = "5665"
    % = modified in '/etc/icinga2/zones.conf', lines 8:2-8:14
  * source_location
    * first_column = 1
    * first_line = 6
    * last_column = 29
    * last_line = 6
    * path = "/etc/icinga2/zones.conf"
  * templates = [ "domain_master.com" ]
    % = modified in '/etc/icinga2/zones.conf', lines 6:1-6:29
  * type = "Endpoint"
  * zone = ""

Hello everyone!

I have a master-server and several satellites connected to it.

Everything is working correctly, however when I update some configuration in the master-server, although I restart the icinga services in both (clients and master) there is a specific satellite that does not receive the update.

In this case, I have commented the constant “TelegramBotToken” of the master commands, but the satellite has not received this change and continues looking for it.

Does anyone know how to fix these synchronisation problems or what causes them?

Thank you all :sunflower:

whats the api.conf config of the satellite that works compared to the api config of the satellite that refuses to update?

working satellite

/**
 * The API listener is used for distributed monitoring setups.
 */
object ApiListener "api" {
  accept_config = true
  accept_commands = true
}


non-working satellite

/**
 * The API listener is used for distributed monitoring setups.
 */
object ApiListener "api" {
  accept_config = true
  accept_commands = true
}

the very same :frowning:

what if you delete the content of:

/var/lib/icinga2/api/

on the not syncing satellite and let icinga2 resync all