Dies ist eine alte Version des Dokuments!
Docker Compose Icinga stack
Quelle: https://github.com/lippserd/docker-compose-icinga
Stack nach Anleitung von Github herunterladen und im Verzeichnis folgende Änderungen vornehmen:
- Eingebaute Host-Konfiguration entfernen (wird dann im Director konfiguriert)
Datei /etc/icinga2/conf.d/hosts.conf löschen lassen
in Dateiinit-icinga2.sh
unten einfügenif [ -f /data/etc/icinga2/conf.d/hosts.conf ]; then rm -F /data/etc/icinga2/conf.d/hosts.conf fi
- Passwort von „icingaadmin“ ändern
in Dateidocker-compose.yml
die Zeileicingaweb.passwords.icingaweb2.icingaadmin:
- Icinga Stack starten
cd /opt/docker-compose-icinga docker compose up -d
- Icinga Stack stoppen
docker compose down
- Wiederherstellen der Standard-Benutzerrollen unterbinden
in Dateidocker-compose.yml
die Zeilen auskommentieren
icingaweb.roles.Administrators.groups: Administrators
icingaweb.roles.Administrators.permissions: '*'
icingaweb.roles.Administrators.users: icingaadmin
- Icinga Stack starten
docker compose up -d
- Icinga nach reboot automatisch starten
systemctl edit –full docker-compose-icinga.service
Unit] Description=Start Icinga-Playground Docker containers After=docker.service Requires=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/opt/docker-compose-icinga User=linux Group=docker #ExecStart=docker compose -p icinga-playground up -d #ExecStop=docker compose -p icinga-playground stop ExecStart=docker compose up -d ExecStop=docker compose stop TimeoutStartSec=0 [Install] WantedBy=multi-user.target
Danach den Service einschalten und den Systemd-Daemon neustarten
systemctl enable docker-compose-icinga.service && systemctl daemon-reload
Eigene Checks einbinden
In den Icinga2 Container verbinden und folgendes ausführen:
echo "include_recursive \"/custom_data/custom.conf.d/\"" >> /etc/icinga2/icinga2.conf
Danach auf dem Docker-Host den Ordner für die eigenen Checks erstellen und Checks dort ablegen.
mkdir -p /opt/docker-compose-icinga/icinga2.conf.d/my-plugins/
Eigene Icinga-Constants erstellen.
vi /opt/docker-compose-icinga/icinga2.conf.d/constants.conf
Inhalt:
# My Custom Plugins const CustomPluginDir = "custom_data/custom.conf.d/my-plugins/"
Eigene Icinga-Service Konfiguration erstellen.
/opt/docker-compose-icinga/icinga2.conf.d/services.conf
Inhalt am Beispiel vom Check für QNap-Nas:
object CheckCommand "check_qnap2" { import "plugin-check-command" command = [ CustomPluginDir + "/check_qnap2.sh" ] arguments += { "-H" = { description = "Host name, IP Address, or unix socket (must be an absolute path)" value = "$qnap_address$" } "-C" = { description = "Community string for SNMP communication (default is 'public')" value = "$qnap_community$" } "-v" = { description = "SNMP protocol version (defalt: 2c)" value = "$qnap_version$" } "-p" = { description = "Port number (default: 161)" value = "$qnap_port$" } "-t" = { description = "Seconds before connection times out (default: 10)" value = "$qnap_timeout$" } "-a" = { description = "Executed Command-Check" value = "$qnap_argument$" } } vars.check_address = { arguments = [ ] deprecated = false name = "<anonymous>" side_effect_free = false type = "Function" } vars.check_ipv4 = false vars.check_ipv6 = false vars.qnap_address = "$check_address$" }
Nun noch den Icinga stack neu starten.
cd /opt/docker-compose-icinga docker compose restart
Jetzt kann der neu definierte Check im Director normal verwendet werden.