1. Grundlagen
Sie können zwei Checkmk-Appliances zu einem Failover-Cluster zusammenschließen. Dabei werden alle Konfigurationen und Daten zwischen den beiden Geräten abgeglichen. Die Geräte, die als Cluster verbunden sind, nennt man auch Knoten (Nodes). Einer der Knoten im Cluster übernimmt die aktive Rolle, führt also die Aufgaben des Clusters aus. Beide Knoten tauschen sich ständig über ihren Zustand aus. Sobald der inaktive Knoten erkennt, dass der aktive Knoten seine Aufgaben nicht mehr erfüllen kann, z.B. aufgrund eines Ausfalls, übernimmt er dessen Aufgaben und wird selbst zum aktiven Knoten.
Der Failover-Cluster ist dazu da, die Verfügbarkeit Ihrer Monitoring-Installation zu erhöhen, indem diese gegen Hardwareausfälle eines Geräts oder einzelner Komponenten abgesichert wird. Das Clustern ersetzt hingegen keine Datensicherung und fängt keine logischen Fehler ab.
In den folgenden Situationen sorgt der Cluster für eine geringere Ausfallzeit, indem der inaktive Knoten die Ressourcen übernimmt:
Wenn das RAID in einem Checkmk-Rack nicht mehr zugreifbar ist.
Wenn das bisher aktive Gerät nicht mehr erreichbar (ausgefallen) ist.
Wenn das bisher aktive Gerät das „externe“ Netzwerk nicht mehr erreichen kann, der inaktive Knoten hingegen schon.
Wenn Sie ein Firmware-Update auf den Knoten durchführen.
Funktionieren kann das Cluster im Ernstfall natürlich nur, wenn die Knoten über separate Switches und Stromversorgungen betrieben werden!
2. Voraussetzungen
Damit Sie einen Cluster aufbauen können, brauchen Sie zunächst zwei kompatible Checkmk-Appliances. Folgende Modelle können miteinander geclustert werden:
2 x Checkmk rack1
2 x Checkmk rack4
2 x Checkmk virt1 (Technisch möglich, aber nicht unterstützt bzw. empfohlen. Siehe unten für Details.)
1 x Checkmk rack1/rack4 und 1 x Checkmk virt1
Weiterhin müssen die beiden Geräte eine kompatible Firmware nutzen. Kombinieren Sie eine virt1-Appliance mit einem physischen Rack, muss die virtuelle Maschine die gleichen Spezifikationen wie der physische Server aufweisen — ansonsten könnte sie abstürzen, wenn sie die Last vom Rack übernimmt.
Die Geräte müssen mit mindestens zwei voneinander unabhängigen Netzwerkverbindungen verkabelt sein. Eine dieser Verbindungen dient der normalen Netzwerkanbindung, die zweite der Synchronisation zwischen den Cluster-Knoten. Die Sync-Verbindung sollte möglichst direkt zwischen den Geräten laufen, zumindest aber über ein separates Netzwerk.
Um die Verfügbarkeit der Netzwerkverbindungen zu erhöhen, sollten Sie eine Bonding-Konfiguration erstellen, die alle vier Netzwerkanschlüsse der Checkmk-Racks nutzt, statt lediglich zwei einzelne Anschlüsse zu konfigurieren.
Dabei verwenden Sie die Schnittstellen LAN1
und LAN2
für den Anschluss an Ihr Netzwerk und die Schnittstellen LAN3
und LAN4
für die direkte Sync-Verbindung zwischen den Geräten.
Virtuelle Maschinen: Technisch ist es durchaus möglich, zwei virt1-Instanzen zu clustern. Da die Cluster-Funktion jedoch darauf ausgelegt ist, Hardwareausfälle zu kompensieren, empfehlen wir dies nicht für den produktiven Betrieb. Für Hochverfügbarkeit bieten Virtualisierungsplattformen wie VMware ESXi eigene Funktionen. Jedoch können Sie die Verhaltensweise und Konfiguration eines Clusters mit zwei virtuellen Maschinen sehr einfach testen. Dazu eignen sich auch "Desktop-Virtualisierer" wie VirtualBox oder VMware Workstation Player. Auf die Bonding-Konfiguration können Sie dabei verzichten. Statt also wie im Folgenden gezeigt das Bonding einzurichten, nutzen Sie einfach die ungenutzte zweite Netzwerkschnittstelle. Beim eigentlichen Clustern wählen Sie dann schlicht Ihre beiden einzelnen Schnittstellen statt der Bonding-Schnittstellen.
3. Konfiguration des Clusters
Diese Anleitung geht davon aus, dass Sie beide Geräte bereits so weit vorkonfiguriert haben, dass Sie die Weboberfläche mit einem Webbrowser öffnen können.
Vor der eigentlichen Einrichtung des Clusters müssen Sie zunächst beide Geräte vorbereiten. Dabei müssen Sie hauptsächlich die Netzwerkkonfiguration so anpassen, dass die oben genannten Anforderungen erfüllt werden. Beachten Sie gegebenenfalls die für das Clustering genutzten Ports.
Im Folgenden wird die Konfiguration eines Clusters mit zwei Bonding-Schnittstellen gezeigt, das dem folgendem Schaubild entspricht:
Die im Schaubild verwendeten Schnittstellenbezeichnungen LAN1, LAN2 usw. entsprechen den Bezeichnungen der physikalischen Schnittstellen am Gerät. Im Betriebssystem entspricht LAN1 dem Gerät eth0, LAN2 dem Gerät eth1 usw.
Die verwendeten IP-Adressen sind freilich beliebig. Achten Sie jedoch darauf, dass das interne Cluster-Netz (bond1 im Schaubild) ein anderes IP-Netz verwendet, als das „externe“ Netz (bond0 im Schaubild).
Hinweis: Die folgenden Screenshots wurden mit einem virt1-Cluster erzeugt — entsprechend unterscheiden sich die Namen der Netzwerkschnittstellen.
3.1. Netzwerkkonfiguration
Öffnen Sie die Weboberfläche des ersten Knotens, wählen Sie die Geräteeinstellungen und oben Network Settings. Sie befinden sich jetzt auf der Seite zur Konfiguration der Netzwerkeinstellungen. Hier stehen Ihnen zwei Modi zur Verfügung.
Der Simple Mode, mit dem Sie nur LAN1 Ihres Geräts konfigurieren können, ist standardmäßig aktiviert. (Dieser Modus entspricht der Konfiguration über die Textkonsole, die Sie während der initialen Einrichtung der Appliance durchgeführt haben.)
Für das Clustern wird der erweiterte Modus benötigt. Um diesen Modus zu aktivieren, klicken Sie oben auf den Button Advanced Mode und bestätigen Sie die Sicherheitsabfrage.
Auf der folgenden Seite werden Ihnen alle im Gerät verfügbaren Netzwerkschnittstellen angezeigt. Nur die Standardschnittstelle (auf den Racks eth0 über die Buchse LAN1), hier im Screenshot ens32, hat aktuell eine Konfiguration. Diese wurde vom einfachen Modus übernommen.
Erstellen Sie nun durch Klick auf Create Bonding die erste Bonding-Schnittstelle bond0. Tragen Sie dazu im darauf folgenden Dialog alle Daten entsprechend des folgenden Screenshots ein und bestätigen Sie den Dialog mit Save.
Erstellen Sie nun die zweite Bonding-Schnittstelle bond1 mit der passenden Konfiguration für die direkte Sync-Verbindung.
Nachdem Sie die beiden Bonding-Schnittstellen erstellt haben, sehen Sie im Dialog zur Netzwerkkonfiguration noch einmal alle getätigten Einstellungen zu den Netzwerkschnittstellen …
… sowie zu den erstellten Bondings:
Wenn Sie alle Schritte zur Konfiguration erfolgreich abgeschlossen haben, machen Sie die Einstellungen mit einem Klick auf Activate Changes wirksam. Daraufhin werden die neuen Netzwerkeinstellungen geladen. Nach wenigen Sekunden zeigt die Netzwerkkonfiguration überall den Status OK, bei den echten Netzwerkschnittstellen …
… sowie wiederum bei den Bondings:
Wiederholen Sie die Konfiguration der Netzwerkeinstellungen mit den passenden Einstellungen nun auch auf Ihrem zweiten Gerät.
3.2. Host-Namen
Geräte, die in einem Cluster verbunden werden sollen, müssen unterschiedliche Host-Namen haben.
Diese können Sie jetzt in den Geräteeinstellungen festlegen.
Im Beispiel bekommen die Geräte die Namen cma1
und cma2
.
3.3. Cluster verbinden
Nachdem Sie nun die Vorbereitungen abgeschlossen haben, können Sie mit dem Einrichten des Clusters fortfahren.
Öffnen Sie dazu in der Weboberfläche im Hauptmenü des ersten Geräts (hier cma1
) das Modul Clustering und klicken Sie dort auf Create Cluster.
Tragen Sie im Dialog zum Erstellen des Clusters die entsprechende Konfiguration ein und bestätigen Sie den Dialog mit Save. Wichtig ist hier vor allem die Cluster IP-Address, über die Sie später auf das Cluster zugreifen. Wenn Sie zu diesem Dialog weiterführende Informationen benötigen, rufen Sie die Inline-Hilfe über das Symbol neben dem Checkmk-Logo auf.
Auf der folgenden Seite können Sie die beiden Geräte zu einem Cluster verbinden. Hierzu müssen Sie das Passwort der Weboberfläche des zweiten Geräts eingeben. Dieses wird einmalig dazu genutzt, die Verbindung zwischen den beiden Geräten herzustellen. Bestätigen Sie anschließend die Sicherheitsabfrage, wenn Sie sich sicher sind, dass Sie die Daten des angezeigten Zielgeräts überschreiben wollen.
Nachdem dieser Verbindungsaufbau erfolgreich war, wird mit der Synchronisation des Clusters begonnen. Den aktuellen Status können Sie sich auf der Cluster-Seite anzeigen lassen. Noch während dieser Synchronisation werden alle Ressourcen, u.a. auch Ihre möglicherweise bestehenden Monitoring-Instanzen, auf dem ersten Knoten gestartet.
Ab sofort können Sie mit Hilfe der Cluster-IP-Adresse (hier 192.168.178.110
) auf die Ressourcen des Clusters, z.B. Ihre Monitoring-Instanzen, zugreifen — egal von welchem Knoten die Ressourcen gerade gehalten werden.
4. Der Status des Clusters
Nach Abschluss der ersten Synchronisation ist Ihr Cluster voll einsatzbereit. Auf der Cluster-Seite können Sie den Zustand jederzeit einsehen.
Auch mit Hilfe der Statusansicht der Konsole können Sie den aktuellen Zustand des Clusters im Kasten Cluster in zusammengefasster Form einsehen. Die Rolle des jeweiligen Knotens wird hinter dem aktuellen Status in Klammern angezeigt: beim aktiven Knoten M (für Main) und beim passiven Knoten S (für Subordinate).
5. Besonderheiten im Cluster
5.1. Zugriff auf Ressourcen
Alle Anfragen an die Monitoring-Instanzen, wie z.B. Zugriffe auf die Weboberfläche, aber auch eingehende Meldungen wie z.B. SNMP-Traps oder Syslog-Meldungen an die Event-Console oder Anfragen an den Livestatus, sollten im Normalfall immer über die Cluster-IP-Adresse gehen.
Nur in Ausnahmefällen, wie z.B. Fehlerdiagnosen oder Updates eines bestimmten Knotens, sollten Sie direkt auf die einzelnen Knoten zugreifen müssen.
5.2. Geräteeinstellungen
Die Einstellungen, wie z.B. für die Zeitsynchronisation oder zur Namensauflösung, die bisher auf den einzelnen Geräten unabhängig voneinander gemacht wurden, werden im Cluster zwischen den beiden Knoten synchronisiert.
Sie können diese Einstellungen aber nur auf dem jeweils aktiven Knoten bearbeiten. Auf dem inaktiven Knoten sind die Einstellungen gesperrt.
Es gibt einige gerätespezifische Einstellungen, wie z.B. die des Management-Interfaces des Checkmk rack1, die Sie zu jeder Zeit auf den einzelnen Geräten anpassen können.
5.3. IP-Adressen oder Host-Namen der Knoten
Um die IP-Konfiguration der einzelnen Knoten bearbeiten zu können, müssen Sie zunächst die Verbindung zwischen den Knoten lösen. Hierzu klicken Sie auf der Cluster-Seite auf Disconnect Cluster. Anschließend können Sie über die Weboberfläche der einzelnen Knoten die gewünschten Einstellungen anpassen.
Nachdem Sie die Anpassungen abgeschlossen haben, müssen Sie nun auf der Cluster-Seite Reconnect Cluster wählen. Wenn sich die Knoten wieder erfolgreich verbinden können, nimmt der Cluster den Betrieb nach wenigen Minuten wieder auf. Den Status können Sie auf der Cluster-Seite einsehen.
5.4. Checkmk-Versionen und Monitoring-Instanzen verwalten
Auch die Monitoring-Instanzen und Checkmk-Versionen werden zwischen den beiden Knoten synchronisiert. Diese können Sie nur in der Weboberfläche des aktiven Knotens modifizieren — sowohl über dessen eigene als auch über die Cluster-IP-Adresse.
6. Administrative Aufgaben
6.1. Update von 1.4 auf 1.5
Im Gegensatz zum folgend beschriebenen Firmware-Update innerhalb kompatibler Versionen, also beispielsweise 1.5.1 auf 1.5.2, müssen Sie beim Update von 1.4-Versionen auf die aktuellen 1.5-Versionen etwas anders vorgehen. Der Grund: Die 1.5 basiert auf einer neuen Debian-Version. Kurz gesagt heißt das, dass Sie das Cluster kurzzeitig komplett offline nehmen müssen - Sie bekommen also eine Wartungszeit (downtime). Bei regulären Updates genügt es, einzelne Knoten des Clusters in den Wartungszustand zu versetzen, um die Aktualisierung durchzuführen. Bei diesem Major-Update auf 1.5 gehen Sie wie folgt vor:
Trennen Sie die Knoten mit Clustering > Disconnect Cluster vom Cluster.
Aktualisieren Sie die Knoten nacheinander wie im Appliance-Hauptartikel beschrieben.
Verbinden Sie die Knoten über Clustering > Reconnect Cluster wieder zum Cluster.
Prüfen Sie, ob Ihre Instanzen kompatible Checkmk-Versionen nutzen und aktualisieren Sie bei Bedarf wie im Appliance-Hauptartikel beschrieben.
6.2. Firmware-Update im Cluster
Die Firmware-Version eines Geräts wird auch im Cluster-Betrieb nicht synchronisiert. Das Update geschieht also pro Knoten. Sie haben jedoch den Vorteil, dass der eine Knoten weiterhin das Monitoring durchführen kann, während der andere Knoten aktualisiert wird.
Bei einem Update auf eine kompatible Firmware-Version sollten Sie stets wie folgt vorgehen:
Öffnen Sie zunächst das Modul Clustering in der Weboberfläche des Knotens, der aktualisiert werden soll.
Klicken Sie nun auf das Herz-Symbol in der Spalte dieses Knotens und bestätigen Sie die folgende Sicherheitsabfrage. Dadurch setzen Sie den Knoten in den Wartungszustand.
Knoten, die sich im Wartungszustand befinden, geben alle Ressourcen frei, die aktuell auf dem Knoten aktiv sind, woraufhin der andere Knoten diese übernimmt.
Während sich ein Knoten im Wartungszustand befindet, ist der Cluster nicht ausfallsicher. Wenn jetzt also der aktive Knoten ausgeschaltet wird, übernimmt der inaktive Knoten, der sich im Wartungszustand befindet, nicht die Ressourcen. Sollten Sie nun auch noch den zweiten Knoten in den Wartungszustand setzen, werden alle Ressourcen heruntergefahren. Diese werden erst wieder aktiviert, wenn ein Knoten aus dem Wartungszustand geholt wird. Den Wartungszustand müssen Sie stets wieder manuell entfernen.
Wenn die Cluster-Seite Folgendes zeigt, sehen Sie, dass sich der Knoten im Wartungszustand befindet:
Nun können Sie auf diesem Knoten, wie auf nicht-geclusterten Geräten auch, das Firmware-Update durchführen.
Öffnen Sie, nachdem Sie das Firmware-Update erfolgreich durchgeführt haben, wieder die Cluster-Seite. Entfernen Sie den Wartungszustand des aktualisierten Geräts. Das Gerät fügt sich anschließend automatisch wieder in den Cluster ein, womit der Cluster wieder voll funktionsfähig ist.
Wir empfehlen, auf beiden Knoten die gleiche Firmware-Version zu betreiben. Daher sollten Sie im Anschluss die gleiche Prozedur für den anderen Knoten wiederholen.
6.3. Cluster auflösen
Es ist möglich, die Knoten aus einem Cluster zu lösen und einzeln weiter zu betreiben. Dabei können Sie auf beiden Geräten die synchronisierte Konfiguration weiter nutzen oder z.B. eines der Geräte wieder auf den Werkszustand zurücksetzen und neu konfigurieren.
Sie können einen oder beide Knoten im laufenden Betrieb aus dem Cluster entfernen. Wenn Sie beide Knoten mit den aktuellen Daten weiterverwenden wollen, müssen Sie vorher sicherstellen, dass die Synchronisation der Daten ordnungsgemäß funktioniert. Dies sehen Sie auf der Cluster-Seite.
Um einen Cluster aufzulösen, klicken Sie auf der Cluster-Seite der Weboberfläche auf Disband Cluster. Beachten Sie den Text der folgenden Sicherheitsabfrage. Dieser gibt in den verschiedenen Situationen Aufschluss darüber, in welchem Zustand sich das jeweilige Gerät nach dem Auflösen der Verbindung befinden wird.
Die Trennung der Geräte muss auf beiden Knoten separat durchgeführt werden, damit zukünftig beide Geräte einzeln betrieben werden können.
Wenn Sie nur eines der Geräte zukünftig verwenden wollen, lösen Sie den Cluster auf dem Gerät, das Sie weiterhin verwenden wollen und stellen Sie auf dem anderen Gerät anschließend den Werkszustand wieder her.
Nachdem Sie einen Knoten aus dem Cluster getrennt haben, werden die Monitoring-Instanzen nicht automatisch gestartet. Das müssen Sie im Anschluss bei Bedarf manuell erledigen.
6.4. Ein Gerät austauschen
Wenn die Festplatten des alten Geräts in Ordnung sind, können Sie diese aus dem alten Gerät in das neue Gerät einbauen und das neue Gerät genau so verkabeln, wie das alte Gerät verkabelt war — und es anschließend einschalten. Nach dem Start fügt sich das neue Gerät wieder so in den Cluster ein wie das alte Gerät.
Wenn Sie ein altes Gerät komplett durch ein neues Gerät ersetzen wollen, sollten Sie so vorgehen, wie wenn Sie den Cluster komplett auflösen. Wählen Sie dazu eines der bisherigen Geräte aus, lösen Sie dieses aus dem Cluster und erstellen Sie einen neuen Cluster mit diesem und dem neuen Gerät.
7. Fehlerdiagnose
7.1. Logging
Die Cluster-Verwaltung geschieht weitestgehend automatisch. Dabei entscheiden automatische Prozesse auf den Knoten, auf welchem Gerät welche Ressourcen gestartet und gestoppt werden sollen. Dieses Verhalten wird in Form von Log-Einträgen detailliert protokolliert. Diese Einträge erreichen Sie von der Cluster-Seite aus über den Knopf Cluster Log.
Beachten Sie, dass diese Einträge, genau wie die anderen Systemmeldungen, bei einem Neustart des Geräts verloren gehen. Wenn Sie die Meldungen darüber hinaus erhalten möchten, können Sie sich die aktuelle Logdatei über Ihren Browser herunterladen oder dauerhaft eine Weiterleitung der Log-Meldungen an einen Syslog-Server einrichten.