Icinga2 internals documentation

My question is simple: Is there, somewhere, some documentation for how Icinga2 work on the lowest level?

I remember, some years ago I set up monitoring and had a good understanding of how many of the concepts and objects worked together, and I think the documentation did more to explain where the config files were stored and how they were set up as text files. Now, however, there doesn’t seem to be so much of that - the docs I’ve found all seem to avoid the topic and steer you towards using some tools and commands, which is all very well, as long as everything goes perfectly, but when things don’t work, you have a hard time figuring out why.

So, are there instructions for setting up the configuration manually?

This is my icinga2 version:

root@vogon:/etc/icinga2/zones.d# icinga2 -V
icinga2 - The Icinga 2 network monitoring daemon (version: r2.13.6-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: Debian GNU/Linux
  Platform version: 11 (bullseye)
  Kernel: Linux
  Kernel version: 5.10.0-13-amd64
  Architecture: x86_64

Build information:
  Compiler: GNU 10.2.1
  Build host: runner-hh8q3bz2-project-575-concurrent-0
  OpenSSL version: OpenSSL 1.1.1n  15 Mar 2022

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

Hey there!

I’m not entirely sure what exactly you are looking for, as in how deep you want to dive in.

This here sounds like a good place to start concerning where which config files go:

The docs that we render on Learning Icinga » Documentation, Live Demo, Trainings are always for the latest release, but if you want to look at the ones for a specific version, you can jump to the versions tag on github and read through the markdown files in the repo: GitHub - Icinga/icinga2 at v2.13.6

If you have feedback concerning the docs, or if something is not clear in them you can always open an issue about it on the projects GitHub as well :slight_smile: