Seite wählen

Monitoring Cluster fürs Prekariat

von | Okt 5, 2012 | Icinga

Wenn DRBD der Cluster für arme Leute ist, stelle ich heute mit csync2 eine Möglichkeit vor, die noch unterhalb von DRBD anzusiedeln ist. Csync2 ist ein Daemon, der sich um die Synchronisation einzelner Dateien oder auch ganzer Verzeichnisse kümmert. In einer SQLite Datenbank wir über Änderungen in den zu kontrollierenden Dateien Protokoll geführt und bei Bedarf von der anderen Seite, dem anderen Cluster-Knoten, angefordert und bei sich selbst abgelegt.
Icinga darf nur auf einem unseren zwei Knoten laufen, da sonst nicht nur doppelte Host- und Service-Checks ausgeführt werden, sondern womöglich auch jeweils zwei Benachrichtigungen erzeugt werden. Auch müssten Downtimes, Acknowleges oder ähnliches doppelt gesetzt werden. Dies ist natürlich nicht im Sinn eines Clusters. Um dies zu bewerkstelligen sei hier auf corosync und pacemaker verwiesen. Wir wollen uns heute jedoch lediglich um die Datensynchronisation kümmern. Es sollen nicht nur die aktuellen Daten des Monitoring-System synchronisiert werden, sondern ebenfalls die komplette Konfiguration.
Die Konfiguration von csync2 gestaltet sich sehr einfach und liegt in der Datei /etc/csync2/csync2.cfg:

nossl node1 node2;
nossl node2 node1;
group icinga
        host node1;
        host node2;
        key /etc/csync2/csync2.key_icinga;
        include /etc/csync2/csync2.cfg;
        include /etc/apache2/conf.d;
        include /usr/local/icinga/etc;
        include /usr/local/icinga/var/retention.dat;
        include /usr/local/icinga/var/icinga.log;
        include /usr/local/icinga/var/archives;
        auto younger;
}

Die ersten zwei Zeilen besagen, dass wir zwischen beiden Knoten in beide Richtungen auf SSL verzichten. Uns genügt hier eine symmetrische Verschlüsselung. Den Schlüssel erzeugen wir durch

node1# csync2 -k /etc/csync2/csync2.key_icinga

und kopieren diesen sowie auch die Konfiguration auf node2:

node1# scp /etc/csync2/csync2.key_icinga node2:/etc/csync2/
node1# scp /etc/csync2/csync2.cfg node2:/etc/csync2/

Mit den include-Anweisungen sagen wir dem Daemon, welche Dateien bzw. Verzeichnisse überwacht werden sollen. Nun können wir csync2 über den xinetd starten lassen, nach dessen Konfiguration muss der xinetd neugestartet werden. Zum Abschluss müssen wir dafür sorgen, dass auf jedem Knoten auch der andere abgefragt und gegebenfalls synchronisiert wird. Hierfür rufen wir den csync2-Client via cron auf, natürlich auf beiden Knoten.

* * * * * root /usr/sbin/csync2 -x

Nun werden jede Minute Dateien an denen Änderungen vorgenommen worden sind, auf den anderen Knoten synchronisiert. Bei Änderungen auf beiden Knoten innerhalb dieser Minute, wird die Datei mit dem neueren Zeitstempel als aktuell angesehen. Dieser Verhalten wird durch

auto younger;

eingeschaltet. Bei einem Schwenk des Clusters, ist allerdings bedingt mit Datenverlust zu rechnen. Die Logs können in diesem Besispiel 60 Sekunden alt sein und die retention.dat, je nachdem was in icinga.cfg eingestellt ist, diese Zeitspanne plus besagter Minuten veraltet sein.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.

2 Kommentare

  1. Birger Schmidt

    Also Lennart, ob Prekariat hier passt, da solltest du vielleicht noch mal nachlesen: http://de.wikipedia.org/wiki/Prekariat
    Aber Csync2 ist schon eine sehr interessante Software. Ich habe das hier in Verbindung mit lsyncd im Einsatz.
    Wenn die Datenmengen nicht zu riesig sind, hat man dann instant replication.

    Antworten
  2. Lennart Betz

    Ich habe es durchaus nachgelesen… ist mir auch klar das es nicht super passt. Ich wollte aber auf biegen und brechen dieses Wort benutzen! Nein, ernsthaft es sollte Bezug zu der Aussage nehmen, dass DRBD der Cluster der armen Leute wäre. Perspektivlosigkeit sollte natürlich nicht wiedergegeben werden.

    Antworten

Trackbacks/Pingbacks

  1. Weekly Snap: Synergy, Braintower, TypeScript & Csync2 › NETWAYS Blog - [...] Georg announced a new €599 deal on the Braintower SMS Gateway for Nagios and Icinga, while Lennart showed how…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Icinga