Freitag, 4. Mai 2012

MySQL Zweiseitige - Replikation umsetzten

Wir gehen davon aus, wir hätten zwei identische Suse Linux Server, auf denen MySql läuft.
Es sind masterserver.firma.de und slaveserver.firma.de
Eigentlich sind aber beide master und slave gleichzeitig. Die Datenbank Inhalte beider Server sind jederzeit (JEDERZEIT) absolut identisch. Sobald auf einem der Server ein neuer Datenbank Eintrag gemacht wird, wird er sofort repliziert auf den jeweils anderen.
Wir gehen davon aus, dass auf beiden Servern in der /etc/my.cnf folgende Einträge drinstehen

masterserver.firma.de

log-bin
server-id = 1
master-host = 192.168.0.2
master-user = repl
master-password = GeHe!mReplik@ntP@sswort
log-slave-updates

slaveserver.firma.de

log-bin
server-id = 2
master-host = 192.168.0.1
master-user = repl
master-password = GeHe!mReplik@ntP@sswort
log-slave-updates

Wir gehen davon aus, dass auf beiden Servern ein mysql-User namens „repl“ angelegt ist, der das FILE Recht hat.
Die beiden Server sind übrigens mit per Crossoverkabel verbunden auf dem zweiten Netzwerkinterface und haben private IP-Adressen. Diese Verbindung dient nur zur Replikation der Datenbanken.

Folgende Anleitung hilft, die Replikation aufzusetzen bzw. eine defekte Replikation binnen 10 Minuten zu reparieren - also quasi noch vor der Mittagspause!

1. Auf beiden Servern mysql beenden

/etc/init.d/mysql Stop


2. Auf slaveserver.firma.de den Ordner /var/lib/mysql umbenennen mit

mv /var/lib/mysql /var/lib/mysql.original

3. binäres Loggen auf BEIDEN deaktivieren mit

vi /etc/my.cnf

in der my.cnf auf beiden Servern folgende Eintraege auskommentieren (# davorstellen)

log-bin (Zeile 47)
log-slave-updates (Zeile 56)

4. Auf Server masterserver.firma.de im Ordner /var/lib/mysql alles löschen, das mit „www-*“ beginnt (das sind die „alten“ bin-log-Dateien, die wir loswerden müssen) (ps. das "www-*" bezieht sich auf MEINE Server. Bei dir heissen sie so, wie der Server heisst, also "masterserver-*")
Ferner loeschen wir die Dateien „master.info“ sowie „relay-log.info“

cd /var/lib/mysql
rm www-*
rm master.info
rm relay-log.info

5. Jetzt auf masterserver.firma.de vom Ordner /var/lib/mysql ein „tgz“ Paket erstellen
cd /
tar czvf mysql.tgz /var/lib/mysql

6. Die Datei mysql.tgz kopieren von masterserver.firma.de nach slaveserver.firma.de mit

scp mysql.tgz root@slaveserver.firma.de:/

7. Auf slaveserver.firma.de das kopierte File extrahieren

cd /
tar xzvf mysql.tgz

Nun sind die Verzeichnisse /var/lib/mysql auf beiden Servern exakt gleich.

8. Auf beiden Servern den mysql Dienst starten und wieder stoppen

/etc/init.d/mysql start
/etc/init.d/mysql Stop


9. Auf beiden Servern binäres Loggen wieder aktivieren

vi /etc/my.cnf

Das Kommentarzeichen # wieder entfernen von den Einträgen

bin-log (Zeile 47)
log-slave-updates (Zeile 56)

10. Auf beiden Servern mysql Dienst wieder starten

/etc/init.d/mysql start


Nun sind beide MySql Datenbanken gleich und die Replikation müsste funktionieren.

mysql Logdatei kontrollieren

tail -100 /var/lib/mysql/mysqld.log

Verändern der Zeitzone in Linux

Verändern der Zeitzone in Linux
Wenn die Zeitzone nicht stimmt, wird ntp zwar ordnungsgemäß arbeiten, 
aber man wundert sich dass die Uhrzeit nicht stimmt.

Mit diesem Befehl kann man die Zeitzone neu setzen
$ sudo dpkg-reconfigure tzdata

Mit diesem Befehl bekommt man die Zeitzone herau
$ cat /etc/timezone
Europe/Berlin

mplayer.exe CONVERT

mplayer.exe -ao pcm -vo null -dumpfile output.wav input.avi


Monitoring ESXi and HP Hardware with Nagios/Icinga

All of you might be aware of VMWare ESXi, VMWares powerful and free Hypervisor with 64-bit architecture.
Unfortunately most of the monitoring features from the licensed (and expensive) full version are missing – SNMP gets aren’t possible either, only traps. But there is a way out of this drawback, at least if you’re using HP hardware (should work with G5+) and nagios/icinga as monitoring tool.

First of all the best way to use ESXi on HP hardware is by instaling the ESXi version supplied by HP which can be downloaded here for free. In this version all needed agents and tools in order to monitor the ESXi server with nagios/icinga are already included.
For those who want to upgrade their existing ESXi server(s) HP offers its ESXi bundle as additional ESXi patch (hp-esxi4.0uX-bundle-1.2.zip), download here. In order to deploy it onto the ESXi servers the VMware vSphere CLI is needed, could be obtained from here.
After installing all the prequisites you have to deploy the ESXi bundle to your server. If you`re using a Windows client the command line, called from \bin directory of your vSphere Cli Installation (e.g. C:\Program Files\VMware\VMware vSphere CLI\bin), just use:
vihostupdate.pl –server –install –bundle c:\hp-esxi4.0uX-bundle-1.2.zip
After the next reboot of your server (unfortunately a reboot is necessary) you should be able to find new monitoring sensors in the configuration tab of your vSphere client as shown in the screenshot, e.g. the disk status:



If this works fine we continue with the next step: Monitoring multiple ESXi Servers with nagios/icinga
There are mulitiple versions of the python script check_esx_wbem.py in the net, but only some of them work properly with HP Hardware. (there is also a version which should be working with hardware from dell )
Requirements for the script are Python 2.6 and the Python extension pywbem.
The script we are using has proofed its functionality several times, you can obtain it
from here or directly from my site here.

Command usage is:
Command: python $USER1$/check_esxi_wbem.py https://$HOSTADDRESS$:5989 $ARG1$ $ARG2$ $ARG3$
example error would look like this:
/libexec # python check_esx_wbem.py https://vmware42.google.dmz:5989 statistics password hp
CRITICAL : Disk 4 on HPSA1 : Port 1I Box 1 Bay 4 : 136GB : Data Disk : Disk Error
if everything is fine:
/libexec # python check_esx_wbem.py https://vmware00.microsoft.dmz:5989 statistics password hp
OK hp hardware
Links:
Download ESXi version supplied by HP
HP ESXi Offline Bundle
VMware vSphere CLI
checK-esxi_wbem.py download