Frage Wie werde ich über ECC-Fehler in Linux benachrichtigt?


Wie werde ich benachrichtigt, wenn ein mit ECC-Speicher ausgestatteter Linux-Computer einen Speicherfehler erkennt? Ich bin an korrigierbaren und nicht korrigierbaren Fehlern interessiert.

  • Wenn eine Nachricht in dmesg / the syslog geschrieben wird, ist das bereits in Ordnung, aber ich würde gerne wissen, wonach ich suchen soll
  • Installation zusätzlicher Daemons (wie Smartmontools für Festplatten) ist akzeptabel
  • Nagios / Icinga Monitoring wäre ein weiterer Weg zu gehen
  • Nicht alle zu überwachenden Maschinen haben IPMI

Systeme von Interesse haben Supermicro Boards (X9SCM-F), in Bezug auf einen HP N54L Microserver bin ich nur Kuriositäten, aber kümmert sich nicht zu viel. Alle Systeme führen Debian oder Ubuntu Linux aus.


19
2017-11-11 15:00


Ursprung


Bitte beschreiben Sie den Servertyp und das Hersteller / Modell, die Betriebssystemversion und andere relevante Hardwaredetails. - ewwhite
Ich wusste nicht einmal, dass es gemeldet wurde ... - Halfgaar
Laufen mcelog während der Überwachung der Syslog scheint wie der Weg zu gehen. - Jens Erat


Antworten:


Das Linux-Kernel unterstützt die Fehlererkennung und -korrektur (EDAC) Merkmale einiger Chipsätze. Auf einem unterstützten System mit ECC Der Status Ihres Speichercontrollers ist über sysfs zugänglich:

/sys/devices/system/edac/mc

Der Verzeichnisbaum unter diesen Speicherorten sollte Ihrer Hardware entsprechen, z. B .:

/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...

Abhängig von Ihrer Hardware müssen Sie möglicherweise den richtigen edac-Treiber explizit laden, vgl .:

find /lib/modules/$(uname -r) -name '*edac*'

Das edac-utils Paket stellt ein Befehlszeilen-Frontend und eine Bibliothek für den Zugriff auf diese Daten bereit, z.

edac-util -rfull          
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0

Sie können eine Art Cron-Job einrichten, der periodisch aufruft eac-util und füttert die Ergebnisse in Ihr Überwachungssystem, wo Sie dann einige Benachrichtigungen konfigurieren können.

Darüber hinaus läuft mcelog ist im Allgemeinen eine gute Idee. Hängt vom System ab, aber nicht korrigierbare / korrigierbare ECC-Fehler werden wahrscheinlich als Ausnahme für Maschinenprüfung gemeldet (MCE), auch. Ich meine, sogar kurze CPU-Throttling-Zeiten aufgrund höherer Temperaturen werden als MCE gemeldet.


3
2017-12-16 17:41





mcelog überwacht den Speichercontroller und Melden von Speicherfehlerereignissen zu Syslog und in einigen Konfigurationen können offline schlechte Speicherseiten. Dies wird natürlich zusätzlich zu seiner üblichen Verwendung zur Überwachung von Maschinenprüfungsausnahmen und einer Vielzahl von anderen Hardwarefehlern verwendet.

Die meisten Linux-Distributionen haben einen Dienst, der eingerichtet ist, um ihn als Daemon auszuführen, z. für EL 6:

chkconfig mcelog on
service mcelog start

8
2017-11-11 15:50





Dies hängt von Ihrer Serverhardware ab. Eine Whitebox oder ein Supermicro-System wird das anders handhaben als ein Dell, HP oder IBM ...

Eine der Mehrwertfunktionen von High-End-Servern ist die Integration von Hardware und Betriebssystem. Bessere Server melden, was Sie als Teil der Verwaltungsagenten und / oder der Out-of-Band-Verwaltungslösung (ILO, DRAC, IPMI) suchen.

Sie sollten die nativen Tools für Ihre Hardwareplattform verwenden.

Auszug aus einem HP ProLiant Server mit Linux und den HP Management Agents:

Trap-ID=6056
ECC Memory Correctable Errors  detected.

und

Trap-ID=6052
Advanced ECC Memory  Engaged

oder ein strenger

Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.

oder das Schlimmste ... Ignoriere einen Fehler für 6 Tage, bis der Server wegen schlechtem RAM abstürzt

0004 Repaired       22:21  12/01/2008 22:21  12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)

0007 Repaired       02:58  12/07/2008 02:58  12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during 
memory initialization, 
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.

0008 Repaired       19:31  12/08/2009 19:31  12/08/2009 0001
LOG: ASR Detected by System ROM

Diese wurden protokolliert, außerdem wurden SNMP-Traps und E-Mails gesendet.

In der Regel sehen Sie im Kernel-Ringpuffer Ausnahmen für die Maschinenprüfung, die Sie überprüfen können dmesg oder laufe Mcelog. Bei meinen Erfahrungen mit Supermicro-Getrieben ohne IPMI hat das nicht alles gefangen, und ich hatte immer noch RAM-Fehler, die durch die Risse schlitterten und Ausfälle verursachten. Leider führte dies zu archaische RAM Burn-In-Richtlinien vor Systembereitstellungen.


5
2017-11-11 15:52