Auto MCELog-Check

Aus AdminWiki

Wechseln zu: Navigation, Suche

Diese Anleitung beschreibt die Installation von MCECheck unter Linux ( Debian Etch )

Voraussetzungen:

- Erfahrung mit Linux
- Umgang mit einer Linux-Shell
- Erfahrung mit der Installation von Paketen/Software
- Erfahrung im Umgang mit Editoren in einer Shell
- Erfahrungen im Umgang mit Konfigurations-Dateien
- Kenntnisse im Netzwerkbereich

Inhaltsverzeichnis

Einleitung

Das Projekt mcelog befasst sich damit, Hardwarefehler unter Linux zu dekodieren und somit "Lesbar" zu machen. Diese Fehler werden, wenn überhaupt, nur mit der lapidaren Fehlermeldung "Machine check events logged" in dmesg angezeigt. Es finden sich keine weiteren Meldungen die mehr Informationen zu etwaigen Hardwarefehlern liefern. mcelog bietet da Abhilfe, wenn auch nur temporär. Das bedeutet das mcelog die Fehler zwar dekodiert und anzeigt aber leider auch nur einmal. Der/die Fehler werden _nicht_ wieder angezeigt oder gespeichert. Wenn man da nicht mitdenkt und die Ausgabe von mcelog z.Bsp. in eine Datei piped, ist die Fehlermeldung verloren und man muss auf das nächste Auftreten des Fehlers warten. Das ist natürlich sehr unschön und in einer produktiv Umgebung kann das sogar tödlich sein, da evtl. auftretende Hardwarefehler erst _nach_ dem Ernstfall ersichtlich werden, wenn überhaupt. Deshalb habe ich ein kleines PHP-Skript geschrieben, das alle Server die überwacht werden sollen per "Remote-SSH" auf etwaige Fehler abfragt und bei vorhandenen Fehlern eine Mail an den Administrator schickt. Außerdem werden die Fehler lokal gespeichert.


Installation

Zu erst benötigen wir php-cli auf dem Host, von wo aus die Server per Remote-SSH geprüft werden sollen Außerdem sollte auch noch Postfix darauf laufen um die Mails zustellen zu können. Des weiteren muss der bzw. müssen die Server per SSH ohne Passwort abfrage erreichbar sein.

PHP-CLI

Das PHP Command Line Interface (CLI) wird mit

apt-get install php5-cli 

installiert.

Postfix

Wird mit

apt-get install postfix

installiert. Bei der Frage nach der Konfiguration sollte, wenn nicht anders gefordert, "Nur lokale Zustellung" ausgewählt werden.

SSH

Damit das Host-System die zu prüfenden Server erreichen kann sollte SSH benutzt werden um eine Sichere Kommunikation zu gewährleisten. Dafür muss natürlich auch SSH installiert sein.

Folgende Anleitung beschreibt sehr gut wie das am besten gemacht wird.

Wichtig: Zugriff Linux SSh Server per Schlüssel / Key ohne Passwort muss unbedingt beachtet werden!


mcelog

Natürlich wird auch mcelog auf den Servern benötigt die überwacht werden sollen. Falls noch nicht installiert, sollte dies nun nachgeholt werden!

apt-get install mcelog

Hinweis: Wer nur eine Handvoll Server überwachen möchte, kann die Installation per Hand auf jedem Server einzeln durchführen und dabei gleich mit testen ob der "Password-Freie" Zugang zu den Servern per SSH auch wirklich funktioniert.

Wer viele Server überwachen möchte kann die Installation auch vom mcecheck-Skript erledigen lassen. Siehe dazu Konfiguration von mcecheck


MCECheck

Als nächstes benötigen wir noch das mcecheck-Skript das von Meiner Homepage runter geladen werden kann.

Das Skript sollte an einen sicheren Ort kopiert werden. Evtl. einen extra Ordner unter "/root/" erstellen.

Konfiguration

MCECheck

Das mcecheck-Skript bedarf vor der ersten Ausführung noch einiger Anpassungen.

mail_to eine gültige E-Mail Adresse, zb des Admins

mail_from Name des Absenders

log_dir der Absolute Pfad zum Verzeichnis in dem die Logs gespeichert werden sollen

err_file quasi Postfix der Log-Files (Postfix hier != Postfix Programm!)

$srv Nummerisches Array mit den Namen oder IPs der Server die geprüft werden sollen


Falls mcelog noch nicht auf den Servern installiert wurde, kann das beim erstmaligen ausführen des Skriptes nachgeholt werden.

Dazu einfach die Zeile

// exec('ssh '.$server.' aptitude install mcelog -y');

auskommentieren und das Skript EINMAL ausführen. Danach die Zeile wieder kommentieren oder löschen!!

Cron

Als letzter Schritt fehlt noch das einbinden des Skriptes in die Crontab.

Dafür geben wir ein

crontab -e

Nun geben wir ein z.Bsp:

*/5 * * * * php /pfad/zum/skript/mcecheck.php > /dev/null 2>&1

Hinweis:

Die Zeiten für die Ausführung des Skriptes sollten Sie ggf. abändern und ihren Bedürfnissen anpassen! Außerdem muss der korrekte absolute Pfad zum mcecheck.php-Skript eingefügt werden!

Zum Schluss noch alle Änderungen Speichern!

Fertig

Testweise sollte das Skript vorher mal manuell ausgeführt werden:

php -f /pfad/zum/skript/mcecheck.php

Bei Erfolg sollten nun alle Server getestet werden. Dabei werden auf der Shell während der Laufzeit laufend Statusnachrichten erzeugt und angezeigt.

z.Bsp:

"Checking IHR_1._SERVER..." ,

"Checking IHR_2._SERVER..."

usw.

Wenn Sie diese Ausgaben sehen hat alles geklappt und wir sind fertig!

Persönliche Werkzeuge