Hi everyone,
We finished our icinga2 setup (on docker, HA, 2 satellites per zones). I began ramping up the zone installation, after installing 1 zone alone (that worked fine, showing up in icingaweb2 without issues). I installed 6 zones at once, with the same configuration (everything has been puppeted, from install to zone deployment, not using the puppet module though) (all futures zones/satellite endpoints in the master zones.conf has been written on the file ahead of time so I only have to install icinga on the targetted satellites, I can provide the file after anonymization)
EDIT : I forgot to add, that we are using a topdown configuration here (2 masters, 2 sats per zones executing tasks and probes)
My problem is : Although eveyrthing looks normal on the icinga2 log (and icingadb too), I CANNOT see my newly added hosts on icingaweb2 (except for the zone I installed alone)
Log from master-1, while setting up icinga2 on my satellite with the command icinga2 node setup --ticket $ticket --cn ``infra-1.zone2.example.com`` --endpoint ``icinga-master-1.example.com`` --zone ``infra-1.zone2.example.com`` --parent_zone master --parent_host ``icinga-master-1.example.com`` --trustedcert /var/lib/icinga2/certs/trusted-parent.crt --accept-commands --accept-config:
[2025-12-04 13:32:24 +0000] information/ApiListener: New client connection from [X.X.X.X]:32898 (no client certificate)
[2025-12-04 13:32:24 +0000] information/ApiListener: No data received on new API connection from [X.X.X.X]:32898: End of file. Ensure that the remote endpoints are properly configured in a cluster setup.
[2025-12-04 13:32:25 +0000] information/ApiListener: New client connection for identity āinfra-1.zone2.example.comā from [X.X.X.X]:32908 (certificate validation failed: code 18: self-signed certificate)
[2025-12-04 13:32:25 +0000] information/JsonRpcConnection: Received certificate request for CN āinfra-1.zone2.example.comā which couldnāt be verified: self-signed certificate (code 18)
[2025-12-04 13:32:25 +0000] information/JsonRpcConnection: Sending certificate response for CN āinfra-1.zone2.example.comā to endpoint āinfra-1.zone2.example.comā (auto-signing ticket).
[2025-12-04 13:32:25 +0000] information/JsonRpcConnection: API client disconnected for identity āinfra-1.zone2.example.comā
[2025-12-04 13:32:28 +0000] information/ApiListener: New client connection from [Y.Y.Y.Y]:yyyyy (no client certificate)
[2025-12-04 13:32:28 +0000] information/ApiListener: No data received on new API connection from [Y.Y.Y.Y]:yyyyy: End of file. Ensure that the remote endpoints are properly configured in a cluster setup.
[2025-12-04 13:32:31 +0000] information/ApiListener: New client connection for identity āinfra-2.example.comā from [Y.Y.Y.Y]:yyyyy (certificate validation failed: code 18: self-signed certificate)
[2025-12-04 13:32:31 +0000] information/JsonRpcConnection: Received certificate request for CN āinfra-2.zone2.example.comā which couldnāt be verified: self-signed certificate (code 18)
[2025-12-04 13:32:31 +0000] information/JsonRpcConnection: Sending certificate response for CN āinfra-2.zone2.example.comā to endpoint āinfra-2.zone2.example.comā (auto-signing ticket).
[2025-12-04 13:32:31 +0000] information/JsonRpcConnection: API client disconnected for identity āinfra-2.zone2.example.comā
Here is the log from one of the sats, while booting the application:
[2025-12-04 14:47:48 +0000] information/FileLogger: āmain-logā started.
[2025-12-04 14:47:48 +0000] information/ApiListener: āapiā started.
[2025-12-04 14:47:48 +0000] information/ApiListener: Started new listener on ā[54.38.42.191]:5665ā
[2025-12-04 14:47:48 +0000] information/ApiListener: Reconnecting to endpoint āicinga-master-2.example.comā via host āX.X.X.Xā and port ā5665ā
[2025-12-04 14:47:48 +0000] information/ApiListener: Reconnecting to endpoint āicinga-master-1.example.comā via host āX.X.X.Xā and port ā5665ā
[2025-12-04 14:47:48 +0000] information/IcingaDB: āicingadbā started.
[2025-12-04 14:47:48 +0000] information/CheckerComponent: ācheckerā started.
[2025-12-04 14:47:48 +0000] information/IcingaDB: Trying to connect to Redis server (async) on host āredis:6379ā
[2025-12-04 14:47:48 +0000] information/ConfigItem: Activated all objects.
[2025-12-04 14:47:48 +0000] information/IcingaDB: Connected to Redis server
[2025-12-04 14:47:48 +0000] information/IcingaDB: Starting initial config/status dump
[2025-12-04 14:47:48 +0000] information/ApiListener: New client connection for identity āicinga-master-1.example.comā to [X.X.X.X]:5665
[2025-12-04 14:47:48 +0000] information/JsonRpcConnection: Requesting new certificate for this Icinga instance from endpoint āicinga-master-1.example.comā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Finished reconnecting to endpoint āicinga-master-1.example.comā via host āX.X.X.Xā and port ā5665ā
[2025-12-04 14:47:48 +0000] information/ApiListener: Sending config updates for endpoint āicinga-master-1.example.comā in zone āmasterā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Finished sending config file updates for endpoint āicinga-master-1.example.comā in zone āmasterā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Syncing runtime objects to endpoint āicinga-master-1.example.comā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Finished syncing runtime objects to endpoint āicinga-master-1.example.comā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Finished sending runtime config updates for endpoint āicinga-master-1.example.comā in zone āmasterā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Sending replay log for endpoint āicinga-master-1.example.comā in zone āmasterā.
[2025-12-04 14:47:48 +0000] information/ApiListener: Replayed 146 messages.
This does not end here but idk if it is useful. I can fiund the same log on the satellites from the zone that is showing up rpoperly on icingaweb2
I did not checked the other new satellites, but i think we have the same outcome there.
How can I troubleshoot this? it seems that the zones and their sats are correctly configured and can correctly communicate with the master-1, but nothing (of these new zones) is showing up on icingaweb2.
on web2, when forcing the check using the url https://mon.example.com/icingaweb2/dashboard#!/icingaweb2/icingadb/service?name=ping4&host.name=new-sat.example.com, I have a āservice not foundā :
Dec 04 14:59:05 ``icinga-master-1.example.com`` docker-compose[3710246]: icingaweb_1 | [Thu Dec 04 14:59:05.456367 2025] [php:notice] [pid 48:tid 48] [client 127.0.0.1:60470] icingaweb2: ERROR - Icinga\\Exception\\NotFoundError in /usr/share/icingaweb2/modules/icingadb/application/controllers/ServiceController.php:76 with message: Service not found\n#0 /usr/share/icingaweb2/library/Icinga/Web/Controller/ActionController.php(181): Icinga\\Module\\Icingadb\\Controllers\\ServiceController->init()\n#1 /usr/share/icingaweb2/library/Icinga/Web/Controller/Dispatcher.php(59): Icinga\\Web\\Controller\\ActionController->__construct()\n#2 /usr/share/icinga-php/vendor/vendor/shardj/zf1-future/library/Zend/Controller/Front.php(954): Icinga\\Web\\Controller\\Dispatcher->dispatch()\n#3 /usr/share/icingaweb2/library/Icinga/Application/Web.php(294): Zend_Controller_Front->dispatch()\n#4 /usr/share/icingaweb2/library/Icinga/Application/webrouter.php(105): Icinga\\Application\\Web->dispatch()\n#5 /usr/share/icingaweb2/public/index.php(4): require_once(String)\n#6 {main}, referer: ``https://mon.example.com/icingaweb2/dashboard
If you have an idea (or if i missed something trivial)ā¦
Feel free to tell me if you need some more logs/configs.
Have a nice day!
- Version used (
icinga2 --version) : 2.15.1 - Operating System and version : Debian 12 - Docker 28.5.1
- Enabled features (
icinga2 feature list) : api checker icingadb mainlog notification opsgenie syslog - Icinga Web 2 version and modules (System - About) 2.16.6
- Config validation (
icinga2 daemon -C)
[2025-12-04 14:30:29 +0000] information/cli: Icinga application loader (version: v2.15.1)
[2025-12-04 14:30:29 +0000] information/cli: Loading configuration file(s).
[2025-12-04 14:30:29 +0000] information/ConfigItem: Committing config item(s).
[2025-12-04 14:30:29 +0000] information/ApiListener: My API identity: ``icinga-master-1.exemple.com
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 SyslogLogger.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 NotificationComponent.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 CheckerComponent.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 User.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 UserGroup.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 3 TimePeriods.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 ServiceGroup.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 2981 Services.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 2 ScheduledDowntimes.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 136 Zones.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 12 Notifications.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 2 NotificationCommands.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 FileLogger.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1452 Hosts.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 135 HostGroups.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 2 Downtimes.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 266 Endpoints.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 2 ApiUsers.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 ApiListener.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 252 CheckCommands.
[2025-12-04 14:30:29 +0000] information/ConfigItem: Instantiated 1 IcingaDB.
[2025-12-04 14:30:29 +0000] information/ScriptGlobal: Dumping variables to file ā/var/cache/icinga2/icinga2.varsā
[2025-12-04 14:30:29 +0000] information/cli: Finished validating the configuration file(s).