Can't enable Feature API

Hello again,
after a new installing in last december my college skip to enable API. Now I have to connect a few satellite and I need this feature. After “icinga2 api setup” there is a Problem:
“critical/config: Error: Endpoint object for ‘esn-svm037’ is missing.”
I don’t no which endpoint is looking for. There is no zones.conf may be this is the Problem.
This is the first step before I can connect satellite, after that zones required.

Best Regards Rico
Here my enviroment

root@esn-svm037:~# icinga2 --v
icinga2 - The Icinga 2 network monitoring daemon (version: r2.13.2-1)

Copyright (c) 2012-2022 Icinga GmbH (
License GPLv2+: GNU GPL version 2 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

System information:
Platform: Ubuntu
Platform version: 20.04.3 LTS (Focal Fossa)
Kernel: Linux
Kernel version: 5.11.0-40-generic
Architecture: x86_64

Build information:
Compiler: GNU 9.3.0
Build host: runner-hh8q3bz2-project-298-concurrent-0
OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020

Application information:

General paths:
Config directory: /etc/icinga2
Data directory: /var/lib/icinga2
Log directory: /var/log/icinga2
Cache directory: /var/cache/icinga2
Spool directory: /var/spool/icinga2
Run directory: /run/icinga2

Old paths (deprecated):
Installation root: /usr
Sysconf directory: /etc
Run directory (base): /run
Local state directory: /var

Internal paths:
Package data directory: /usr/share/icinga2
State path: /var/lib/icinga2/icinga2.state
Modified attributes path: /var/lib/icinga2/modified-attributes.conf
Objects path: /var/cache/icinga2/icinga2.debug
Vars path: /var/cache/icinga2/icinga2.vars
PID path: /run/icinga2/


const PluginDir = “/usr/lib/nagios/plugins”
const ManubulonPluginDir = “/usr/lib/nagios/plugins”
const PluginContribDir = “/usr/lib/nagios/plugins”
const NodeName = “esn-svm037”
const ZoneName = “esn-svm037”


include “constants.conf”
include “features-enabled/*.conf”
include_recursive “conf.d”



  • The API listener is used for distributed monitoring setups.
    object ApiListener “api” {

ticket_salt = TicketSalt



  • The ApiUser objects are used for authentication against the API.
    object ApiUser “root” {
    password = “XXXXXXXXXXXXXXXX”
    // client_cn = “”

permissions = [ “*” ]

root@esn-svm037:/etc/icinga2/conf.d# icinga2 daemon -C
[2022-03-08 08:21:43 +0100] information/cli: Icinga application loader (version: r2.13.2-1)
[2022-03-08 08:21:43 +0100] information/cli: Loading configuration file(s).
[2022-03-08 08:21:43 +0100] information/ConfigItem: Committing config item(s).
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 GraphiteWriter.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 13 HostGroups.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 104 Hosts.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 3 EventCommands.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 3 Comments.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 FileLogger.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 CheckerComponent.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 IdoMysqlConnection.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 ExternalCommandListener.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 ApiUser.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 272 CheckCommands.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 1 NotificationComponent.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 15 Users.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 7 TimePeriods.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 4 ServiceGroups.
[2022-03-08 08:21:43 +0100] information/ConfigItem: Instantiated 810 Services.
[2022-03-08 08:21:43 +0100] information/ScriptGlobal: Dumping variables to file ‘/var/cache/icinga2/icinga2.vars’
[2022-03-08 08:21:43 +0100] information/cli: Finished validating the configuration file(s).

root@esn-svm037:/etc/icinga2/conf.d# icinga2 api setup
information/cli: Generating new CA.
warning/cli: CA files ‘/var/lib/icinga2/ca//ca.crt’ and ‘/var/lib/icinga2/ca//ca.key’ already exist.
warning/cli: Found CA, skipping and using the existing one.
information/cli: Private key file ‘/var/lib/icinga2/certs//esn-svm037.key’ already exists, not generating new certificate.
information/cli: API user config file ‘/etc/icinga2/conf.d/api-users.conf’ already exists, not creating config file.
information/cli: Reading ‘/etc/icinga2/icinga2.conf’.
information/cli: Enabling the ‘api’ feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Updating ‘NodeName’ constant in ‘/etc/icinga2/constants.conf’.
information/cli: Backup file ‘/etc/icinga2/constants.conf.orig’ already exists. Skipping backup.
information/cli: Updating ‘ZoneName’ constant in ‘/etc/icinga2/constants.conf’.
information/cli: Backup file ‘/etc/icinga2/constants.conf.orig’ already exists. Skipping backup.

Now restart your Icinga 2 daemon to finish the installation!

root@esn-svm037:/etc/icinga2/conf.d# service icinga2 checkconfig

  • checking Icinga2 configuration
    [2022-03-08 08:07:04 +0100] information/cli: Icinga application loader (version: r2.13.2-1)
    [2022-03-08 08:07:04 +0100] information/cli: Loading configuration file(s).
    [2022-03-08 08:07:04 +0100] information/ConfigItem: Committing config item(s).
    [2022-03-08 08:07:04 +0100] information/ApiListener: My API identity: esn-svm037
    [2022-03-08 08:07:04 +0100] critical/config: Error: Endpoint object for ‘esn-svm037’ is missing.
    Location: in /etc/icinga2/features-enabled/api.conf: 4:1-4:24
    /etc/icinga2/features-enabled/api.conf(2): * The API listener is used for distributed monitoring setups.
    /etc/icinga2/features-enabled/api.conf(3): */
    /etc/icinga2/features-enabled/api.conf(4): object ApiListener “api” {
    /etc/icinga2/features-enabled/api.conf(6): ticket_salt = TicketSalt
    [2022-03-08 08:07:04 +0100] critical/config: 1 error
    [2022-03-08 08:07:04 +0100] critical/cli: Config validation failed. Re-run with ‘icinga2 daemon -C’ after fixing the config.
  • checking Icinga2 configuration. Check ‘/var/log/icinga2/startup.log’ for details.

Connecting satellites to your system requires distributed setup as described here.

Hello Roland , this is not possible because the API is required for talking between master and satellite.
“The API listener is used for distributed monitoring setups.”
The APIListener generates the error.
Now I have run the icinga2 node wizard, so the endpoint was automatically created. The same error is appeared. This i did yesterday to. But it makes nothing better.
I used a backup to restore the config yesterday.

To make API work you first need to setup you zone and endpoint objects.