Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

SMART Monitoring umkonfigurieren oder Log-Filtering ESXi6

Alles zum Thema vSphere 6, ESXi 6.0 und vCenter Server.

Moderatoren: irix, Dayworker

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

SMART Monitoring umkonfigurieren oder Log-Filtering ESXi6

Beitragvon SteffenM » 24.07.2015, 14:04

Servus,

aktuell mal eine Frage an die Spezialisten, da ich das Internet leer gelesen habe und nix gefunden habe:

Ich habe im Homelab eine SSD (Micron MX200) für den Hypervisor und als Host Cache installiert. Funzt auch bestens, nur in den Logs erscheint regelmäßig der folgende Eintrag:

2015-07-24T11:19:52Z smartd: [warn] t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (62 > 0)

Sprich eine Meldung mit dem Status Warnung, wel die aktuelle Temperatur höher ist als der Treshold. Ist ja auch richtig aber offensichtlich passt der wert Treshold wert hier eben nicht.

Grundsätzlich könnte man natürlich sagen, lass Ihn melden, aber ich überwache die Syslog Meldungen des ESXi mit dem Synology Prtokoll Center um bei Warnungen alarmiert zu werden. So werde ich ständig mit dieser Meldung zugeballert.

Kann ich hier irgendetwas umkonfigurieren? Es soll zum Beispiel einfach der Temperatur wert nicht beachtet werden oä.!

Danke für jeden Tipp oder eine Idee,
Steffen

King of the Hill
Beiträge: 13560
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 24.07.2015, 14:40

Da selbst einige Hersteller-Tools ihre Probleme mit vor allem neuen SSDs haben, würde ich nicht darauf bauen, daß eine Fremd-SW da einen besseren Job macht. Von der Warte würde die Meldung in Synology ignorieren lassen.

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 24.07.2015, 14:55

Guter Ansatz, war auch meine erste Überlegung, aber der Synology SYSlog Server ist sehr rudimentär und kann keine spezifischen Meldungen ignorieren. Nur nach Schweregrad und dann bekomme ich eben gar keine Warnungen mehr!

Gruß, Steffen

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 24.07.2015, 18:30

Ich habe die Tage auf irgendeiner Seite gelesen wie man lokale Meldungen wegfiltert. Aber ich finde die Seite ums verrecken nicht wieder.

Gruss
Joerg

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 24.07.2015, 18:32

War ja klar..... und schwupps da ist es wieder. Schau mal ob dich http://www.v-front.de/2015/05/filtering ... tical.html irgendwie weiterbringt.

Gruss
Joerg

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 24.07.2015, 21:43

Servus Jörg.

Super + Bombe, das hört sich ja mal spitze an. Werde Testen und mich dann auf jeden Fall wieder melden.

PS: Der Beitrag ist gleich mal in mein Evernote Archiv gewandert!

Gruß, Steffen

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 24.07.2015, 21:53

Wenn dann must du dich beim Andreas bedanken :)

Aber schreib hier ruhig obs geklappt hat.

Gruss
Joerg

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 25.07.2015, 13:26

So nun einiges mit dieser Funktion getestet, aber leider bekomme ich die Warnung nicht gefiltert. Der Filter ist grundsätzlich aktiv und die Filter Datei wird auch erfolgreich gelesen, aber bei der Definition des Filters geht es schon los:

- Was muss ich als Ident eintragen? Wie bekomme ich heraus wo der Fehler ursprünglich herkommt bzw. wozu er gehört?

Da ich den Eintrag nur im syslog.log finde vermute ich mal den Ident syslog, aber ich habe auch schon alles mögliche sonstige ohne Erfolg probiert.

- Wie genau muss der RegExpr Ausdruck aussehen, wenn ich diesen Eintrag filtern will:

2015-07-25T09:19:52Z smartd: [warn] t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (63 > 0)

Ich habe es mit

above TEMPERATURE threshold*
t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E*

ohne Erfolg probiert!


Danke für jeden Tipp,
Steffen

King of the Hill
Beiträge: 13560
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 25.07.2015, 17:14

Ausgehend von "irix" Link sollte die Syntax in der Datei "/etc/vmware/logfilters" stehen. Poste mal bitte dessen Dateiinhalt.

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 25.07.2015, 17:20

Servus,

wo die Filter rein kommen und grundsätzlich das Format ist eigentlich klar, aber es wird leider nix gefiltert:

Code: Alles auswählen

# Copyright 2014, VMware, Inc.
# To filter out excessive logging, add lines with the following syntax:
#
#      numLogs | ident | logRegexp
#
# Any log line with a substring matching the regular expression logRegexp
# will appear the first "numLogs" times that it's issued, but will be
# ignored after that point. For example, the line:
#
#      5 | vmkernel | .*
#
#  will ensure that only the first 5 vmkernel-related lines appear in the log
#  and others are ignored.
#
#  All comparisons are case-sensitive. logRegexp must be a valid regular
#  expression confirming to the Python regular expression syntax.
#  Using '*' for the ident field implies that log messages from all sources
#  are a potential match. Multiple ident values can be specified in a comma
#  separated list. Consult /etc/vmsyslog.conf.d/*.conf for possible values
#  of ident.
#
#  This feature should be used only in the case where a log statement is
#  spewing excessively. Filtering the log too aggressively may make
#  troubleshooting more difficult if it loses valuable information.

0 | smartmgt | above TEMPERATURE threshold*
0 | libsmartsata | above TEMPERATURE threshold*
0 | syslog | above TEMPERATURE threshold*
0 | vmkwarning | above TEMPERATURE threshold*
0 | smartmgt | t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E*
0 | libsmartsata | t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E*
0 | syslog | t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E*
0 | vmkwarning | t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E*


Wie schon geschrieben - Was muss ich als Ident eintragen? Wie bekomme ich heraus wo der Fehler ursprünglich herkommt bzw. wozu er gehört?

Danke, Steffen

King of the Hill
Beiträge: 13560
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 25.07.2015, 17:46

Ins "Ident" gehört nach dem Durchfliegen des Links immer das Log, in dem der Fehler gelistet wird und Sonderzeichen wie der Punkt müssen auch nach den Python regular expressions maskiert werden.

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 25.07.2015, 18:11

Guck erstmal ob sowas wie ".*" alles wegfiltern wuerde damit man einen Effekt sieht

Dein "*" erkennt ein "vorhergehendes Element nicht oder mehrmals". Wir moechten aber lieber "Beliebiges Zeichen in unbekanter Anzahl" und das Sollte .* sein.

In einem vorherigen Leben hatte ich viel mit PREGs zutun. Aber man vergisst schnell und Pyhton hat da bestimmt ein paar Sonderheiten und diese ESXi Filtergeschichte bestimmt auch. Aber das bekommen wir schon hin.

Gruss
Joerg

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 26.07.2015, 09:22

Schön, dass Ihr mich bei der Geschichte unterstützt.

Der eigentliche Eintrag ist nur im syslog.log zu finden (habe mal das komplett log Verzeichnis heruntergeladen und die Dateien durchsuchen lassen)! Somit müsste der Ident doch syslog sein oder?

Demnach habe ich folgenden Ausdruck probiert:

0 | syslog | .*

Leider erscheint der Fehler dann immer noch!? Ich glaube das Problem liegt am Ident, aber ich habe keine Ahnung wie ich den Ursprung des Eintrages her bekomme???

Wie gesagt so sieht er aus und ich finde Ihn nur im syslog.log:

2015-07-26T07:19:54Z smartd: [warn] t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (64 > 0)


Gruß, Steffen

King of the Hill
Beiträge: 13560
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 26.07.2015, 14:30

Ausgehend von deinem Snippet würde ich es mit folgendem versuchen, da damit sämtliche Meldungen in allen Logs als potentielle Kandidaten unterdrückt werden:

Code: Alles auswählen

0 | * | .*
Wenn du dann trotzdem noch Meldungen findest, ist das Filtering anscheinend doch noch nicht aktiviert.

Ich habe leider keinen Zugriff auf einen ESXi6. Poste doch bitte mal die Dateiinhalte einiger Conf-Dateien aus "/etc/vmsyslog.conf.d/*.conf".

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 26.07.2015, 17:16

Servus,

also der 'Alles-Filter' von Dir funktioniert und es kommen keine Syslog Einträge mehr an! Somit scheint grundsätzlich das Filtern aktiv und auch zu funktionieren.

Die Datein aus /etc/vmsyslog.conf.d sehen so aus:

vmkernel.conf

Code: Alles auswählen

[vmsyslog-logger]

# unique id for this logger
id = vmkernel

# description of this logger
descr = vmkernel logs

# idents this logger is interested in
idents = vmkernel

# output file (e.g. foo == /var/log/foo.log)
file = vmkernel

# file logger class
fclass = FileLoggerMessageOnly

# network logger class
nclass = NetworkFilterVmkernelTimestamp


syslog.conf

Code: Alles auswählen

[vmsyslog-logger]

# unique id for this logger
id = syslog

# description of this logger
descr = Default syslog catch-all

# idents this logger is interested in. 

# Note : this is a special logger that catches any left-overs.  Do not
# remove!
idents = *

# output file (e.g. foo == /var/log/foo.log)
file = syslog

# file logger class
fclass = FileLoggerDefaultLogger

# network logger class
nclass = NetworkFilterSyslogTimestamp



Gruß, Steffen

King of the Hill
Beiträge: 13560
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Beitragvon Dayworker » 26.07.2015, 18:04

Okay dann setz doch anstatt ".*" mal deine Temp-Warnung ein.

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 26.07.2015, 18:10

Dachte ich mir auch gerade, da ich den Ident nicht kenne nehme ich eben * (da spielt es keine Rolle wo die Warnung her kommt). Wie sieht den die Zeile als Phyton RegExpr aus (dabei ist die 63 natürlich variabel und man könnte auch den vorderen Teil weglassen)?

t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (63 > 0)

Gruß, Steffen

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 26.07.2015, 18:44

Code: Alles auswählen

t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold.*


oder

Code: Alles auswählen

t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (\d\d > 0)


jetz mal Blind geraten. Ansonsten muesste ich mal ne Shell auf machen und mit Python Regex rumspielen.

Gruss
Joerg

King of the Hill
Beiträge: 12940
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 26.07.2015, 19:18

Ah.... die Runden Klammern sind Metazeichen und muesste evtl. mit einem \ maskiert werden weil sonst leiten sie eine Gruppierung ein.


Ahhh.... vorn ist auch noch nen .

Code: Alles auswählen

t10\.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold \(\d\d > 0\)


Falls du mehrere Platten mit dem Problem hast koennte

Code: Alles auswählen

t10\.ATA.*: above TEMPERATURE threshold \(\d\d > 0\)

helfen.

Gruss
Joerg

Member
Beiträge: 34
Registriert: 19.04.2010, 21:13
Wohnort: Hessen

Beitragvon SteffenM » 26.07.2015, 19:56

Jo so ist es! Mit Hilfe einer Phyton RegEx Test Seite habe ich ein wenig probiert und habe nun den folgenden Ausdruck erhalten:

t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold \(\d\d > 0\)

Zusätzlich musste ich (warum auch immer) den Ausdruck direkt vor dieser Warnmeldung mit in den Filter aufnehmen damit der Synology Protokoll Center nichts mehr gemeldet hat!

Die beiden Meldungen im Syslog sehen übrigens so aus:

2015-07-26T15:49:54Z smartd: libsmartsata: closing fd:5
2015-07-26T15:49:54Z smartd: [warn] t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold (63 > 0)

Wobei auch der Wert hinter fd: unterschiedlich sein kann!

Somit sieht mein Filter so aus:

0 | * | t10.ATA_____Crucial_CT500MX200SSD1__________________________14500E6A9F3E: above TEMPERATURE threshold \(\d\d > 0\)
0 | * | libsmartsata: closing fd:.*


Nun endlich wird der Eintrag auch komplett gefiltert und nicht mehr vom Synology Protokoll Center gemeldet!


Vielen vielen Dank Euch für die Unterstützung und Lösung des Problems,
Steffen


Zurück zu „vSphere 6.0“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste