[Linux] Synchronisieren von OMD-Sites

Hallo,

zur Überwachung meiner Server und Switche setze ich seit längerem OMD (Open-Monitoring-Distribution),     welches auf Nagios basiert, ein. Dieses System ist voll mandantenfähig, dh. man kann hier sogenannte  “Sites” anlegen, welche komplett abgetrennte Bereiche sind, in denen man mit seinem eigenen Benutzer Komponenten überwachen kann.

Ich möchte hier jetzt nicht das gesamte System vorstellen, da dies sehr viel werden würde. Wer nähere Infos dazu möchte, kann sich über die Website des Produkts hier informieren: http://omdistro.org/

Vielmehr will ich hier eine Lösung zum Synchronisieren dieser Sites auf einen sekundären Server vorstellen.

Man hat dadurch ein komplettes Backup der Sites. Diese können auf dem sekundären Server direkt angestartet werden.

Hier das Skript dazu (bitte beachten, dass für den check auf dem sekundären Server ein ssh key erforderlich ist):

#!/bin/bash

###############################################################
################### sync-master v1.0 ##########################
##### letzte Änderung 01.08.2011 Sebastian Deubel #############
###############################################################
# Dies ist ein Skript zum Synchronisieren der OMD-Sites zwischen
# den Mastern srv1 und srv2.
# Hier wird mit rsync und ssh gearbeitet.
# Zum ändern der zu synchronisierenden Site bitte den Inhalt
# der Variable site auf den Site-Namen anpassen.
###############################################################
###############################################################

server=srv2

for i in `omd sites | grep -E -v “(SITE|VERSION)”| awk ‘{ print $1 }’`;do
## Abfrage ob der Ordner fuer die Site auf dem Remote-Server bereits vorhanden ist.
if [ `ssh root@$server.xx.xx.de test -d /opt/omd/sites/$i && echo exists` ];
then
## Wenn ja, den Remote-Ordner mit dem lokalen Ordner synchronisieren und die Site anschließend neustarten.
echo Site exists, first stop!
ssh root@$server.xx.xx.de /usr/bin/omd stop $i
echo ” ”
echo Beginning sync, please wait!
rsync -r -a -v -e ssh –delete /opt/omd/sites/$i/ root@$server.xx.xx.de:/opt/omd/sites/$i/
sleep 10

echo Change Autostart to off,please wait!
ssh root@$server.xx.xx.de /usr/bin/omd config $i set AUTOSTART off

ssh root@$server.xx.xx.de /usr/bin/omd restart $i

## Wenn der Ordner, also die Seite, noch nicht vorhanden ist soll zuerst von OMD eine leere Site erstellt
## werden und anschließend mit dem lokalen Ordner synchronisiert werden. Danach wird die Site gestartet.
else
ssh root@$server.xx.xx.de /usr/bin/omd create $i
sleep 10
echo ” ”
echo Beginning sync, please wait!
rsync -r -a -v -e ssh –delete /opt/omd/sites/$i/ root@$server.xx.xx.de:/opt/omd/sites/$i/
sleep 10
ssh root@$server.xx.xx.de /usr/bin/omd start $i
ssh root@$server.xx.xx.de /usr/bin/omd config $i set AUTOSTART off
fi;done