How to identify current configuration setup

Hi,

I happen to be in a situation, where I want to extend my existing Icinga2 configuration (add agents to my setup for example), but am lacking any information how Icinga2 was setup.

I was able to fix a few issues as part of Icinga2 (module) upgrades, but now I am somehow lost.

There are a few hosts in Icinga2 Director set up, where not only a simple ping is configured, but also monitoring plugins are checking for load, free memory of the agent etc.

When I follow the tutorials on icinga.com, I end every few steps in a situation, where I don’t know how the whole thing was setup, and can not continue or am just guessing what the right path might be… :frowning:

I am a bit overwhelmed by the amount of information, and as you can imagine, I don’t want to setup everything from scratch or break the existing setup…

Example:

I want to add an agent/satellite to my master.

icinga2 pki ticket --cn ‘hostname’
critical/cli: Ticket salt (–salt) must be specified.

When I check other hosts, which can be monitored succesfully, there is nowhere a salt set up.

In “Icinga director”, “hosts”, “agent” it says

“A ticket for this agent could not have been requested from your deployment endpoint: Ticket salt is not configured in ApiListener object”

also these hosts can be monitored without any problems.

[2023-05-16 11:07:05 +0200] information/cli: Icinga application loader (version: r2.13.7-1)
[2023-05-16 11:07:05 +0200] information/cli: Loading configuration file(s).
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 IcingaApplication.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 150 Dependencies.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 6 HostGroups.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 20 Hosts.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 FileLogger.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 22 Downtimes.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 128 Notifications.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 IdoMysqlConnection.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 CheckerComponent.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 InfluxdbWriter.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 15 Zones.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 ExternalCommandListener.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 14 Endpoints.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 3 ApiUsers.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 ApiListener.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 NotificationComponent.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 252 CheckCommands.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 1 GraphiteWriter.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 4 Users.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 22 ScheduledDowntimes.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 135 Services.
[2023-05-16 11:07:05 +0200] information/ConfigItem: Instantiated 4 NotificationCommands.
[2023-05-16 11:07:05 +0200] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2023-05-16 11:07:05 +0200] information/cli: Finished validating the configuration file(s).
Disabled features: compatlog debuglog elasticsearch gelf icingadb influxdb2 livestatus opentsdb perfdata statusdata syslog
Enabled features: api checker command graphite ido-mysql influxdb mainlog notification
icinga2 - The Icinga 2 network monitoring daemon (version: r2.13.7-1)

Copyright (c) 2012-2023 Icinga GmbH (https://icinga.com/)
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl2.html>
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.6 LTS (Focal Fossa)
  Kernel: Linux
  Kernel version: 5.4.0-148-generic
  Architecture: x86_64

Build information:
  Compiler: GNU 9.4.0
  Build host: runner-hh8q3bz2-project-575-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/icinga2.pid

I appreciate any hints how to move forward (in general).

Hi & welcome,

When I work manually I prefer to work without tickets as described here.

I use auto-signing for automated installation e.g. with Ansilble only. To make this work ticket_salt needs to be defined (which is usually done by the initial setup (icinga2 node wizard) of the master. The wizard adds a value to the TicketSalt constant in /etc/icinga2/contants.conf and enables icinga’s api having ticket_salt = TicketSaltin the api definition. With that you can create tickets at your master which can afterwards used to configure agents.

Thank you for your help.

I was able to add my agent to the master, so atleast basic checks are working fine and I do not get those annoying "remote Icinga instance is not connected to … " messages anymore. I am not quite sure how, but I will soon find out, when I add an aditional agent. I think I ran the “icinga2 node wizard” on the agent and signed it on the master. Could this make sense?

Yes, this is my preferred approach for manual installations.