Gast
#6017864
Folgender Sachverhalt: SCOM soll ueber seinen Linux Agent eine Logdatei
ueberwachen. In dieser Logdatei tauchen bei Eingabe eines falschen
API-Keys Eintraege nach folgendem Muster auf:
belanglosertext HTTP/1.1" 403 48 "-" "belanglosertext"
Im SCOM habe ich daraufhin zunaechst folgende Regexp angegeben:
HTTP\/[\d.]+.\s+(?:403)\s+(4[0-9])\s+
Welche auch wie vorhergesehen den wesentlichen Teil der Fehlermeldung
erkennt, sofern man sie mittels einem der Zahlreichen Regex-Checker im
Netz ueberprueft. (der wesentliche Teil lautet HTTP/1.1" 403 {eine
zweistellige Zahl zwischen 40 und 49})
Auch die Eingabemaske von SCOM bietet eine Moeglichkeit der
Ueberpruefung an, welche den angegebenen Ausdruck als gueltig erkennt.
Die Logdatei des Linux Agents unter /var/opt/microsoft/scx/log/scx.log
gibt aber folgende Fehlermeldung aus und das Event wird ignoriert:
SCXLogFileProvider DoInvokeMethod - invalid regexp :
HTTP\/[\d.]+.\s+(?:403)\s+(4[0-9])\s+
Nun habe ich ein wenig recherchiert und bin auf diese Seite hier
gestossen:
https://blogs.technet.microsoft.com/systemcenterjp/2018/05/21/scom-linux-monitoring-regex/
(nur auf Japanisch)
Welche suggeriert, dass die Ueberpruefung in der Eingabemaske das .NET
Regex verwendet, der Linux Agent wohl das POSIX BRE.
Wenn ich nun den oeben angegebenen Ausdruck nach POSIX BRE umforme,
funktioniert es jedoch ebenfalls nicht.
HTTP\/[0-9.]{1,}.:blank:{1,}403:blank:{1,}(4[0-9]):blank:
(Die online Tools kommen damit allerdings auch klar)
Nun meine Frage: Gibt es bei SCOM sonst noch etwas zu beachten wie man
eine Regexp definieren soll? Da ich selbst aus der Linux/Unix Ecke
komme, kenne ich mich mit den MS Produkten nur bedingt aus und wuerde
mich ueber Loesungsansaetze freuen.