High Avai­la­bi­lity: Hoch­ver­füg­bar­keits­lö­sungen für OpenNMS

Der Einsatz von Hoch­ver­füg­bar­keits­lö­sungen (High Avai­la­bi­lity) ist heut­zu­tage ein wich­tiges Element von auf maxi­male Zuver­läs­sig­keit ausge­legten Infra­struk­turen. Auch für das IT-Moni­to­ring-Werk­zeug OpenNMS können derar­tige Lösungen einge­richtet werden. Aller­dings gibt es hier keine opti­male Lösung - je nachdem, welche Prio­ri­täten bei einer HA-Lösung gesetzt werden, sieht die passende Lösung anders aus und hat ihre Vor- und Nach­teile. Im Folgenden werden einige Möglich­keiten gezeigt.
 

Active-Active

 
Vorteil:
Kein Daten­ver­lust, schneller Wechsel vom produk­tiven System zum Backup-System.
 
Nach­teil:
Höhere Netz­aus­las­tung, IDs für Nodes, Events und Alarme unter­scheiden sich auf den Systemen.
 
Bei dieser Vari­ante über­wa­chen beide OpenNMS-Server aktiv, jedoch sendet nur ein Server Benach­rich­ti­gungen oder Forwarded Events/Alarme an ein Umbrella-System. Dies lässt sich über de Corre­lator (Drools Rules) realisieren.
 

 
 

Active-Passive

 
Vorteil:
Keine zusätz­liche Netz­aus­las­tung (mit Ausnahme der Synchronisation).
Auf beiden Systemen haben die Nodes die glei­chen IDs.
Event und Alarm IDs sind auf beiden Systemen gleichn.
 
Nach­teil:
Es dauert einige Minuten, bis OpenNMS gestartet ist. Damit geht auch ein höherer Daten­ver­lust (Perfor­mance­daten) mit ein.
 
Bei dieser Vari­ante über­wacht ein OpenNMS-Server, während auf dem zweiten Server OpenNMS deak­ti­viert ist. Hier gibt es mehrere Möglich­keiten sicher­zu­stellen, dass im Falle eines Ausfalls des aktiven OpenNMS Systems das passive System übernimmt.
Möglich­keit 1: Mittels eines proprie­tären Scriptes wird über­wacht, ob OpenNMS auf dem produk­tiven System aktiv ist. Sollte dies nicht der Fall sein, startet das Script OpenNMS auf dem Backup-System. Für den Fall, dass auf dem produk­tiven System OpenNMS wieder aktiv wird, stoppt das Script OpenNMS auf dem Backup-System.
Um Down­times und Daten­ver­luste gering zu halten, kann man das System mit einigen Scripten erwei­tern, die auto­ma­tisch Backups anlegen (lokal oder auf einem FTP-Server), Daten auf den Servern synchro­ni­sieren und im Fehler­fall das OpenNMS-System rasch wiederherstellen.
 

 
Möglich­keit 2: Eine Über­wa­chung wird durch 3rd-Party Soft­ware wie mit einem Pace­maker Cluster reali­siert. Diese Vari­ante ist am schnellsten umzu­setzen, hat jedoch den Nach­teil, dass durch die zusätz­liche Soft­ware im Problem­fall eine weitere Fehler­quelle erzeugt wird.
 

 

Praxis­bei­spiel: Pace­maker Cluster (Heart­beat, Coro­sync, Floating-IP)

Wie eine HA-Lösung mit Pace­maker einge­richtet werden kann wird nun hier an einem Beispiel beschrieben.
 
Ange­nommen werden haben zwei CentOS 7 Server mit OpenNMS:
IP von NMS-1 ist die 172.16.36.60
IP von NMS-2 ist die 172.16.36.61
 
Auf beiden Servern wurde in der /etc/hosts der folgende Eintrag geschrieben:
172.16.36.60 NMS-1
172.16.36.61 NMS-2
 
Auf beiden Servern wurde benö­tigte Soft­ware für die Umset­zung mit dem folgenden Befehl installiert:
yum install coro­sync pace­maker pcs -y
 
Auf beiden Servern wurde Pace­maker in den Auto­start gesetzt und pcsd gestartet:
systemctl enable pace­maker coro­sync pcsd
systemctl start pcsd
 
Auf beiden Servern wurde das Pass­wort und der User­names (hacluster) für das Cluster gesetzt:
passwd hacluster
 
Erstellen des Clus­ters (ab hier werden die Befehle nur auf dem NMS-1 ausgeführt):
Bei der Authen­ti­fi­zie­rung muss der Name vom vorhe­rigen Punkt verwendet werden - also hacluster. Hier wird das dort verge­bene Pass­wort verwendet.
pcs cluster auth NMS-1 NMS-2
 

 
pcs cluster setup --name NMS NMS-1 NMS-2
 
 

 
Hinzu­fügen des Clus­ters in den Auto­start und Starten des Clusters:
pcs cluster enable NMS-1 NMS-2
pcs cluster start NMS-1 NMS-2
 
Die Funk­tion des Clus­ters wird überprüft:
pcs status
 
Weitere Konfi­gu­ra­tionen von Pacemaker:
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
 
Hinzu­fügen der Ressourcen (Floa­ting-IP und OpenNMS Service):
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.16.36.70 cidr_netmask=32 op monitor interval=20s
pcs resource create OpenNMS system:opennms
 
Die Über­prü­fung der Ressourcen wird mit folgendem Befehl durchgeführt:
pcs status resources
 
Konfi­gu­ra­tion, um beide Ressourcen auf dem glei­chen Host laufen zu lassen:
pcs cons­traint colo­ca­tion add OpenNMS vip INFINITY
pcs cons­traint order vip then OpenNMS
 
Konfi­gu­ra­tion, um beide Ressourcen NMS-1 prio­ri­sieren zu lassen
pcs cons­traint loca­tion OpenNMS prefers NMS-1
pcs cons­traint loca­tion vip prefers NMS-1
 
Am Ende kann nochmal mit pcs status geprüft werden, ob das Cluster inkl. der Ressourcen funktioniert.
 
 

 
OpenNMS ist jetzt über die eigene IP und über die Floa­ting-IP erreichbar:
(172.16.36.60(NMS-1) bzw. 172.16.36.61(NMS-2) + 172.16.36.70(Floating-IP))
 
Nun kann getestet werden, ob bei einem Ausfall von OpenNMS auf dem Server NMS-1 oder durch Ausfall des Servers NMS-1 das OpenNMS von Server NMS-2 gestartet wird und über die Floa­ting-IP erreichbar ist. Der Test kann mit folgenden Befehlt durch­ge­führt werden:
pcs cluster stop NMS-1
Nach kurzer Zeit kann der Befehl pcs status auf dem NMS-2 ausge­führt werden. Hier sieht man, dass die Ressourcen nun auf NMS-2 liegen. Mit “service opennms -v status” sollte zu sehen sein, dass OpenNMS gestartet ist bzw. noch startet.
 
Über die Floa­ting-IP kann auch auf das Web-UI von Pace­maker zuge­griffen werden: https://172.16.36.70:2224/manage
Die entspre­chenden Zugangs­daten sind hacluster und das in der CLI verge­bene Pass­wort. Hier kann man weitere Ressourcen oder auch Service Über­wa­chungen hinzu­fügen und editieren.
 
Konfi­gu­ra­tion der Nodes
 

 
Konfi­gu­ra­tion der Ressource OpenNMS (Über­wa­chung des OpenNMS Dienstes)
 

 
Konfi­gu­ra­tion der Ressource Floa­ting-IP (hier: vip [virtual ip])
 

Weitere Infor­ma­tionen rund um OpenNMS erhalten Sie von unserem erfah­renen Team. Spre­chen Sie uns einfach an!

Schreibe einen Kommentar

Cookie Einstellungen
Diese Website verwendet Cookies, um die bestmögliche Funktionalität zu gewährleisten. Mehr lesen

Akzeptiere alle Cookies Speichern