Zabbix hochverfuegbar

MySQL Replikation einrichten

  • MySQL auf Master und Slave stoppen
  • Auf beiden in der Datei my.cnf einen unterschiedlichen Wert für server-id eintragen.
  • Auf dem Master die Option log-bin=mysql-bin aktivieren.
  • Datenverzeichnis vom Master auf den Slave kopieren.
rsync -av --delete /var/lib/mysql/ root@192.168.17.104:/var/lib/mysql/
  • MySQL auf dem Master starten.
  • Replikationsbenutzer auf dem Master anlegen
mysql> GRANT REPLICATION SLAVE ON *.* TO repli IDENTIFIED BY 'geheim';
  • MySQL auf dem Slave starten.
  • Slave mit Master verbinden.
mysql> CHANGE MASTER TO MASTER_HOST='192.168.17.103',
    -> MASTER_PORT=3306,
    -> MASTER_USER='repli',
    -> MASTER_PASSWORD='geheim';
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

Lsyncd installieren

Lsyncd beobachtet einen Ordner, dabei greift der Dienst auf inotify zurück. Sobald sich in diesem Ordner eine Datei ändert, wird diese auf dem Spiegel-Ziel auch geändert. Lsyncd nutzt dabei rsync zum Aktualisieren des entfernten Ordners. Lsyncd braucht anders als DRBD kein Kernelmodul, weil es eine datei- keine blockbasierte Replikation durchführt. Lsyncd ist in vielerlei Hinsicht der Performance von DRBD unterlegen. Da im Falle des Zabbix-Servers die zu replizierenden Daten sich nur selten ändern und es sich im sehr kleine Datenmenge handelt, ist die einfache Funktionsweise und die unkomplizierte Installation ein großer Vorteil.

SLES 11 SP1

zypper install pkg-config lua lua-devel
cd /usr/src/
wget http://lsyncd.googlecode.com/files/lsyncd-2.0.5.tar.gz
tar xzf lsyncd-2.0.5.tar.gz
cd lsyncd-2.0.5/
./configure
make
make install

OpenSuSe 12.1

zypper install lsyncd

Debian und Ubuntu

apt-get install lsyncd

SSH Keys tauschen
Kopieren Sie vom Master den Inhalt der Datei /root/.ssh/id.rsa in die Datei /root/.ssh/authozid_keys. Alternativ können Sie auch das nachfolgende Kommando verwenden:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@zabbix-slave.local 

Loggen Sie sich per SSH auf dem Slave ein, damit der SSH-Fingerprint der Datei known_hosts hinzugefügt wird, und alle weiteren Verbindungen ohne Bestätigung erfolgen können.

Starte Lsyncd

lsyncd -delay 2 -pidfile /var/run/lsyncd -rsyncssh /opt/zabbix/ zabbix-slave.local /opt/zabbix/

Installation von Ucarp

Für SLES 11SP1 und OpenSUSE 12.1

zypper install libpcap-devel
cd /usr/src
wget http://download.pureftpd.org/pub/ucarp/ucarp-1.5.2.tar.gz
tar xzf ucarp-1.5.2.tar.gz
cd ucarp-1.5.2
./configure
make
make install

UCARP auf dem Master starten:

ucarp --interface==eth0 --srcip=192.168.17.104 --vhid=1 --pass=mypassword --addr==192.168.17.199

UCARP auf dem Slave starten:

ucarp --interface==eth0 --srcip=192.168.17.103 --vhid=1 --pass=mypassword --addr==192.168.17.199