Eigentlich wollte ich nur eine “kurze” Anleitung schreiben, wie das aktuelle Monitoring bei $COMPANY aussieht, zumindest der Icinga2 und Puppet Teil.
Über die letzten zwei Jahre habe ich das Setup so einige Male umgebaut, weil die Anforderungen sich stetig änderten. Konnte anfangs der Icinga2 Master noch alle Agents direkt erreichen und es gab du nur einen PuppetDB, änderte sich dies im Verlauf des Wachstums der Firma. Da war das Setup recht einfach, wenn auch nicht sehr performant. Es hauptsächlich darum, die Icinga2 Objekte aus der PuppetDB zu ziehen und als Icinga Objekt abzulegen. Je mehr es da aber gab, desto langsamer wurde der Export. Das Setup brach dann vollständig, als weitere PuppetDB Hosts hinzukamen, da es in diesem Konzept einfach nicht vorgesehen war. Auch ging es nicht, weil jeder Puppet Master seine eigenen Zertifikate nutzt und somit der Aufwand enorm hoch wurde, Icinga2 SSL Zertifikate unter einen Hut zu bringen.
Das alles gehört mittlerweile der Vergangenheit an, da Icinga2 alle Zertifikate selbst verwaltet und seit 2.8 einen CA Proxy enthält, der jeden gesponserten Cent wert ist. Damit können Icinga2 Agent Zertifikate beglaubigt werden, die vom Icinga2 Master aus nicht direkt erreichbar sind - über die Satelliten!
Das Kernstück ist dann der Icingaweb2 Director, der um ein PuppetDB Modul bereichert werden kann. Damit (und den passenden Firewall Regeln), kann der Director jede PuppetDB anzapfen und die Nodes herausholen und um weitere Zutaten ergänzen.
Diese Anleitung soll im Grunde das wiedergeben. Die Kernfunktionen sind alle vorhanden, es fehlt noch der HA Teil, der sicher noch ein paar Stunden Schreibarbeit benötigen wird. Bis dahin …

https://www.pug.org/doc/technik-ecke/monitoring/icinga2_puppet/