wombat.ch

your Partner for Network Design and CMS

ADMIN-Tipp: Kolorierte Logs

Große Textmengen sind schwer zu erfassen, nicht umsonst spricht man im  Zeitungsdeutsch auch von einer "Bleiwüste", wenn gliedernde Abbildungen oder Zwischenüberschriften fehlen. Bei langen Logs ergibt sich oft ein ganz ähnliches Problem. Schon ein bisschen Farbe könnte für Struktur sorgen -  zum Glück gibt es ein kleines Tool, das genau die in jeden Text bringt.

Das Tool heißt remark und es färbt jeden Text anhand Regulärer Ausdrücke ein. Wie das geht illustrieren gleich ein paar Beispiele, es gibt jedenfalls kaum Grenzen: Alles, was sich in eine Regel auf der Grundlage eines Textmusters fassen lässt, taugt, um dem Text einen bunten Anstrich zu verleihen.
Zuerst aber muss man das Tool selber installieren. Zum Ubuntu-Repository gehört es leider schon mal nicht, aber mit

$ wget http://savannah.nongnu.org/download/regex-markup/regex-markup_0.10.0-1_amd64.deb

besorgt man sich ein Debian-Paket. Wenn das nicht passt, ist auch ein RPM-Paket oder der Quelltext zum Kompilieren erhältlich:

$ wget http://savannah.nongnu.org/download/regex-markup/regex-markup-0.10.0.tar.gz

Aufgerufen wird das Kommando prinzipiell mit

Kommando [arg1, arg2, ...] | remark  Pfad/zum/Regelsatz

Hinter Regelsatz verbirgt sich ein Konfigurationsfile, dass die Regulären Ausdrücke enthält, die bestimmen, was wie eingefärbt werden soll. Im einfachsten Fall sähe das etwa so aus:

include "common"
/WARNING/ red

Das inkludierte "common" enthält ein paar Definitionen für Special Character Sequences zur Farbwahl in ANSI-Terminals wie

style red       { pre "\E[31m" post "\E[39m" }

Damit kann man zusammen mit den regulären Ausdrücken bequem Farbnamen statt der kryptischen Befehlsfolgen verwenden.
Nun wird schon das Wort "Warning" rot hervorgehoben. Das muss aber nicht alles sein. Nehmen wir an, wir wollten im Syslog den Zeitstempel zusätzlich grün absetzen. Dann ergänzen wir:

/^[A-Za-z]{3}\s[0-9]{2}\s([0-9]{2}:)+[0-9]{2}/ green

(Seltsamerweise funktionierte hier \d nicht, so dass man etwas umständlicher [0-9] schreiben muss.)
Noch feiner kann man die Farben abstufen, wenn man Reguläre Ausdrücke mit  Subausrücken konstruiert, denen man dann jeweils verschiedene Farben zuweist. Beispielsweise könnte man den Zeitstempel grün, Host- und Kommandonamen bis zum ersten Doppelpunkt in der Syslogzeile blau und den Rest gelb erscheinen lassen, während "Warning" weiter rot hervorgehoben wird. Dafür ändert man den zweiten Regulären Ausruck in:

/(^[A-Za-z]{3}\s[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2})(\s.*?:)(.*$)/ {
   default
   1 green
   2 blue
   3 yellow
   break
}

Auf alles wird der Default-Style angewendet, es sei denn, der Reguläre Ausdruck greift. Dessen durchnummerierten Subausdrücken in den runden Klammern entsprechen die aufgeführten Farben. Das break sorgt dafür, dass die RegEx-Auswertung abgebrochen wird, wenn die vorstehenden Bedingungen erfüllt sind. Das ist etwas performanter.

Kolorieren kann man nicht nur Texte wie in Logfiles, sondern auch die Ausgaben von Kommandos wie pinglsof oder netstat. Dafür lässt sich die Pipe mit dem remark-Befehl am besten in einem Shell-Alias speichern. Da ein Regelsatz beliebig  viele Reguläre Ausdrücke jeweils mit Subausdrücken enthalten kann und jedem Subausdruck eine andere Farbe oder ein anderer Schriftschnitt (wie bold) zuordenbar ist, geht mit entsprechendem Fleiß praktisch alles. Nur: Wenn jedes dritte Zeichen eine andere Farbe hat, ist alles auch wieder so unübersichtlich wie in der Bleiwüste.

 

Source/Quelle: Admin Magazin  http://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-Kolorierte-Logs

 

 

 

RSS Feed


Warning: Invalid argument supplied for foreach() in /var/www/clients/client2/web2/web/j/modules/mod_jw_srfr/helper.php on line 39

neusten Links


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/clients/client2/web2/web/j/modules/mod_quicklistweblinks/helper.php on line 78
many More Links »

part of ...

Linux Counter

Disqus

 

Learning Network

Seti@home & Boinc

myBonic

statistik

 


Who is Online

We have 416 guests and no members online

We have 320 guests, no bots and no members online