User Tools

Site Tools


uls:agents:log_file_adapter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
uls:agents:log_file_adapter [2023-11-19 18:03]
uls [Usage]
uls:agents:log_file_adapter [2025-04-03 10:43] (current)
uls [Configuration File]
Line 50: Line 50:
 Für jede neu hinzukommende Zeile werden folgende Aktionen durchgeführt:​ Für jede neu hinzukommende Zeile werden folgende Aktionen durchgeführt:​
   * passt die Zeile zum regulären Ausdruck von vreg, dann diese Zeile ignorieren => auf nächste Zeile warten   * passt die Zeile zum regulären Ausdruck von vreg, dann diese Zeile ignorieren => auf nächste Zeile warten
-  * passt die Zeile zu einem regulären Ausdruck ​von reg0..reg99 ​oder reg0+..reg99+, dann die Zeile parsen mit iformat0..99 ​und entsprechende ​action0..action99 ​ausführen => wenn reg0+..reg99+, dann weiter vergleichen,​ sonst auf nächste Zeile warten +  * passt die Zeile zu einem regulären Ausdruck ​der reg oder reg+, dann die Zeile parsen mit iformat ​und entsprechende ​action, write oder syslog ​ausführen 
-  * ist ereg_all = 1, dann eaction ausführen => auf nächste Zeile warten +    ​=> wenn reg+, dann weiter vergleichen,​ sonst auf nächste Zeile warten
-  * passt die Zeile zum regulären Ausdruck von ereg, dann die Zeile parsen mit inputformat und eaction ausführen => auf nächste Zeile warten +
-  * ist wreg_all = 1, dann waction ausführen => auf nächste Zeile warten +
-  * passt die Zeile zum regulären Ausdruck von wreg, dann die Zeile parsen mit inputformat und waction ausführen => auf nächste Zeile warten+
   * ist lreg_all = 1, dann laction ausführen => auf nächste Zeile warten   * ist lreg_all = 1, dann laction ausführen => auf nächste Zeile warten
   * passt die Zeile zum regulären Ausdruck von lreg, dann die Zeile parsen mit inputformat und laction ausführen => auf nächste Zeile warten   * passt die Zeile zum regulären Ausdruck von lreg, dann die Zeile parsen mit inputformat und laction ausführen => auf nächste Zeile warten
   * wenn keine der obigen Bedingungen erfüllt sind, dann wird die Zeile ignoriert => auf nächste Zeile warten   * wenn keine der obigen Bedingungen erfüllt sind, dann wird die Zeile ignoriert => auf nächste Zeile warten
  
-Zu allen direkt eingetragenen regulären Ausdrücken reg?[+] kann auch eine Datei reg_file?[+] angegeben werden, die mehrere Zeilen mit jeweils einem regulären Ausdruck enthalten können. Die regulären Ausdrücke werden bei der Anwendung von reg_filelogisch ODER verknüpft. Es wird entweder regoder reg_fileverwendet, der letzte Eintrag in der Konfigurationsdatei entscheidet.+Zu allen direkt eingetragenen regulären Ausdrücken reg[+] kann auch eine Datei reg_file[+] angegeben werden, die mehrere Zeilen mit jeweils einem regulären Ausdruck enthalten können. Die regulären Ausdrücke werden bei der Anwendung von reg_file logisch ODER verknüpft. Es wird entweder reg oder reg_file verwendet, der letzte Eintrag in der Konfigurationsdatei entscheidet.
  
  
Line 235: Line 232:
  
 # es können bis zu 100 Dateien überwacht werden, die als feste Dateinamen oder Suchmuster angeben werden # es können bis zu 100 Dateien überwacht werden, die als feste Dateinamen oder Suchmuster angeben werden
-# d. h. inputfile ​und inputfilepattern ​darf mehrfach angegeben werden+# d. h. inputfile, inputfiles, ​inputfilepattern ​und inputfilepatterns dürfen ​mehrfach angegeben werden
  
 # feste Dateinamen # feste Dateinamen
Line 252: Line 249:
 # Es wird die erste Datei, die zum Muster passt überwacht. # Es wird die erste Datei, die zum Muster passt überwacht.
 # Wenn die Datei gelöscht oder komprimiert wird, dann wird erneut gesucht. # Wenn die Datei gelöscht oder komprimiert wird, dann wird erneut gesucht.
-+#
 inputfilepattern = /​var/​log/​prod/​logfile*.log inputfilepattern = /​var/​log/​prod/​logfile*.log
 +
 +# Dateien nach Muster in mehreren Pfaden
 +#
 +# Wenn der Name der Logdatei nicht feststeht. ​
 +# Es wird in allen Pfaden jeweils die erste Datei, die zum Muster passt überwacht.
 +# Wenn die Datei gelöscht oder komprimiert wird, dann wird erneut gesucht.
 +# Der letzte Wildcard gibt an, über welche Dateien die neueste gesucht werden soll.
 +# Wenn der veränderliche Teil nicht am Ende steht, dann muss der veränderliche Teil
 +# in {...} eingeschlossen werden.
 +#
 +inputfilepatterns = /​var/​log/​*/​logfile*.log ​ # jeweils die neueste Datei pro Ordner
 +inputfilepatterns = /​var/​log/​*_logfile*.log ​ # mehrere Logfiles in einem Ordner
 +inputfilepatterns = /​var/​log/​logfile_{*}_*.log ​ # mehrere Logfiles in einem Ordner, das Datum steht vorn
 +
  
 # Die Suchreihenfolge kann geändert werden: # Die Suchreihenfolge kann geändert werden:
Line 268: Line 279:
 #   ​unabhängig von inputfilepatternsort wird auf die neueste Datei gewechselt #   ​unabhängig von inputfilepatternsort wird auf die neueste Datei gewechselt
 inputfilepatternsearch = 60 inputfilepatternsearch = 60
 +
 +# inputfilereopen
 +# Bei Linux werden die Logdateien nicht geschlossen
 +inputfilereopen = 1    # Logdateien schließen, wenn nicht gelesen wird (ist bei Windows standard)
 +
 +# exit_on
 +# der lfa4uls kann beendet werden, wenn:
 +exit_on = EOF     # beenden, wenn Datei zu Ende gelesen wurde
 +exit_on = FNF     # wenn keine Datei gefunden wird, bzw. wenn es keine neue Datei gibt
  
  
