thomas91
Goto Top

Überwachen des SQL-Dienst mit einem Script und Monitoring

Guten Morgen,

ich möchte unter Debian 7.4 mit einem Script, welches von einer Monitoringsoftware ausgeführt wird. Den Rückgabewert des Skripts dokumentiert, sowie gegebenenfalls bei Ausfall des Dienstes eine E-Mail versendet. Das Script wurde angefangen von jemand Externem und funktioniert Momentan nicht. Die Überwachung ist Momentan pausiert.

!/bin/bash

PIDFILE=/var/run/mysqld/mysqld.pid
MYSQL_USER=mysql
MYSQL_UID=`grep $MYSQL_USER /etc/passwd | cut -d ":" -f 3`  

MYSQL_PID=`cat $PIDFILE`

PROCTIME=`ps -p $MYSQL_PID -o "%x" --no-heading`  

if [ $? -gt 0 ]; then
        echo -n 0
else
        #echo $PROCTIME
        echo -n 1
fi

Über Hilfestellung wäre ich sehr dankbar.

Content-ID: 242699

Url: https://administrator.de/contentid/242699

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

Gersen
Gersen 04.07.2014 um 10:43:40 Uhr
Goto Top
Hallo,

kannst Du bitte "funktioniert momentan nicht" genauer definieren...?

Auf den ersten Blick sieht es gut aus - für den Fall, dass der MySQL-Server läuft. Läuft er nicht, wird das Skript aufgrund fehlender PID-Datei in Zeile 7 abbrechen.

Das könnte man durch eine Abprüfung vorher ausschließen. Etwa:

if [ -f $PIDFILE ]

Gruß,
Gersen
Thomas91
Thomas91 04.07.2014 um 11:01:03 Uhr
Goto Top
Hey Gersen,

die Funktion des Skript´s sollte wie folglich sein:

Das Skript wird von der Software PRTG auf dem Server ausgeführt und soll einen Wert 0 oder 1 zurück geben. Dieser Wert soll natürlich für den Status des MYSQL Dienst stehen. PRTG selbst wird dann "alarm schlagen" oder Grüneslicht geben. Kurz und knackig ^^

Gruß Thomas
Gersen
Lösung Gersen 04.07.2014, aktualisiert am 27.10.2014 um 08:28:00 Uhr
Goto Top
Dann ist es doch am einfachsten, die Status-Meldung von MySQL auszuwerten:

#!/bin/bash

/etc/init.d/mysql status >/dev/null

if [ $? -eq 0 ]
        then echo -n 0
        else echo -n 1
fi
Thomas91
Thomas91 04.07.2014 um 11:36:10 Uhr
Goto Top
Was genau macht:

/etc/init.d/mysql status >/dev/null
Gersen
Gersen 04.07.2014 um 11:44:03 Uhr
Goto Top
Das erzeugt eine Statusanfrage an den MySQL-Dienst und schreibt die Ausgaben des Kommandos (etwa "[info] MySQL is stopped..") ins Nirwana (>/dev/null).

Mit dem Rückkehrwert des Kommandos (0 für laufend, alles andere für Probleme) wird weitergearbeitet.