Icinga2 master-satellite setup

I’m a newbie with icinga and I’m trying to migrate from an old nagios setup to icinga2 right now.
My versions are here:

  • Version used: r2.13.6-1
  • Operating System and version: ubuntu 22.04
  • Enabled features: api checker command icingadb ido-mysql mainlog notification

I have about ~220hosts and ~5k services on them. 95% of that is just nrpe checks.
Right now I’m trying to move that checks from master to satellite1, and later maybe add satellite2 if it won’t be enough. But I don’t fully understand how my config files should be organized.

I already tried to move on icinga2 ~3years ago and at that time, all my configs there were just stored in /etc/icinga2/conf.d/ directory - I had there custom commands, hostgroups, notification comands, hosts and services. And all check were performed from master only.
But now, if I understood guide correctly, I need to move some part of that to /etc/icinga2/zones.d directory? And also disable conf.d because now I shouldn’t store my configs there?
I already created folder /etc/icinga2/zones.d/global-commands/ and put there all my configs - but it says that hosts and services cannot be put into global zone - but if so, where they need to be stored?

First, you need to decide your preferred configuration mode and store files with host objects accordingly.

In general, check command objects are stored in global zones e.g. service-commands or separated in linux-commands and windows-commands. For service objects usually a global zone is used e.g. global-templates. To make it work you need to create a directory in /etc/icinga2/zones.d with that name and place files with service objects in there.