Line 340: Line 360:
 %0 bis %9 - freie Variablen %0 bis %9 - freie Variablen
 # die Variablen %h, %q und %0 - %9 können global vorbelegt werden: # die Variablen %h, %q und %0 - %9 können global vorbelegt werden:
-set <​varname>​=<​value>​+set <​varname>​ = <​value>​
  
-# ----- DIRECTORY ----- 
-# Für die Directory-Funktionen wird I-Notify verwendet, das unter Windows nicht zur Verfügung steht. 
-# 
-# Zu überwachendes Verzeichnis (nicht zusammen mit inputfile oder inputfilepattern) 
-inputdir = /var/log 
  
-inputdir_num_subdirs wenn auf größer ​gesetzt, dann werden bis zu inputdir_num_subdirs Unterverzeichniss mit überwacht +----- date time ----- 
-inputdir_num_subdirs ​50+utcin = 1|0    # read timestamps in UTC or localtime 
 +utcout ​1|0   # write timestamps in UTC or localtime
  
-# inputdir_num_files:​ Anzahl gleichzeitig offener Dateien, die überwacht werden. 
-# std ist 300 
-inputdir_num_files = 100 
  
-# dirfilepattern legt die Dateien fest, die Zeilenweise ausgewertet werden. Hist und consolidate ist noch nicht möglich. +# ----- INPUT LINE FORMAT -----
-dirfilepattern = *.log +
- +
-# dirfilepipepattern:​ Dateien, die nach dem schließen an Kommando gesendet werden +
-# dirfilepipecmd:​ Dateien werden an STDIN des CMDs gesendet. +
-#                 Es können Parameter mit Codes verwendet werden. Die Codes %p, %P und Datumswerte sind gesezt, +
-#                 die anderen Codes sind nur gesetzt, wenn die Datei auch bei dirfilepattern ausgewählt ist. +
-dirfilepipepattern = *.dat +
-dirfilepipecmd = send_compressed_file %p %P +
- +
-# dirfileclosepattern ​ Das Schließen von Dateien überwachen +
-# dirfileclosecmd ​     CMD ausführen, Parameter siehe dirfilepipecmd +
-# dirfileclosewrite ​   angegebenen Text in Ausgabedatei schreiben, Codes wie bei dirfilepipecmd +
-dirfileclosepattern = *.info +
-dirfileclosecmd = echo "Datei %P wurde geschlossen"​ +
-dirfileclosewrite = V;%F %T;​%h;​LFA;​Dirmon;​Close;​%P;​_ +
- +
-# dirfilecreatepattern ​ Anlegen von Dateien monitoren +
-# dirfilecreatecmd +
-# dirfilecreatewrite +
- +
-# dirfiledeletepattern ​ Löschen von Dateien monitoren +
-# dirfiledeletecmd +
-# dirfiledeletewrite +
- +
-# dirfilemodifypattern ​ Ändern von Dateien monitoren +
-# dirfilemodifycmd +
-# dirfilemodifywrite +
- +
-# dirfilemovedfrompattern ​ Wegmoven von Dateien monitoren +
-# dirfilemovedfromcmd +
-# dirfilemovedfromwrite +
- +
-# dirfilemovedtopattern ​ Hinmoven von Dateien monitoren +
-#                       (Wird eine Datei umbenannt, gibt es ein movedfrom und ein movedto) +
-#                       (Wird eine Datei von einem Verzeichnis in ein anderes gemoved, dann +
-#                        werden movedfrom und movedto nur für überwachte Verzeichnisse generiert) +
-# dirfilemovedtocmd +
-# dirfilemovedtowrite +
- +
-# dirfileopenpattern ​ Öffnen von Dateien monitoren +
-# dirfileopencmd +
-# dirfileopenwrite +
- +
- +
-# ----- LINE FORMAT ----- +
-+
-# ----- INPUT FORMAT -----+
  
 inputformat = %t %h %q: %sValue1: %1, Value2: %2, %W inputformat = %t %h %q: %sValue1: %1, Value2: %2, %W
Line 412: Line 378:
 inputformat =| %t %h %q: %svalue1: %1, value2: %2, %W inputformat =| %t %h %q: %svalue1: %1, value2: %2, %W
  
 +# Folgende Codes koennen zum Parsen der Zeilen benutzt werden:
 +
 +%%      => %
 +%[<​CHARS>​] => ein beliebiges Zeichen aus <​CHARS>​
 +%s      => ein String (wird verworfen)
 +%.<​n>​s ​ => <n> Zeichen (werden verworfen)
 +%t      => Datum im Format: MMM TT hh:mm:ss (Monat Tag Stunde:​Minute:​Sekunde)
 +            oder im Format: YYYY-MM-DD[T ]hh:​mm:​ss[.ssssss][+-hh:​mm]
 +%c      => ein Zeichen (wird verworfen)
 +%.<​n>​c ​ => <n> Zeichen (werden verworfen)
 +%h      => Host
 +%q      => Quelle, Besonderheit bei %q: Ausdrücke, die in '​()',​ '​[]'​ oder '​{}'​ stehen gelten bei der Wiederarlarmierung als identisch.
 +%W      => Meldung (gelesen wird bis zum Zeilenende)
 +%D      => Datum im Format: DD.MM.YY oder DD.MM.YYYY
 +%F      => Datum im Format: YYYY-MM-DD
 +%T      => Zeit im Format: hh:mm:ss
 +%d      => Tag
 +%m      => Monat
 +%b      => Monatsname (erste drei Zeichen)
 +%y      => Jahr (zweistellig)
 +%Y      => Jahr (vierstellig)
 +%H      => Stunde
 +%M      => Minute
 +%S      => Sekunde
 +%0      => Variable 0
 +%.<​n>:​0 => <n> Zeichen in Variable 0
 +%#0     => Nur Zahlen (Float) nach Variable 0
 +%1      => Variable 1
 +%.<​n>:​1 => <n> Zeichen in Variable 1
 +...
 +%9      => Variable 9
 +%.<​n>:​9 => <n> Zeichen in Variable 9
 +%i<​[hqVW0-9]>​ => dieses Feld wird geparst, aber bei der Deduplizierung ignoriert. %s und %c werden bei der Deduplizierung immer ignoriert.
 +
 +Leerzeichen zwischen den Codes ersetzen soviele white-spaces wie moeglich.
  
-# Folgende Codes koennen zum Parsen der Zeilen benutzt werden: 
-# %%      => % 
-# %[<​CHARS>​] => ein beliebiges Zeichen aus <​CHARS>​ 
-# %s      => ein String (wird verworfen) 
-# %.<​n>​s ​ => <n> Zeichen (werden verworfen) 
-# %t      => Datum im Format: MMM TT hh:mm:ss (Monat Tag Stunde:​Minute:​Sekunde) 
-#             oder im Format: YYYY-MM-DD[T ]hh:​mm:​ss[.ssssss][+-hh:​mm] 
-# %c      => ein Zeichen (wird verworfen) 
-# %.<​n>​c ​ => <n> Zeichen (werden verworfen) 
-# %h      => Host 
-# %q      => Quelle, Besonderheit bei %q: Ausdrücke, die in '​()',​ '​[]'​ oder '​{}'​ stehen gelten bei der Wiederarlarmierung als identisch. 
-# %W      => Meldung (gelesen wird bis zum Zeilenende) 
-# %D      => Datum im Format: DD.MM.YY oder DD.MM.YYYY 
-# %F      => Datum im Format: YYYY-MM-DD 
-# %T      => Zeit im Format: hh:mm:ss 
-# %d      => Tag 
-# %m      => Monat 
-# %b      => Monatsname (erste drei Zeichen) 
-# %y      => Jahr (zweistellig) 
-# %Y      => Jahr (vierstellig) 
-# %H      => Stunde 
-# %M      => Minute 
-# %S      => Sekunde 
-# %0      => Variable 0 
-# %.<​n>:​0 => <n> Zeichen in Variable 0 
-# %#0     => Nur Zahlen (Float) nach Variable 0 
-# %1      => Variable 1 
-# %.<​n>:​1 => <n> Zeichen in Variable 1 
-# ... 
-# %9      => Variable 9 
-# %.<​n>:​9 => <n> Zeichen in Variable 9 
-# %i<​[schqW0-9]>​ => dieses Feld wird geparst, aber bei der Deduplizierung ignoriert 
-# 
-# Leerzeichen zwischen den Codes ersetzen soviele white-spaces 
-# wie moeglich. 
-# 
 # Die meisten Codes stehen in den ?action und ?write fuer eine Ausgabe zur Verfuegung, # Die meisten Codes stehen in den ?action und ?write fuer eine Ausgabe zur Verfuegung,
 # siehe ACTION FORMAT. # siehe ACTION FORMAT.
Line 458: Line 423:
 # alle Codes des Inputfomates ohne %t, %s, %s* und %c # alle Codes des Inputfomates ohne %t, %s, %s* und %c
 # #
-%y => Jahr im Format YY + 
-%Y => Jahr im Format YYYY +%y => Jahr im Format YY 
-%b => Monatsname (erste drei Zeichen) +%Y => Jahr im Format YYYY 
-%d => Tag (01..31) +%b => Monatsname (erste drei Zeichen) 
-%m => Monat (01..12) +%d => Tag (01..31) 
-%N => Anzahl gleicher Zeilen bie (hist_secs > 0) oder Anzahl bei sum_hist +%m => Monat (01..12) 
-%F => Datum im Format: YYYY-MM-DD +%N => Anzahl gleicher Zeilen bie (hist_secs > 0) oder Anzahl bei sum_hist 
-%z => die ganze Zeile +%F => Datum im Format: YYYY-MM-DD 
-%l => Gesamtzahl bisher gelesener Zeilen +%z => die ganze Zeile 
-%L => gelesene Zeilen seit letzter Ausgabe mit %L +%l => Gesamtzahl bisher gelesener Zeilen 
-%C => Änderungsdatum der Datei im Format YYYY-MM-DD hh:mm:ss +%L => gelesene Zeilen seit letzter Ausgabe mit %L 
-%B => Größe der Datei in Bytes (wenn von CMD oder Stdin gelesen wird, dann 0) +%C => Änderungsdatum der Datei im Format YYYY-MM-DD hh:mm:ss 
-%p => Dateiname der überwachten Datei - Kann bei consolidate nicht genutzt werden +%B => Größe der Datei in Bytes (wenn von CMD oder Stdin gelesen wird, dann 0) 
-%{p,<​c>,<​start>​[,​[<​end>​][,<​str>​[,<​lstr>​]]]} => Dateiname nach Zeichen <c> trennen und Teil des Dateinamens +%p => Dateiname der überwachten Datei - Kann bei consolidate nicht genutzt werden 
-#                                            ​von <​start>​ bis <end> und ggf. <c> durch <str> ersetzen. +%{p,<​c>,<​start>​[,​[<​end>​][,<​str>​]]} => Dateiname nach Zeichen <c> trennen und Teil des Dateinamens 
-#                                            ​Ist nur <​start>​ angegeben, nur dieses Element des Dateinamens. +                                      von <​start>​ bis <end> und ggf. <c> durch <str> ersetzen. 
-#                                            ​0 als <end> ist bis zum Ende. +                                      Ist nur <​start>​ angegeben, nur dieses Element des Dateinamens. 
-#                                            ​-1 als <end> ist bis zum vorletzten +                                      0 als <end> ist bis zum Ende. 
-#                                            ist <​lstr>​ angegeben, wird das letzte <c> durch <​lstr>​ ersetzt. +                                      -1 als <end> ist bis zum vorletzten 
-#                                            (keine Funktion bei -1 als <​end>​) +                                      Kann bei consolidate nicht genutzt werden 
-#                                            ​Kann bei consolidate nicht genutzt werden +%P => kompletter Pfad der überwachten Datei - Kann bei consolidate nicht genutzt werden 
-%P => kompletter Pfad der überwachten Datei - Kann bei consolidate nicht genutzt werden +%{P,<​start>​[,​[<​end>​][,<​str>​]]} => Teil des Pfades von <​start>​ bis <end> und ggf. '/'​ durch <str> ersetzen. 
-%{P,<​start>​[,​[<​end>​][,<​str>​[,<​lstr>​]]]} => Teil des Pfades von <​start>​ bis <end> und ggf. '/'​ durch <str> ersetzen. +                                  Ist nur <​start>​ angegeben, nur dieses Element des Pfades. 
-#                                            ​Ist nur <​start>​ angegeben, nur dieses Element des Pfades. +                                  0 als <end> ist bis zum Ende. 
-#                                            ​0 als <end> ist bis zum Ende. +                                  -1 als <end> ist bis zum vorletzten 
-#                                            ​-1 als <end> ist bis zum vorletzten +                                  Kann bei consolidate nicht genutzt weden 
-#                                            0 als <​start>​ auch am Anfang des Pfades '/'​ bzw. <str> ausgeben +%O => kompletter Pfad der Ausgabedatei,​ wenn gesetzt 
-#                                            ist <​lstr>​ angegeben, wird der letzte '/'​ durch <​lstr>​ ersetzt. +%0 … %9 => Variablen 0-9 
-#                                            (keine Funktion bei -1 als <​end>​) +%{<​n>,​HASH[,<​len>​]} ​    ​=> gehaschte Variable 0-9 mit Länge <len> bzw. 8 wenn <len> nicht angegeben 
-#                                            ​Kann bei consolidate nicht genutzt weden +%{<​n>,​LOW[ER]} ​         => Variable 0-9 nach lowercase wandeln 
-%O => kompletter Pfad der Ausgabedatei,​ wenn gesetzt +%{<​n>,​UPP[ER]} ​         => Variable 0-9 nach uppercase wandeln 
-%0 … %9 => Variablen 0-9 + 
-%{<​n>,​HASH[,<​len>​]} ​      ​=> gehaschte Variable 0-9 mit Länge <len> bzw. 8 wenn <len> nicht angegeben +
-#+
 # ----- Wenn „consolidate“ gesetzt, dann ist ----- # ----- Wenn „consolidate“ gesetzt, dann ist -----
-# + 
-%N                     => Anzahl der Zeilen +%N                     => Anzahl der Zeilen 
-%{<​n>,​SUM[,<​fmt>​]} ​    => Summe über Variable <n> +%{<​n>,​SUM[,<​fmt>​]} ​    => Summe über Variable <n> 
-%{<​n>,​AVG[,<​fmt>​]} ​    => Mittelwert der Variable <n> +%{<​n>,​AVG[,<​fmt>​]} ​    => Mittelwert der Variable <n> 
-%{<​n>,​MIN[,<​fmt>​]} ​    => Minimum der Variable <n> +%{<​n>,​MIN[,<​fmt>​]} ​    => Minimum der Variable <n> 
-%{<​n>,​MAX[,<​fmt>​]} ​    => Maximum der Variable <n> +%{<​n>,​MAX[,<​fmt>​]} ​    => Maximum der Variable <n> 
-%{<​n>,​FIR[ST][,<​fmt>​]} => erster Wert der Variablen <n> +%{<​n>,​FIR[ST][,<​fmt>​]} => erster Wert der Variablen <n> 
-%{<​n>,​LAS[T][,<​fmt>​]} ​ => letzter Wert der Variablen <n> +%{<​n>,​LAS[T][,<​fmt>​]} ​ => letzter Wert der Variablen <n> 
-%{FIRSTDATE,<​datfmt>​} ​ => Datum der zuerst gelesenen Zeile +%{FIRSTDATE,<​datfmt>​} ​ => Datum der zuerst gelesenen Zeile 
-%{LASTDATE,<​datfmt>​} ​  => Datum der zuletzt gelesenen Zeile +%{LASTDATE,<​datfmt>​} ​  => Datum der zuletzt gelesenen Zeile 
-%{TIMERANGE} ​          => Sekunden von erster bis letzter Zeile +%{TIMERANGE} ​          => Sekunden von erster bis letzter Zeile 
-%{TIMEDIFF} ​           => Zeitdifferenz zur letzten Meldung in Sekunden +%{TIMEDIFF} ​           => Zeitdifferenz zur letzten Meldung in Sekunden 
-#                       <fmt> ist optionales Ausgabeformat im Format [<​a>​][.<​b>​]:​ Mindestbreite <a> und <b> Nachkommastellen +                      <fmt> ist optionales Ausgabeformat im Format [<​a>​][.<​b>​]:​ Mindestbreite <a> und <b> Nachkommastellen 
-#                       <​datfmt>​ Datumsformat wie bei Ausgabe mit %[abdDFHmMsSTwyY] z. B.: "​%Y-%m-%d %H:​%M:​%S"​+                      <​datfmt>​ Datumsformat wie bei Ausgabe mit %[abdDFHmMsSTwyY] z. B.: "​%Y-%m-%d %H:​%M:​%S"​
  
 # ----- IGNORE ----- # ----- IGNORE -----
Line 538: Line 502:
  
 # Jeder Block muss mit einem der folgenden Schlüsselwörter beginnen # Jeder Block muss mit einem der folgenden Schlüsselwörter beginnen
-reg        = zu suchende Reg-EXP + 
-reg+       = zu suchende Reg-EXP und weiter mit nächstem Block +reg        = zu suchende Reg-EXP 
-!reg       = nicht zu suchende Reg-EXP +reg+       = zu suchende Reg-EXP und weiter mit nächstem Block 
-!reg+      = nicht zu suchende Reg-EXP und weiter mit nächstem Block +!reg       = nicht zu suchende Reg-EXP 
-regsplit ​  = zu suchende Reg-EXP, mit Blöcken, nach denen getrennt wird +!reg+      = nicht zu suchende Reg-EXP und weiter mit nächstem Block 
-regsplit+ ​ = wie regsplit und weiter mit nächsten Block +regsplit ​  = zu suchende Reg-EXP, mit Blöcken, nach denen getrennt wird 
-reg_file ​  = zu suchende Reg-EXPs werden aus Datei gelesen +regsplit+ ​ = wie regsplit und weiter mit nächsten Block 
-reg_file+ ​ = ... und weiter mit nächstem Block +reg_file ​  = zu suchende Reg-EXPs werden aus Datei gelesen 
-!reg_file ​ = nicht zu suchende Reg-EXPs werden aus Datei gelesen +reg_file+ ​ = ... und weiter mit nächstem Block 
-!reg_file+ = ... und weiter mit nächstem Block +!reg_file ​ = nicht zu suchende Reg-EXPs werden aus Datei gelesen 
-regall ​      es passt alles - folgende Inputformate oder Aktionen werden ignoriert. +!reg_file+ = ... und weiter mit nächstem Block 
-regignore ​ = zu suchende Reg-EXP, die ab hier ignoriert werden. Bei vreg wird die Zeile komplett ignoriert. +regall ​      es passt alles - folgende Inputformate oder Aktionen werden ignoriert. 
-!regignore = Reg-EXP, die nicht passen werden ab hier ignoriert. +regignore ​ = zu suchende Reg-EXP, die ab hier ignoriert werden. Bei vreg wird die Zeile komplett ignoriert. 
-regignore_file ​ = wie regignore, nur die Reg-EXP werde aus Datei gelesen  +!regignore = Reg-EXP, die nicht passen werden ab hier ignoriert. 
-!regignore_file = wie !regignore, nur die Reg-EXP werden aus Datei gelesen+regignore_file ​ = wie regignore, nur die Reg-EXP werde aus Datei gelesen  
 +!regignore_file = wie !regignore, nur die Reg-EXP werden aus Datei gelesen
  
  
 # die folgenden Definitionen beziehen sich auf das Schlüsselwort am Beginn des Blockes # die folgenden Definitionen beziehen sich auf das Schlüsselwort am Beginn des Blockes
  
-iformat ​   = Inputformat wenn angegeben, sonst gilt globales inputformat (nicht bei regsplit) +iformat ​   = Inputformat wenn angegeben, sonst gilt globales inputformat (nicht bei regsplit) 
-splitvars ​ = Zuordnung der Variablen zum regsplit+splitvars ​ = Zuordnung der Variablen zum regsplit
  
 # hist_secs = <s> individuelle Einstellung für diesen Block # hist_secs = <s> individuelle Einstellung für diesen Block
 #                 ​gleiche Zeilen werden für <s> Sekunden unterdrückt. Die erste passende Zeile wird ausgegeben. #                 ​gleiche Zeilen werden für <s> Sekunden unterdrückt. Die erste passende Zeile wird ausgegeben.
 #                 Bei der Prüfung auf gleiche Zeilen werden alle Felder mit Ausnahme der Zeitstempelfelder herangezogen,​ #                 Bei der Prüfung auf gleiche Zeilen werden alle Felder mit Ausnahme der Zeitstempelfelder herangezogen,​
-#                 die als Ausgabe genutzt werden können. Also nicht %s (ab Version 5.5).+#                 die als Ausgabe genutzt werden können. Also nicht %s, %c (ab Version 5.5).
 #                 Wenn ein Feld nicht beachtet werden soll, dann muss das Feld um ein '​i'​ erweitert werden: %q -> %iq, %1 -> %i1, ... #                 Wenn ein Feld nicht beachtet werden soll, dann muss das Feld um ein '​i'​ erweitert werden: %q -> %iq, %1 -> %i1, ...
 #                 ​Beispiel:​ #                 ​Beispiel:​
 +
 reg = \[ERROR\] reg = \[ERROR\]
 hist_secs = 300 hist_secs = 300
Line 579: Line 545:
 # Average über die Variablen ausgegeben werden kann. # Average über die Variablen ausgegeben werden kann.
 # <​CONSFMT>:​ # <​CONSFMT>:​
-#            <​n>/<​m>​[s|m|h]<​SFLE>: <n> 0-59+#            <​n>/<​m>​[s|m|h]<​SFLEN>: <n> 0-59
 #              <m> Anzahl s|m|h #              <m> Anzahl s|m|h
 #              s|m|h Sekunden, Minuten, Stunden, def. ist m #              s|m|h Sekunden, Minuten, Stunden, def. ist m
-#              <SFLE> Zeitstempelflag:​ S: Start, F: First, L: Last, E: End, def. ist E+#              <SFLEN> Zeitstempelflag:​ S: Start, F: First, L: Last, E: End, N: Now, def. ist E
 # Bedeutung: Beginnend mit <n> wird alle <m> s|m|h eine Zeile ausgegeben. # Bedeutung: Beginnend mit <n> wird alle <m> s|m|h eine Zeile ausgegeben.
 # Beispiele: # Beispiele:
-0/5m -> alle 5 Minuten eine Zeile + 
-3/10s -> alle 10 Sekunden (3, 13, 23, 33, 43, 53) eine Zeile+consoliate = 0/5m         ​-> alle 5 Minuten eine Zeile 
 +consolidate = 3/10s       ​-> alle 10 Sekunden (3, 13, 23, 33, 43, 53) eine Zeile
 # #
 # <​CONSFMT2>:​ # <​CONSFMT2>:​
-# <​m><​smh><​FL>: <smh> für Sekunden, Minute, Stunden, <m> Anzahl +# <​m><​smh><​FLN>: <smh> für Sekunden, Minute, Stunden, <m> Anzahl 
-              ​F|L first/last+               F|L|N first/last/now
 # Bedeutung: Es wird auf pasende Zeilen gewartet, dann wird alle # Bedeutung: Es wird auf pasende Zeilen gewartet, dann wird alle
 # <m> Sekunden/​Minuten/​Stunden ein konsolidierter Wert          # <m> Sekunden/​Minuten/​Stunden ein konsolidierter Wert         
Line 598: Line 565:
 #   ​ausgegeben oder bei SIGHUP|SIGUSR1 #   ​ausgegeben oder bei SIGHUP|SIGUSR1
 # #
-consolidatenull = 1      # Zeile auch ausgeben, wenn keine Zeilen konsolidiert wurden. +consolidatenull = 1      # Zeile auch ausgeben, wenn keine Zeilen konsolidiert wurden. 
-consolidatedistinct = 1  # Es werden nur unterschiedliche Zeilen betrachtet. Z. B. unterschiedliche User zählen.+consolidatedistinct = 1  # Es werden nur unterschiedliche Zeilen betrachtet. Z. B. unterschiedliche User zählen
 +consolidatedistinctinit = 100000 ​ # distinct lines Vorbelegung,​ wenn größer als 10000.
  
  
-nread       = n Folgezeilen zusätzlich lesen +nread       = n Folgezeilen zusätzlich lesen 
-nreadreg ​   = Folgezeilen,​ die Reg-EXP entsprechen lesen +nreadreg ​   = Folgezeilen,​ die Reg-EXP entsprechen lesen 
-nread!reg ​  = Folgezeilen,​ die Reg-EXP nicht entsprechen lesen +nread!reg ​  = Folgezeilen,​ die Reg-EXP nicht entsprechen lesen 
-nreadtoreg ​ = Folgezeilen lesen, bis Reg-EXP gefunden +nreadtoreg ​ = Folgezeilen lesen, bis Reg-EXP gefunden 
-#               nreadtoreg liest die gefundene Zeile ein, nread!reg nicht +              nreadtoreg liest die gefundene Zeile ein, nread!reg nicht 
-nreadformat = Inputformat der Folgezeilen +nreadformat = Inputformat der Folgezeilen 
-nreadaction = Auszuführende Aktion der Folgenzeilen +nreadaction = Auszuführende Aktion der Folgenzeilen 
-nreadwrite ​ = Ausgabemuster der Folgezeilen für Ausgabedatei+nreadwrite ​ = Ausgabemuster der Folgezeilen für Ausgabedatei
  
-test        = <​Bedingung> ​   # Die Ausgabeaktion wird nur ausgeführt,​ wenn die <​Bedingung>​ wahr ist (!= 0) +test        = <​Bedingung> ​   # Die Ausgabeaktion wird nur ausgeführt,​ wenn die <​Bedingung>​ wahr ist (!= 0) 
-                               ​# Die Bedingung kann sich auch auf konsolidierte Variablen beziehen. +                             ​# Die Bedingung kann sich auch auf konsolidierte Variablen beziehen. 
-                               ​# Ops: + - * / ~ % < > <= >= = != +                             ​# Ops: + - * / ~ % < > <= >= = != 
-                               ​# genutzt werden kann %0-%9, %N, +                             ​# genutzt werden kann %0-%9, %N, 
-                               ​# %{<​n>,​SUM},​ %{<​n>,​AVG},​ %{<​n>,​MIN},​ %{<​n>,​MAX},​ %{<​n>,​FIRST},​ %{<​n>,​LAST},​ %{<​n>,​DIST} +                             ​# %{<​n>,​SUM},​ %{<​n>,​AVG},​ %{<​n>,​MIN},​ %{<​n>,​MAX},​ %{<​n>,​FIRST},​ %{<​n>,​LAST},​ %{<​n>,​DIST} 
-                               ​# %{TIMERANGE},​ %{TIMEDIFF}+                             ​# %{TIMERANGE},​ %{TIMEDIFF}
  
-action ​     = auszuführende Aktion +action ​     = auszuführende Aktion 
-write       = Ausgabemuster für Ausgabedatei. Wenn mehrere Zeilen geschrieben werden sollen, ist '​\n'​ der Zeilentrenner. +write       = Ausgabemuster für Ausgabedatei. Wenn mehrere Zeilen geschrieben werden sollen, ist '​\n'​ der Zeilentrenner. 
-#               Oder durch einschließen der write Zeile in '​...'​ können auch mehrere Zeilen ausgegeben werden:+              Oder durch einschließen der write Zeile in '​...'​ können auch mehrere Zeilen ausgegeben werden:
 write  = 'V;%F %T;​%h;​Section;​Teststep;​%p;​%q - %1;_ write  = 'V;%F %T;​%h;​Section;​Teststep;​%p;​%q - %1;_
 V;%F %T;​%h;​Section;​Teststep;​%p-Anzahl;​%N;#​ V;%F %T;​%h;​Section;​Teststep;​%p-Anzahl;​%N;#​
 V;%F %T;​%h;​Section;​Teststep;​%p-Kennung;"​%1";​_'​ V;%F %T;​%h;​Section;​Teststep;​%p-Kennung;"​%1";​_'​
  
-syslog ​     = an Syslog senden, Format: <​priority>,​ <​Ausgabe>​ +syslog ​     = an Syslog senden, Format: <​priority>,​ <​Ausgabe>​ 
-#                 <​priority>:​ LOG_DEBUG|LOG_INFO|LOG_NOTICE|LOG_WARNING|LOG_ERR|LOG_CRIT|LOG_ALERT|LOG_EMERG +                <​priority>:​ LOG_DEBUG|LOG_INFO|LOG_NOTICE|LOG_WARNING|LOG_ERR|LOG_CRIT|LOG_ALERT|LOG_EMERG 
-store       = Ausgabeformat beim Schreiben in Temp-Datei (unter storepath) +store       = Ausgabeformat beim Schreiben in Temp-Datei (unter storepath) 
-writetopath = Pfad festlegen für "write+writetopath = Pfad festlegen für "writeto
-writeto ​    = Ausgabemuster für Datei, die mit writetopath festgelegt wird. +writeto ​    = Ausgabemuster für Datei, die mit writetopath festgelegt wird. 
-exit        = <​exitcode> ​          # lfa4uls beenden mit Exitcode <​exitcode>​ (Der <​exitcode>​ kann auch eine Variable z. B. %3 sein)+exit        = <​exitcode> ​          # lfa4uls beenden mit Exitcode <​exitcode>​ (Der <​exitcode>​ kann auch eine Variable z. B. %3 sein)
  
  
-storesecs ​   = <​seconds>​ - Sekunden, nach denen zwischengespeicherte Zeilen (store) gesendet werden +storesecs ​   = <​seconds>​ - Sekunden, nach denen zwischengespeicherte Zeilen (store) gesendet werden 
-storesendreg = <​regexp> ​ - oder Regular-Expression,​ bei der die zwischengespeicherten Zeilen gesendet werden +storesendreg = <​regexp> ​ - oder Regular-Expression,​ bei der die zwischengespeicherten Zeilen gesendet werden 
-storesendaction = <​cmd> ​ - Befehl zum Senden der gespeicherten Daten+storesendaction = <​cmd> ​ - Befehl zum Senden der gespeicherten Daten
  
-cancelreg ​   = <​regexp> ​ - Regular-Expression,​ bei der zwischengespeicherte Zeilen gelöscht werden und +cancelreg ​   = <​regexp> ​ - Regular-Expression,​ bei der zwischengespeicherte Zeilen gelöscht werden und 
-#                            ​konsolidierte Zeilen zurückgesetzt werden+                           ​konsolidierte Zeilen zurückgesetzt werden
  
-# ----- Einschränkung der reg<​n> ​für verschiedene Logdateien -----+# ----- Einschränkung der reg für verschiedene Logdateien -----
 # #
-# Die anzuwendenden reg<​n> ​können pro "​inputfile"​ bzw. "​inputfilepattern"​ eingeschränkt werden.+# Die anzuwendenden reg können pro "​inputfile"​ bzw. "​inputfilepattern"​ eingeschränkt werden.
 # Dazu wird vor den entsprechenden "​inputfile"​ und "​inputfilepattern"​ Zeilen der Gültigkeitsbereich definiert: # Dazu wird vor den entsprechenden "​inputfile"​ und "​inputfilepattern"​ Zeilen der Gültigkeitsbereich definiert:
 # #
-# setregrange = <​start>​ - <end>+# setregrange = <​start>​ - <​end> ​   # Geht übersichtlicher durch die Bildung von Blöcken.
 # #
 # für die nun folgenden "​input*"​ Zeilen gelten nur die reg<​start>​ - reg<​end>​ # für die nun folgenden "​input*"​ Zeilen gelten nur die reg<​start>​ - reg<​end>​
 +#
 +# Sollte nicht mehr verwendet werden, denn das kann durch entsprechende Blöcke übersichtlicher abgebildet werden:
 +
 +inputfile = file1
 +reg =
 +write =
 +
 +reg = 
 +write = 
 +
 +# durch Angabe eines neuen "​inputfile*"​ wird ein neuer Block begonnen. Die vorherigen reg gelten nur für file1 und die folgenden nur für file2.
 +inputfile = file2
 +reg =
 +write =
 +
 +reg = 
 +write =
  
  
 # ----- SYSLOG ----- # ----- SYSLOG -----
 # festlegen der Syslog Parameter # festlegen der Syslog Parameter
-syslogpars = <​syslog-ident>,​ <​syslog-facility> ​          # Siehe openlog+syslogpars = <​syslog-ident>,​ <​syslog-facility> ​          # Siehe "​man ​openlog"
  
  
 # ----- LOG ----- # ----- LOG -----
 # #
-Regulaeren ​Ausdruck und Aktion ​fuer "​Logging" ​(Info)+Regulären ​Ausdruck und Aktion ​für "​Logging"​ 
 +# ACHTUNG: lreg_all, lreg, laction und lwrite werden in einer der nächsten Versionen nicht mehr zur Verfügung stehen. 
 +# Die Kombination aus lreg_all = 1 und lwrite kann durch regall und write abgelöst werden.
  
 lreg_all ​   = 1 lreg_all ​   = 1
Line 686: Line 673:
 # ----- SET ----- # ----- SET -----
 set <var> = <​value> ​ # Die Variablen %0-%9, %h, %q mit Defaultwert vorbelegen set <var> = <​value> ​ # Die Variablen %0-%9, %h, %q mit Defaultwert vorbelegen
 +
 +
 +# ----- DIRECTORY -----
 +# Für die Directory-Funktionen wird I-Notify verwendet, das unter Windows nicht zur Verfügung steht.
 +# Da der Nutzen der Directory-Funktionen sehr beschränkt ist, kann es sein, dass die Funktionen in Zukunft entfallen.
 +#
 +# Zu überwachendes Verzeichnis (nicht zusammen mit inputfile oder inputfilepattern)
 +inputdir = /var/log
 +
 +# inputdir_num_subdirs wenn auf größer 1 gesetzt, dann werden bis zu inputdir_num_subdirs Unterverzeichniss mit überwacht
 +inputdir_num_subdirs = 50
 +
 +# inputdir_num_files:​ Anzahl gleichzeitig offener Dateien, die überwacht werden.
 +# std ist 300
 +inputdir_num_files = 100
 +
 +# dirfilepattern legt die Dateien fest, die Zeilenweise ausgewertet werden. Hist und consolidate ist noch nicht möglich.
 +dirfilepattern = *.log
 +
 +# dirfilepipepattern:​ Dateien, die nach dem schließen an Kommando gesendet werden
 +# dirfilepipecmd:​ Dateien werden an STDIN des CMDs gesendet.
 +#                 Es können Parameter mit Codes verwendet werden. Die Codes %p, %P und Datumswerte sind gesezt,
 +#                 die anderen Codes sind nur gesetzt, wenn die Datei auch bei dirfilepattern ausgewählt ist.
 +dirfilepipepattern = *.dat
 +dirfilepipecmd = send_compressed_file %p %P
 +
 +# dirfileclosepattern ​ Das Schließen von Dateien überwachen
 +# dirfileclosecmd ​     CMD ausführen, Parameter siehe dirfilepipecmd
 +# dirfileclosewrite ​   angegebenen Text in Ausgabedatei schreiben, Codes wie bei dirfilepipecmd
 +dirfileclosepattern = *.info
 +dirfileclosecmd = echo "Datei %P wurde geschlossen"​
 +dirfileclosewrite = V;%F %T;​%h;​LFA;​Dirmon;​Close;​%P;​_
 +
 +# dirfilecreatepattern ​ Anlegen von Dateien monitoren
 +# dirfilecreatecmd
 +# dirfilecreatewrite
 +
 +# dirfiledeletepattern ​ Löschen von Dateien monitoren
 +# dirfiledeletecmd
 +# dirfiledeletewrite
 +
 +# dirfilemodifypattern ​ Ändern von Dateien monitoren
 +# dirfilemodifycmd
 +# dirfilemodifywrite
 +
 +# dirfilemovedfrompattern ​ Wegmoven von Dateien monitoren
 +# dirfilemovedfromcmd
 +# dirfilemovedfromwrite
 +
 +# dirfilemovedtopattern ​ Hinmoven von Dateien monitoren
 +#                       (Wird eine Datei umbenannt, gibt es ein movedfrom und ein movedto)
 +#                       (Wird eine Datei von einem Verzeichnis in ein anderes gemoved, dann
 +#                        werden movedfrom und movedto nur für überwachte Verzeichnisse generiert)
 +# dirfilemovedtocmd
 +# dirfilemovedtowrite
 +
 +# dirfileopenpattern ​ Öffnen von Dateien monitoren
 +# dirfileopencmd
 +# dirfileopenwrite
 </​file>​ </​file>​
  
Line 699: Line 745:
 <​file>​ <​file>​
  
-# ----- FILE -----+# ----- logfile ​-----
 # #
 # file to search # file to search
-inputfile = /var/log/messages+inputfile = /var/log/sample.log
  
-# ----- LINE FORMAT ​-----+# ----- write quoting ​-----
 # #
-inputformat ​%t %h %q: %W+writequoting ​\"
  
-<​inputformat>​ defines the parsing rule for each line of the <​inputfile>​. +# ----- line format -----
-# Each line is eaten character by character and you cannot use regular  +
-# expressions,​ see '​reg'​ in the `Advanced Usage 1`_ below. +
- +
-# You may use the following special directives:​ +
-# %%      => % +
-# %s      => discard an expression up to the next white space +
-# %.<​n>​s ​ => discard <n> non white space characters +
-# %t      => Date in the format: MMM DD hh:mm:ss +
-#              or in the format: YYYY-MM-DD[T ]hh:​mm:​ss[.ssssss][+-hh:mm] +
-# %c      => discard one character +
-# %.<​n>​c ​ => discard <n> characters +
-# %h      => set %h to the expression from current position to last non white space character +
-# %q      => set %q to the expression from current position to last non white space character +
-# %W      => set %h to the expression from current position to end of line +
-# %D      => set %D to the date in the format: DD.MM.YY or DD.MM.YYYY +
-# %F      => set %F to the date in the format: YYYY-MM-DD +
-# %T      => set %T to the time in the format: hh:mm:ss +
-# %d      => set %d to the day +
-# %m      => set %m to the month +
-# %b      => set %b to the three character month name +
-# %y      => set %y to the year, two digits +
-# %Y      => set %Y to the year, four digits +
-# %H      => set %H to the hour +
-# %M      => set %M to the minute +
-# %S      => set %S to the seconds +
-# %0      => set %0 to the expression up to last non white space character +
-# %.<​n>:​0 => set %0 to the next <n> characters +
-# %1      => set %1 to the expression up to last non white space character +
-# %.<​n>:​1 => set %1 to the next <n> characters +
-# ... +
-# %9      => set %9 to the expression up to last non white space character +
-# %.<​n>:​9 => set %9 to the next <n> characters+
 # #
-# One white space in the <inputformat> will eat as many white spaces as possible.+inputformat ​= %F %T.%s %V
  
-FIXME +# ----- filter ​-----
- +
-# Die meisten Codes stehen in den ?action und ?write fuer eine Ausgabe zur Verfuegung,​ +
-# siehe ACTION FORMAT. +
- +
-# ----- ACTION und WRITE FORMAT ​----- +
-# In <?​action>,​ <​action?>,​ <?​write>​ und <​write?>​ koennen Ergebnisse des Parsens der +
-# Zeilen verwendet werden. Folgende Codes können dafuer verwendet werden: +
-# alle Codes des Inputfomates ohne %t, %s, %s* und %c+
 # #
-# %y => Jahr im Format JJ +reg     =| error|warning
-# %Y => Jahr im Format JJJJ +
-# %b => Monatsname (erste drei Zeichen) +
-# %d => Tag (01..31) +
-# %m => Monat (01..12) +
-# %N => Anzahl gleicher Zeilen bei hist_secs > 0 oder Anzahl bei sum_hist +
-# %F => Datum im Format: YYYY-MM-DD +
-# %z => die ganze Zeile +
-# %p => Dateiname der überwachten Datei +
-# %P => kompletter Pfad der überwachten Datei +
-# %0 … %9 => Variablen 0-9+
  
-# ----- IGNORE ​----- +# ----- output ​----- 
-# +write ULS file-format 
-# Regulaeren Ausdruck fuer Zeilen definieren, die verworfen werden. +write   = V;%F %T;​%h;​Sample;​Logfileadapter;​Log;​"%V";_
-+
-# vreg = INFO|MARK +
-+
-# Oder Datei mit regulaeren Ausdruecken angeben +
-+
-# vreg_file = ignore_regexps_list.txt +
- +
-# ----- ERROR ----+
-+
-# Regulaeren Ausdruck und Aktion fuer "​Fehler"​ +
- +
-# ereg_all ​   = 1 +
-# ereg        = error +
-# ereg_file ​  = +
-# eaction ​    = echo '​Error: ​%z' +
-# ewrite ​     = +
- +
-# ----- WARN ----- +
-+
-# Regulaeren Ausdruck und Aktion fuer "Warnung"​ +
- +
-# wreg_all ​   = 1 +
-# wreg        = warn +
-# wreg_file ​  = +
-# waction ​    = echo '​Warnung: ​%z' +
-# wwrite ​     = +
- +
-# ----- LOG ----- +
-+
-# Regulaeren Ausdruck und Aktion fuer "Logging"​ (Info) +
- +
-lreg_all ​   = 1 +
-# lreg        = log +
-# lreg_file ​  = +
-laction ​    = echo 'Info: %z' +
-# lwrite ​   =+
  
 </​file>​ </​file>​
Line 817: Line 777:
   - wenn keine der obigen Bedingungen erfüllt sind, dann wird die Zeile ignoriert => auf nächste Zeile warten   - wenn keine der obigen Bedingungen erfüllt sind, dann wird die Zeile ignoriert => auf nächste Zeile warten
  
-Zu allen direkt eingetragenen regulären Ausdrücken reg?[+] kann auch eine Datei reg_file?[+] angegeben werden, ​+Zu allen direkt eingetragenen regulären Ausdrücken reg[+] kann auch eine Datei reg_file[+] angegeben werden, ​
 die mehrere Zeilen mit jeweils einem regulären Ausdruck enthalten können. die mehrere Zeilen mit jeweils einem regulären Ausdruck enthalten können.
-Die regulären Ausdrücke werden bei der Anwendung von reg_filelogisch ODER verknüpft.  +Die regulären Ausdrücke werden bei der Anwendung von reg_file logisch ODER verknüpft.  
-Es wird entweder regoder reg_fileverwendet, der letzte Eintrag in der Konfigurationsdatei entscheidet.+Es wird entweder reg oder reg_file verwendet, der letzte Eintrag in der Konfigurationsdatei entscheidet.
  
 Mit dieser (logischen) Unterscheidung können verschiedene Aktionen für verschiedene reguläre Ausdrücke ausgeführt werden. Mit dieser (logischen) Unterscheidung können verschiedene Aktionen für verschiedene reguläre Ausdrücke ausgeführt werden.
uls/agents/log_file_adapter.1700413413.txt.gz · Last modified: 2023-11-19 18:03 by uls