mysql überwachungsscript (syslog, slave mode)

Antworten
Nachricht
Autor
.tim

mysql überwachungsscript (syslog, slave mode)

#1 Beitrag von .tim » 08. Nov 2007 18:08

Hallo alle zusammen,

Auf meinem ersten Server läuft MySQL im Master-Mode auf meinem zweiten im Slave-Mode. Es funktioniert alles. Nur was ist wenn es nicht mehr funktioniert?

In diesem Fall möchte ich gerne per SMS/Email wie auch immer informatiert werden. Sobald es Probleme mit der Synchronisation am Slave gibt wird ein Syslogeintrag erstellt.

Um nicht ständig eine Datei im Syslog parsen zu müssen und zu überprüfen ob der Fehler alt oder aktuell ist, würde ich gerne dem syslog Dämon oder mysql sagen, dass Fehler an einen "Prozess" gesendet werden.

Was könnt ihr mir empfehlen? Vielleicht hattet ihr das auch schon umgesetzt.

Lasst mich bitte eure Ideen hören.

Benutzeravatar
Janka
Beiträge: 3585
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 08. Nov 2007 21:47

Eine gültige Direktive in den "destination"s von syslog-ng ist
"program()". Das dürfte ungeführ das tun, was du möchtest. Vorher in der syslog-ng.conf passende Filter einrichten und nur das passende in das Programm reinschaufeln lassen.

http://home.datacomm.ch/prutishauser/te ... -ng-de.txt

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

.tim

#3 Beitrag von .tim » 09. Nov 2007 9:08

Danke für die Antwort das hört sich gut an.
Leider gibt es auf meinem System nicht die syslog-ng.conf sondern nur die syslog.conf. Ich benutze Debian:

Linux version 2.6.18-4-686 (Debian 2.6.18.dfsg.1-12) (waldi@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21))

Jetzt habe ich syslog-ng installiert. Wird es nun automatisch genutzt. Was ist mit dem alten Syslog Dämon?

.tim

#4 Beitrag von .tim » 09. Nov 2007 10:56

Hast du ein Beispiel?

Wenn ich folgenden Code in die Konfig schreibe

code]
destination aaa2 {
program("/aaa"
template("[$YEAR/$MONTH/$DAY $HOUR:$MIN:$SEC] $PRIORITY $FACILITY $PROGRAM $MESSAGE\n"));
};
[[/code]

und das Script /aaa folgenden Inhalt:

Code: Alles auswählen

echo $1 | wall
dann wird beim Restart das Wall ausgeführt ohne Inhalt.

Wird das Programm pro Zeile aufgerufen mit dem template als Parameter oder wie funktioniert das genau?

Antworten