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-Key: 242699

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

Printed on: April 20, 2024 at 03:04 o'clock

Member: Gersen
Gersen Jul 04, 2014 at 08:43:40 (UTC)
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
Member: Thomas91
Thomas91 Jul 04, 2014 at 09:01:03 (UTC)
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
Member: Gersen
Solution Gersen Jul 04, 2014, updated at Oct 27, 2014 at 07:28:00 (UTC)
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
Member: Thomas91
Thomas91 Jul 04, 2014 at 09:36:10 (UTC)
Goto Top
Was genau macht:

/etc/init.d/mysql status >/dev/null
Member: Gersen
Gersen Jul 04, 2014 at 09:44:03 (UTC)
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.