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 [2024-04-19 09:24]
uls [Configuration File]
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 343: Line 363:
  
  
-# ----- LINE FORMAT ​----- +# ----- date time ----- 
-+utcin = 1|0    ​read timestamps in UTC or localtime 
-# ----- INPUT FORMAT -----+utcout = 1|0   # write timestamps in UTC or localtime 
 + 
 + 
 +# ----- INPUT LINE FORMAT -----
  
 inputformat = %t %h %q: %sValue1: %1, Value2: %2, %W inputformat = %t %h %q: %sValue1: %1, Value2: %2, %W
Line 354: Line 377:
  
 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: # Folgende Codes koennen zum Parsen der Zeilen benutzt werden:
Line 506: Line 528:
 #                 ​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:​
Line 523: 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 542: 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.
  
  
Line 572: Line 596:
                 <​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)
Line 584: Line 608:
                            ​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 702: 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 820: 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.1713511447.txt.gz · Last modified: 2024-04-19 09:24 by uls