Überwachen von Foreman und Katello bzw. Red Hat Satellite 6

Wer Foreman und Katello bzw. Red Hat Satellite 6 einsetzt, hat mehrere Möglichkeiten den Zustand der Infrastruktur zu überwachen. Neben dem Foreman-System selbst sind auch verwaltete Systeme und definierte Software-Inhalte von Primärinteresse.

Foreman-Dashboard

Foreman/Katello bzw. Red Hat Satellite verfügen über ein Dashboard mit einigen Widgets, welche zur Überwachung der verwalteten Hosts und Produkte verwendet werden können. Die verfügbaren Widgets können frei angeordnet und entfernt werden. Die folgenden Metriken können angezeigt werden:

Foreman Dashboard

  • Status-Übersicht über die Host-Konfigurationen
  • Letzte Aktivitäten
  • Übersicht über Aufgaben und letzte Warnungen und Fehler
  • Übersicht über letzte Content View-Synchronisationen und -Versionen
  • Auflistung letzter Errata
  • Übersicht über ablaufende Subskriptionen

Um aktuelle Produkt-Synchronisationen und eventuelle Fehler einzusehen empfiehlt es sich, ergänzend auf eine Übersicht unter Content > Sync Status zurückzugreifen.

Eine andere Option ist die Erfassung von Trends innerhalb Foreman. Vor allem die durch Puppet erfassten System-Facts (facter) lassen sich so komfortabel in regelmäßigen Zeitabständen von den verwalteten Systemen beziehen. Die Liste der durch Facter erfassten Informationen ist relativ lang (externe Tools können den Informationsumfang noch erweitern), so lassen sich einige Lebensinformationen der Systeme visualisieren - beispielsweise:

  • Festplatten- und Dateisystem-Informationen
  • CPU- und Load-Metriken
  • Arbeitsspeicher-Metriken

Mit Klicks auf Monitor > Trends in der Foreman-Oberfläche wird ein Assistent gestartet, mithilfe welchem sich die Erfassung von Trends konfigurieren lässt - Beispielsweise für den Load Average System Fact:

  • Trend type: Facts
  • Trendable: load_averages::15m
  • Name: load_avg-15m

Je nach Systemkonfiguration kann es sein, dass der Foreman-Cronjob noch angepasst werden muss. Die entsprechende Konfigurationsdatei (/etc/cron.d/foreman) sollte die folgenden Zeilen enthalten:

1# Collects trends data
2*/30 * * * * foreman /usr/sbin/foreman-rake trends:counter >>/var/log/foreman/cron.log 2>&1

In der Web-Oberfläche sehen erfasste Trends wie folgt aus:

Foreman Trend

Statistik-Graphen

Foreman-Statistiken

Insbesondere bei großen Systemlandschaften können die in Foreman enthaltenen Statistik-Graphen einen Überblick über die Infrastruktur-Vielfalt verschaffen. Angezeigt werden Ringdiagramme mit der Verteilung von:

  • Betriebsysteme und Architekturen
  • Puppet-Klassen und -Umgebungen
  • CPU-Anzahl sowie Arbeitsspeicher- und Swap-Auslastung

Klicks auf die jeweiligen Werte listen die entsprechenden Systeme auf.

Nagios bzw. Icinga(2)

Das Foreman-System sollte selbstverständlich ebenfalls überwacht werden - beispielsweise über Nagios- oder Icinga(2). Ratsam ist es, die folgenden Informationen zu überwachen:

Icinga2-Monitoring

  • Auslastung von CPU und Arbeitsspeicher
  • NTP-Zeitsynchronisation
  • Füllstand der relevanten Dateisysteme (/var/lib/mongodb, /var/lib/pgsql, /var/lib/pulp)
  • Relevante Netzwerkdienste (http/https, Puppet) und Prozesse (foreman-tasks, pulp,...)

Mir fehlte da jedoch noch die Überwachung applikationsrelevanter Werte, insbesondere über den Patch-Stand verwalteter Systeme und den Synchronisationsstand angelegter Produkte. Für Spacewalk hatte ich mit check_spacewalk_currency und check_repodata entsprechende Monitoring-Plugins erstellt, die ich dank der gut dokumentierten Foreman-/Katello-API portieren konnte:

  • check_katello_currency - Überprüfen der Software-Compliance registrierter Systeme sowie Bereitstellen allgemeiner Statistiken (veraltete und inaktive Systeme,...)
  • check_katello_sync - Überwachen der Synchronisation definierter Produkte

Sicherlich kann man diese Informationen über die Foreman Web-Oberfläche beziehen - das erfordert allerdings i.d.R. mehrere Klicks. Darüber hinaus dient das Monitoring bei mir als zentrale Sammelstelle für Ereignisse, über die per Mail informiert wird.

Grafana-Dashboard

Grafana-Dashboard

Insbesondere wer mit Icinga2 arbeitet, wird früher oder später nicht um Grafana herumkommen. Konzipiert als generische Visualisierungs- und Dashboard-Software kann Grafana auch hervorragend an Icinga2 angebunden werden. Somit kann man Performance-Daten komfortabel in Graphen konsolidieren und aufbereiten. Es gibt zahlreiche Graphentypen und Formeln, um die Daten entsprechend zu verarbeiten. Auf der Grafana-Webseite gibt es eine Rubrik vorgefertigter Metriken, die spielend leicht übernommen werden können.

Ich habe mir für Foreman ein Dashboard mit den folgenden Metriken erstellt:

  • CPU- und Arbeitsspeicher-Nutzung des Foreman-/Katello-Systems
  • Anzahl der definierten, veralteten und inaktiven Systeme
  • Anzahl der definierten, leicht und stark veralteten Produkte
  • Zählergraphen für Sicherheitsaktualisierungen, Fehlerbehebungen und insgesamten Errata
  • Update-Zähler pro System

Somit habe ich die wichtigsten Werte immer im Überblick, ohne Icinga2 und Foreman aufrufen zu müssen. Das Dashboard kann auf der Grafana-Webseite heruntergeladen werden.

Übersetzungen: