SCOM und Regexp

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.
Gast
> HTTP\/[\d.]+.\s+(?:403)\s+(4[0-9])\s+
>
> die Ueberpruefung in der Eingabemaske das .NET Regex verwendet,
> der Linux Agent wohl das POSIX BRE.

Das "(?:403)" lässt eher PCRE vermuten - ein simples "403" sollte das 
gleiche machen.
Gast
foobar schrieb:
> Das "(?:403)" lässt eher PCRE vermuten

Korrekt. Beim ersten Ausdruck handelt es sich tatsaechlich um PCRE.

Die ueberarbeitete Version wurde aufgrund eines Formatierungsfehlers 
dann im Beitrag nicht mehr korrekt dargestellt. Also hier nochmals:
1
HTTP\/[0-9.]{1,}.[[:blank:]]{1,}403[[:blank:]]{1,}(4[0-9])[[:blank:]]
Gast
Mal ins Blaue...
1
HTTP\/[0-9.]\+.[[:blank:]]\+403[[:blank:]]\+(4[0-9])[[:blank:]]
oder
1
HTTP\/[0-9.]\{1,\}.[[:blank:]]\{1,\}403[[:blank:]]\{1,\}(4[0-9])[[:blank:]]

versuchen
wenn er keinen Fehler verursacht aber nicht "trifft", tausch mal 'blank' 
gegen 'space'
Gast
Unter SCOM konnte ich es noch nicht testen aber in der Bash funktioniert 
es nicht. Ich habe die Regexp noch mal ueberarbeitet und nun 
funktioniert sie jedenfalls in der Bash.
1
(HTTP[^"]*" (403)[[:space:]](4[0-9])[[:space:]])
Gast
Das Problem das ich am häufigsten mit RegExp habe,
ist in der Tat das manches bis zum Exzess escaped werden muss
(in besonders blöden implementationen sogar doppelt)
generell ist "+" ein "1 oder mehr" Quantifizierer,
genau wie "{1,}" beides muss soweit Herr Internetz sagt
in SCOM escaped sein also als "\+" bzw als "\{1,\}"

in der Bash wäre beides falsch da darf es nicht escaped sein,
Dein Ergebniss ist also soweit korrekt bis hier :D

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.