Unterabschnitte

Das rsyslogd Paket

Einleitung

Der rsyslogd Server kann den Standard syslog Server ersetzen.

RSYSLOGD ist ein ausgezeichnetes System, um Logs zu verarbeiten.

Es bietet hohe Performance, hohe Sicherheit und ein modulares Design. Rsyslog ist in der Lage eine ganze Reihe von Eingabeformen zu empfangen, sie zu transformieren und das Ergebnis flexibel auf eine Reihe von Zielen zu verteilen.

Zitat von der rsyslogd Webseite (übersetzt):
RSYSLOGD kann über eine Millionen Meldungen pro Sekunde auf lokale Ziele ausgeben, wenn nur begrenzte Verarbeitungen angewandt werden (basierend auf Version 7, Dezember 2013). Sogar mit nicht lokalen Zielen und ausgefeilteren Verarbeitungen ist die Performance 'atemberaubend'.

Die komplette Dokumentation ist unter RSYSLOGD verfügbar.

Vorbemerkung

Bei den verschiedenen Beschreibungen zum Thema Logging werden die Begriffe Priority und auch Severity benutzt. RFC5427 definiert Severity. In dieser Dokumentation und im gesamten rsyslogd Paket werden die beiden Begriffe synonym genutzt.

Voraussetzungen

Dieses Paket benötigt folgende weitere Pakete libgcrypt, libestr, libfastjason und librelp. Es ist auch abhängig davon, dass eine aktuelle Version des Basissystems installiert ist.

Installation

Das rsyslogd Paket wird über das Setup-Menue im Untermenue 'Package administration' installiert.

Das rsyslogd Paket kann nicht parallel zum syslog Server aus der Base Konfiguration aktiv genutzt werden. D.h. der syslog Server aus der Base Konfiguration muss ausgeschaltet werden.

Dies geschieht über die Konfiguration 'Edit base configuration' und
Setzen von START_SYSLOGD='no'.

Danach kann über das Menue 'Create configuration using syslog(base)' die Konfiguration aus der Base Konfiguration übernommen werden.

Erst jetzt kann über START_RSYSLOGD='yes' der rsyslogd Server genutzt werden.

Ein automatisches Umschalten, z.B. durch das Installationsskript, ohne manuellen Eingriff in die Base Konfiguration ist derzeit nicht vorgesehen.

Das Menue im Setup-Program

Das rsyslogd Menue ist über den Menuepunkt 'Service administration' des Hauptmenues im zentralen Setup-Programm zu erreichen.
Auswahl: 'rsyslogd daemon'
Das Menue ist wie folgt aufgebaut:

  1   View documentation
  2   View changes
  3   Edit configuration
  4   Advanced configuration file handling
  5   Start rsyslogd
  6   Stop rsyslogd
  7   Restart rsyslogd
  8   Reload rsyslogd configuration
  9   Show rsyslogd status
  10   Test rsyslogd configuration
  11   Force start of rsyslogd
  12   Logfile view

  1   View messages
  2   View older messages
  3   View log.eis-install
  4   View older log.eis-install
  0   Return

  12   rsyslogd tools

  1   Create configuration using syslog(base)
  2   Create logging database
  3   Grant full rights on logging database to a user
  4   Grant read rights on logging database to a user
  5   Drop logging database
  6   Alter logging database for LogAnalyzer
  7   Manual logfile rotate
  8   Test log messages
  9   Analyze log rules
  10   List nftables filter table
  11   List allowed sender
  12   Test DBPurge expert configurations
  0   Return

  0   Return

Das 'Logfile view' Untermenue kann je nach Konfiguration anders aussehen.

Die meisten Menuepunkte dürften ohne weitere Erläuterung verständlich sein, da sie keinerlei weitere Eingaben erwarten, sondern nur den Status des Servers/Daemons abfragen und auf Wunsch ändern. Die Standard-Menuepunkte 1, 2 und 3 arbeiten wie bei allen anderen Eisfair-1 Paketen.

Die weiteren Menuepunkte sind unten beschrieben.

Aenderung der Konfiguration

Die Konfiguration kann über den Menuepunkt 'Edit Configuration' geändert werden. Standardmäßig wird dabei der Editor genutzt, der über den Menuepunkt 'Set eisfair configuration editor' in der 'Base configuration' eingestellt ist.

Nachdem der Editor beendet wurde wird die Konfiguration mit dem eischk-Programm automatisch auf syntaktische und teilweise auch auf semantische Fehler geprüft. Werden Fehler festgestellt, so werden diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine solche Korrektur nicht durchgeführt, so kann es zu unvorhersehbaren Fehlfunktionen bei dem Dienst kommen.

Es wird zusätzlich gefragt, ob die Konfiguration angewendet (aktiviert) werden soll. Wird dieses verneint, so unterbleibt die Aktivierung.

ACHTUNG
Beim nächsten Boot-Vorgang kann es in diesem Fall zu unvorhersehbaren Fehlern kommen.


Wird die Aktivierung bestätigt, werden über ein Skript die durchgeführten Änderungen wirksam gemacht. Dazu wird der rsyslogd gestoppt und neu gestartet.

Die Konfigurationsdatei

Die Konfigurationsdatei (/etc/config.d/rsyslogd) enthält in einer Reihe von Abschnitten die Parameter, die den Dienst parametrisieren bzw. festlegen, ob der Dienst überhaupt zur Verfügung gestellt wird oder nicht.

rsyslogd syslog server (general settings)

START_RSYSLOGD

Legt fest, ob der rsyslogd-Server gestartet wird. Es dürfen nicht mehrere syslog Server gestartet sein. Um den rsyslogd-Server starten zu können, muss der syslog-Server aus der Base Konfiguration zunächst gestoppt werden.

Gültige Werte: yes, no

Standardeinstellung: START_RSYSLOGD='no'

rsyslogd syslog server (configuration settings)

RSYSLOGD_CONFIGURATION

Art der Konfiguration bzw. Art der Generierung der Konfiguration. Derzeit sind nur 'manual' und ” erlaubt.

Wird RSYSLOGD_CONFIGURATION='manual' gesetzt, so ist der Anwender für die Konfiguration verantwortlich, es wird keine Konfiguration generiert.

Gültige Werte: 'manual', ”

Standardeinstellung: RSYSLOGD_CONFIGURATION=”

RSYSLOGD_DEFAULT_LINE_TEMPLATE

Default Format der Zeilen im Log. Dieses Format wird genutzt, wenn bei den Formatvorgaben RSYSLOGD_RULE_x_LINE_TEMPLATE der Wert 'Default' steht.

Gültige Werte: DebugFormat,FileFormat,ForwardFormat,SysklogdFileFormat,
SyslogProtocol23Format,TraditionalFileFormat,
TraditionalForwardFormat,TraditionalFormatWithPRI

Standardeinstellung: RSYSLOGD_DEFAULT_LINE_TEMPLATE='TraditionalFileFormat'

RSYSLOGD_LOG_FQDN

Sollen Fully Qualified Domain Names (z.B. eismini.ap.de) im Log erscheinen, oder nur Hostnamen (z.B. eismini).

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_LOG_FQDN='no'

RSYSLOGD_INTERNAL_MESSAGES

Sollen rsyslogd interne Meldungen ausgegeben werden. Solche Meldungen sind z.B. Start- und Stopmeldungen des rsyslogd selbst.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_INTERNAL_MESSAGES='yes'

RSYSLOGD_MSG_REDUCTION

Legt fest, ob sich wiederholende Meldungen gekürzt werden sollen. Wird diese Konfigurationsvariable auf 'yes' gesetzt, so werden aufeinander folgende, gleiche Meldungen zusammengefasst und als
'message repeated x times: [msg]'
ausgegeben.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_MSG_REDUCTION='no'

RSYSLOGD_CONFIG_FILE

Absoluter Pfadname der Konfigurationsdatei.

Ist RSYSLOGD_CONFIG_FILE leer, so wird die Variable auf '/etc/rsyslog.conf' gesetzt.

Standardeinstellung: RSYSLOGD_CONFIG_FILE='/etc/rsyslog.conf'

RSYSLOGD_CONFIG_DIR

Absoluter Pfad der Konfigurationsdateien. Wenn RSYSLOGD_CONFIG_DIR gesetzt ist, so zeigt RSYSLOGD_CONFIG_FILE auf RSYSLOGD_CONFIG_DIR durch Nutzung der $IncludeConfig Konfigurations Direktive.

Im Verzeichnis aus RSYSLOGD_CONFIG_DIR werden derzeit bis zu vier Dateien erzeugt:
  10_rsyslogd.conf Allgemeine Konfigurationsteile
  15_rsyslogd.conf Konfiguration der 'Global Discard Filter'
    Konfiguration der 'Filter Rules'
  20_rsyslogd.conf Konfiguration der 'Rule Settings'
  25_rsyslogd.conf Konfiguration der 'File Input Definitions'

Datei 15_rsyslogd.conf existiert nur wenn RSYSLOGD_GLOBAL_DISCARD_FILTER='yes' oder RSYSLOGD_FILTER='yes' gesetzt sind. Datei 25_rsyslogd.conf wird nur erzeugt, wenn RSYSLOGD_FILE_INPUT='yes' gesetzt ist.

Da der rsyslogd die Dateien im Verzeichnis RSYSLOGD_CONFIG_DIR in alphabetischer Reihenfolge abarbeitet können manuell zusätzliche Konfigurationsteile ergänzt werden. Dies sollten nur erfahrene Anwender tun. Dabei ist zu beachten, dass einige Konfigurationselemente überschrieben (neu gesetzt) werden können, andere aber nur einmalig vorkommen dürfen.

Wird RSYSLOGD_CONFIG_DIR=” gesetzt, so wird die gesamte Konfiguration in die Datei aus RSYSLOGD_CONFIG_FILE geschrieben.

Standardeinstellung: RSYSLOGD_CONFIG_DIR='/etc/rsyslog.d'

RSYSLOGD_MARK_INTERVAL

Rsyslogd mark intervall in Sekunden. RSYSLOGD_MARK_INTERVAL='0' schaltet die Ausgabe der mark Zeile aus. Die mark Zeile enthält nur Datum und Uhrzeit sowie den Servernamen und die Zeichenfolge '--MARK--'.

Achtung: Angabe in Sekunden!
Der syslogd aus Base nutzt hier Angaben in Minuten.

Standardeinstellung: RSYSLOGD_MARK_INTERVAL='600'

RSYSLOGD_OPTIONS

Zusätzliche Kommandozeilenargumente. Diese Option kann z.B. zum Debuggen des rsyslogd benutzt werden und sollte nur von erfahrenen Anwendern genutzt werden.

Standardeinstellung: RSYSLOGD_OPTIONS=”

rsyslogd syslog server (global discard filter)

RSYSLOGD_GLOBAL_DISCARD_FILTER

Legt fest ob sog. 'Global Discard Filter' genutzt werden sollen.
Mittels 'global discard filter' können Meldungen über entsprechende Filterregeln verworfen werden. Dies kann dazu dienen überflüssige Meldungen auszufiltern um die Größe der Logfile zu minimieren.

Siehe Kapitel 'Global Discard Filter'

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER='no'

RSYSLOGD_GLOBAL_DISCARD_FILTER_DEBUG

Soll die Debug Hilfe für 'Global Discard Filter' eingeschaltet werden, 'yes' oder 'no'. Wird die Debug Hilfe eingeschaltet, so werden alle Meldungen VOR der Nutzung der Filter in die Datei /var/log/before_filter geschrieben und alle Meldungen NACH der Nutzung der Filter in die Datei /var/log/after_filter geschrieben.

Unter Nutzung des Befehls
diff -y -W 200 /var/log/before_filter /var/log/after_filter
kann dann kontrolliert werden, ob die Filter korrekt arbeiten und nicht zu viele Meldungen ausgefiltert werden.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_DEBUG='no'

RSYSLOGD_GLOBAL_DISCARD_FILTER_N

Anzahl der Filterdefinitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_N='0'

RSYSLOGD_GLOBAL_DISCARD_FILTER_x_NAME

Name bzw. Beschreibung des Filters.

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_x_NAME=”

RSYSLOGD_GLOBAL_DISCARD_FILTER_x_ACTIVE

Legt fest, ob der Filter aktiv ist.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_x_ACTIVE='yes'

RSYSLOGD_GLOBAL_DISCARD_FILTER_x_PROPERTY

Eigenschaft der Meldungen, die beim Filter genutzt werden soll.

  msg Meldungs Teil
  hostname Hostname wie www.ap.de
  fromhost Sendender Host, bei Meldungen von einem
    anderen Host
  fromhost-ip IP des sendenden Hosts, bei Meldungen von
    einem anderen Host
  syslogtag Tag wie sshd[2169] xinetd[1493]
  programname Programm name wie sshd xinetd

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_x_PROPERTY='msg'

RSYSLOGD_GLOBAL_DISCARD_FILTER_x_OPERATION

Anzuwendende Operation (Suchfunktion).

  contains ist enthalten mit exakter Übereinstimmung
  isequal ist gleich mit exakter Übereinstimmung
  startswith beginnt mit exakter Übereinstimmung
  regex POSIX BRE regulärer Ausdruck
  ereregex POSIX ERE regulärer Ausdruck
  !contains Negation von contains
  !isequal Negation von isequal
  !startswith Negation von startswith
  !regex Negation von regex
  !ereregex Negation von ereregex

Vorsicht bei der Anwendung von Negationen. Hier können höchst unerwünschte Ergebnisse erzielt werden.

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_x_OPERATION='contains'

RSYSLOGD_GLOBAL_DISCARD_FILTER_x_VALUE

Suchstring für den Filter.

Standardeinstellung: RSYSLOGD_GLOBAL_DISCARD_FILTER_x_VALUE=”

rsyslogd syslog server (filter rules)

RSYSLOGD_FILTER

Legt fest ob sog. 'Filter Rules' genutzt werden sollen.
Mittels 'filter rules' können Meldungen über entsprechende Filterregeln direkt in einzelne Logdateien protokolliert werden. Dies kann dazu dienen Meldungen z.B. zu einem bestimmten Programm oder aber von einem bestimmten Host direkt in eine Logdatei zu schreiben.

Siehe Kapitel 'Filter Rules'

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_FILTER='no'

RSYSLOGD_FILTER_N

Anzahl der Filterdefinitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_FILTER_N='0'

RSYSLOGD_FILTER_x_NAME

Name bzw. Beschreibung des Filters.

Standardeinstellung: RSYSLOGD_FILTER_x_NAME=”

RSYSLOGD_FILTER_x_ACTIVE

Legt fest, ob der Filter aktiv ist.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_FILTER_x_ACTIVE='yes'

RSYSLOGD_FILTER_x_LOGFILE

Absoluter Pfadname der zu nutzenden Logdatei.

Gültige Werte: absoluter Pfad

Standardeinstellung: RSYSLOGD_FILTER_x_LOGFILE='/var/log/filter.log'

RSYSLOGD_FILTER_x_LINE_TEMPLATE

Format der Zeilen in der Logdatei.

Gültige Werte: Default,MySQLInsert,DebugFormat,FileFormat,
ForwardFormat,SysklogdFileFormat,MySQLInsertProgname,
SyslogProtocol23Format,TraditionalFileFormat,
TraditionalForwardFormat,TraditionalFormatWithPRI

Wird RSYSLOGD_FILTER_x_LINE_TEMPLATE auf 'Default' gesetzt,
so wird RSYSLOGD_DEFAULT_LINE_TEMPLATE genutzt.

Standardeinstellung: RSYSLOGD_FILTER_x_LINE_TEMPLATE='Default'

RSYSLOGD_FILTER_x_STOP

Legt fest, ob die aktuelle Logzeile (message) nach dem Speichern in der Logdatei verworfen (discarded) werden soll. Wird die aktuelle Logzeile verworfen, so endet die Verarbeitung nach dem Speichern in der Logdatei. Wird die Zeile nicht verworfen, so wird sie an die nächste Regel weitergegeben.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_FILTER_x_STOP='yes'

RSYSLOGD_FILTER_x_PROPERTY

Eigenschaft der Meldungen, die beim Filter genutzt werden soll.

  msg Meldungs Teil
  hostname Hostname wie www.ap.de
  fromhost Sendender Host, bei Meldungen von einem
    anderen Host
  fromhost-ip IP des sendenden Hosts, bei Meldungen von
    einem anderen Host
  syslogtag Tag wie sshd[2169] xinetd[1493]
  programname Programm name wie sshd xinetd

Standardeinstellung: RSYSLOGD_FILTER_x_PROPERTY='hostname'

RSYSLOGD_FILTER_x_OPERATION

Anzuwendende Operation.

  == ist gleich
  != ist ungleich
  <> ist ungleich
  < ist kleiner
  > ist größer
  <= ist kleiner oder gleich
  >= ist größer oder gleich
  contains ist enthalten mit exakter Übereinstimmung
  startswith beginnt mit exakter Übereinstimmung

Standardeinstellung: RSYSLOGD_FILTER_x_OPERATION

RSYSLOGD_FILTER_x_VALUE

Vergleichswert für die Filterregel.

Standardeinstellung: RSYSLOGD_FILTER_x_VALUE='myhostname'

rsyslogd syslog server (database settings)

RSYSLOGD_MYSQL_DB_USE

Legt fest, ob Datenbank Aktionen genutzt werden.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_MYSQL_DB_USE='no'

RSYSLOGD_MYSQL_DB_PACKAGE

MySQL/Maria DB Database Package, welches genutzt werden soll.
Z.B. mysql5173, mariadb55, mariadb100 oder Remote.
Remote: es gibt keine lokale Datenbank. Die Logmeldungen sollen in eine remote Datenbank geschrieben werden. Dazu wird das Package libmysql benötigt. Die remote Datenbank muss entsprechend vorbereitet und konfiguriert sein!

Standardeinstellung: RSYSLOGD_MYSQL_DB_PACKAGE=”

RSYSLOGD_MYSQL_DB_NAME

MySQL/Maria DB Database Name für Aktionen, die eine Datenbank nutzen. Diese Variable wird bei den Skripten im Menue 'rsyslogd tools' genutzt.

Achtung:
In der Regel selbst muss der Name als String eingegeben werden, dort wird NICHT der Inhalt RSYSLOGD_MYSQL_DB_NAME genutzt.

Standardeinstellung: RSYSLOGD_MYSQL_DB_NAME='Syslog'

RSYSLOGD_MYSQL_DB_REMOTE_PORT

Port, der für den Zugriff auf die remote Database genutzt werden soll. Wird kein Port angegeben, so wird der Standardport 3306 genutzt.

Gültige Werte: leer oder 1..65535

Standardeinstellung: RSYSLOGD_MYSQL_DB_REMOTE_PORT=”

rsyslogd syslog server (rule settings)

RSYSLOGD_RULE_N

Anzahl der Regeln.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_RULE_N='2'

RSYSLOGD_RULE_x_NAME

Name bzw. Beschreibung der Regel.

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_RULE_x_NAME=”

RSYSLOGD_RULE_x_ACTIVE

Legt fest, ob die Regel aktiv ist.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_RULE_x_ACTIVE='yes'

RSYSLOGD_RULE_x_SELECTOR_N

Anzahl der Selektoren. Derzeit werden nur sog. Multiselektorlisten, die durch ein Semikolon (';') getrennt werden, unterstützt. Wenn Multiselektorlisten, die durch ein Komma (',') getrennt werden genutzt werden sollen, so muss dies über
RSYSLOGD_CONFIGURATION='manual' realisiert werden.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_RULE_x_SELECTOR_N='2'

RSYSLOGD_RULE_x_SELECTOR_x_NAME

Name bzw. Beschreibung des Selektors.

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_RULE_x_SELECTOR_x_NAME=”

RSYSLOGD_RULE_x_SELECTOR_x_ACTIVE

Legt fest, ob der Selektor aktiv ist.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_RULE_x_SELECTOR_x_ACTIVE='yes'

RSYSLOGD_RULE_x_SELECTOR_x

Selektorfeld der Regel (z.B. kern.info oder mail.=info).

Gültige Werte: Selektor

Standardeinstellung: RSYSLOGD_RULE_x_SELECTOR_x='*.*'

RSYSLOGD_RULE_x_ACTION

Aktion für die Regel.

  Regular File: /filename oder -/filename
    (- kein sync nach jedem logging)
  Dynamic filenames: ?/filename oder -?/filename
    filename mit properties
    (- kein sync nach jedem logging)
  Named Pipes: |filename
  Terminal and Console: /dev/ttyname
  Remote Machine: @host[:Port] / @IP-Adresse[:Port] über UDP oder
  Remote Machine: @@host[:Port] / @@IP-Adresse[:Port] über TCP
  User or List of Users: willi oder root,willi
  Everyone logged on: *
  Discard: ~
  Shell execute: ^program-to-execute
  Database: >host,database,user,password
  Remote RELP Protokoll: :omrelp:IP-address:port oder :omrelp:host:port

Zu properties siehe Kapitel 'properties'. Zur Logrotate Konfiguration siehe Kapitel 'Logrotate Konfiguration fuer Dynamic Files'.

Diese Version des Paketes unterstützt nur die MySQL bzw. Maria DB Datenbank.

Sollen die Logzeilen in zwei Ziele, also z.B. sowohl in eine Datei, als auch in eine Datenbank ausgegeben werden, so muss die gesamte Regel doppelt, aber mit den verschiedenen ACTION-Angaben, erzeugt werden.

ACHTUNG:
Wird das Output Modul omrelp genutzt, so muss das Package ”libgnutls” installiert sein. Das Package ”libgnutls” wurde nicht als required in die Package Datei des rsyslogd aufgenommen, da es zusammen mit den für ”libgnutls” selbst notwendigen Packages sehr umfangreich ist.

Gültige Werte: siehe oben

Standardeinstellung: RSYSLOGD_RULE_x_ACTION='/var/log/messages'

RSYSLOGD_RULE_x_LINE_TEMPLATE

Format der Zeilen im Log.

Gültige Werte: Default,MySQLInsert,DebugFormat,FileFormat,
ForwardFormat,SysklogdFileFormat,MySQLInsertProgname,
SyslogProtocol23Format,TraditionalFileFormat,
TraditionalForwardFormat,TraditionalFormatWithPRI

Wird RSYSLOGD_RULE_x_LINE_TEMPLATE auf 'Default' gesetzt,
so wird RSYSLOGD_DEFAULT_LINE_TEMPLATE genutzt.
Werden die Logzeilen in eine Datenbank geschrieben, so wird
standardmäßig 'MySQLInsert' genutzt, es sein denn, es wird
explizit 'MySQLInsertProgname' gesetzt.
MySQLInsertProgname benutzt '%programname%' statt '%syslogtag%'.

Standardeinstellung: RSYSLOGD_RULE_x_LINE_TEMPLATE='Default'

RSYSLOGD_RULE_x_ROTATE

Legt fest, ob der für diese Regel (Ziel der Regel) eine Logrotate Konfiguration generiert werden soll.

Gültige Werte: yes, no

Achtung: Nicht alle Ziele (ACTION-Angaben) können rotieren.
Kann eine ACTION-Angabe nicht rotieren, so wird de Angabe ggf. ignoriert und eine entsprechende Warnung ausgegeben.

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE='yes'

RSYSLOGD_RULE_x_ROTATE_MODE

Legt fest, welcher Modus für das Logrotate genutzt werden soll.

std : es wird der Standard Modus (logrotate über cron) genutzt
size: es wird über eine einstellbare Größe der Datei unter Nutzung
      sog. outchannel rotiert

Gültige Werte: std, size

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_MODE='std'

RSYSLOGD_RULE_x_ROTATE_PRE_CMD

Pre rotate Kommando der Logrotate Konfiguration.
Bei Nutzung von RSYSLOGD_RULE_x_ROTATE_MODE='std'

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_PRE_CMD=”

RSYSLOGD_RULE_x_ROTATE_POST_CMD

Post rotate Kommando der Logrotate Konfiguration.
Bei Nutzung von RSYSLOGD_RULE_x_ROTATE_MODE='std'

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_POST_CMD='/etc/init.d/rsyslogd quiet restart'

RSYSLOGD_RULE_x_ROTATE_LOG_INTERVAL

Logrotate interval.
Bei Nutzung von RSYSLOGD_RULE_x_ROTATE_MODE='std'

Gültige Werte: daily, weekly, monthly

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_LOG_INTERVAL='daily'

RSYSLOGD_RULE_x_ROTATE_LOG_COUNT

Anzahl der Logfiles, die behalten werden sollen.
Bei Nutzung von RSYSLOGD_RULE_x_ROTATE_MODE='std'
und RSYSLOGD_RULE_x_ROTATE_MODE='size'

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_LOG_COUNT='10'

RSYSLOGD_RULE_x_ROTATE_SIZE

Maximale Dateigröße in Bytes.
Bei Nutzung von RSYSLOGD_RULE_x_ROTATE_MODE='size'

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_RULE_x_ROTATE_SIZE='2085181488'

rsyslogd syslog server (listener settings)

RSYSLOGD_LISTEN

Legt fest, auf welchen Adressen der rsyslogd 'lauschen' soll.
ipv4-only      nur IPv4 Adressen werden genutzt.
ipv6-only      nur IPv6 Adressen werden genutzt.
Ist RSYSLOGD_LISTEN=” gesetzt, so nutzt der rsyslogd alle Adressen des Systems, also IPv4 Adressen und IPv6 Adressen.

Gültige Werte: leer, ipv4-only, ipv6-only

Standardeinstellung: RSYSLOGD_LISTEN=”

RSYSLOGD_IMUDP

Legt fest, ob das Input Modul imudp genutzt wird (yes) oder (no).

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMUDP='no'

RSYSLOGD_IMUDP_N

Anzahl der Port Definitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_IMUDP_N='0'

RSYSLOGD_IMUDP_x_PORT

Zu benutzender Port.

Gültige Werte: 1..65535

Standardeinstellung: RSYSLOGD_IMUDP_x_PORT='514'

RSYSLOGD_IMTCP

Legt fest, ob das Input Modul imtcp genutzt wird (yes) oder (no).

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMTCP='no'

RSYSLOGD_IMTCP_N

Anzahl der Port Definitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_IMTCP_N='0'

RSYSLOGD_IMTCP_x_PORT

Zu benutzender Port.

Gültige Werte: 1..65535

Standardeinstellung: RSYSLOGD_IMTCP_x_PORT='514'

rsyslogd syslog server (allowed sender list)

Die Konfiguration der RSYSLOGD_ALLOWED_SENDER wird ab der Paketversion 1.1.6 nicht mehr auf die rsyslog Direktiven $AllowedSender abgebildet. Statt dessen werden Filterregeln für die Kernel NFtables erzeugt.

Siehe Kapitel 'List nftables filter table'

RSYSLOGD_ALLOWED_SENDER_N

Anzahl der authorisierten Sender.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_ALLOWED_SENDER_N='0'

RSYSLOGD_ALLOWED_SENDER_x_ACTIVE

Legt fest, ob Konfigurationselement aktiv ist oder nicht.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_ALLOWED_SENDER_x_ACTIVE='yes'

RSYSLOGD_ALLOWED_SENDER_x_PROT

Protokoll, das genutzt wird.

Gültige Werte: UDP, TCP oder RELP

Standardeinstellung: RSYSLOGD_ALLOWED_SENDER_x_PROT='RELP'

RSYSLOGD_ALLOWED_SENDER_x_PORT

Port, der genutzt wird.

Gültige Werte: numerische Portnummer

Standardeinstellung: RSYSLOGD_ALLOWED_SENDER_x_PORT='20514'

RSYSLOGD_ALLOWED_SENDER_x

Authorisierten Sender. IP-Adresse (z.B. 192.168.1.6) oder Hostname (z.B. eisnodev) oder FQDN (z.B. eisnodev.ap.de) oder Netzwerk (z.B. *.ap.de oder 192.168.1.0/24) Vorsicht bei Hostnamen, FQDN und Netzwerknamen. Es muss eine entsprechende Namensauflösung möglich sein.

Gültige Werte: siehe oben

Standardeinstellung: RSYSLOGD_ALLOWED_SENDER_x='127.0.0.1'

rsyslogd syslog server (impstats settings)

RSYSLOGD_IMPSTAT

Lade das impstats Satistik-Modul, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMPSTAT='no'

RSYSLOGD_IMPSTATS_INTERVAL

Statistik Interval in Sekunden.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_IMPSTATS_INTERVAL='300'

RSYSLOGD_IMPSTATS_FACILITY

Facility für die Statistik (numerisch 0-23).
Facility 5 ist syslog.

Gültige Werte: Facility (numerisch) 0..23

Standardeinstellung: RSYSLOGD_IMPSTATS_FACILITY='5'

RSYSLOGD_IMPSTATS_SEVERITY

Severity für die Statistik (numerisch 0-7).
Severity 6 ist info.

Gültige Werte: Severity (numerisch) 0..7

Standardeinstellung: RSYSLOGD_IMPSTATS_SEVERITY='6'

RSYSLOGD_IMPSTATS_BRACKETING

Benutze bracketing, ja oder nein.
Beim bracketing werden die Statistikblöcke in zwei Zeile (BEGIN und END) eingeschlossen.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMPSTATS_BRACKETING='no'

RSYSLOGD_IMPSTATS_SYSLOG

Sende die Statistikzeilen in den Syslog Stream, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMPSTATS_SYSLOG='yes'

RSYSLOGD_IMPSTATS_FILE

Wenn nicht leer, schreibe die Statistik in eine Datei.

Gültige Werte: absoluter Dateiname (z.B. /var/log/impstat.log)

Standardeinstellung: RSYSLOGD_IMPSTATS_FILE=”

RSYSLOGD_IMPSTATS_FILE_ROTATE

Rotiere die Statistikdatei mittels logrotate, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMPSTATS_FILE_ROTATE='no'

rsyslogd syslog server (imrelp port list)

RSYSLOGD_IMRELP

Legt fest, ob das Input Modul imrelp genutzt wird (yes) oder (no).

ACHTUNG:
Wird das Input Modul imrelp genutzt, so muss das Package ”libgnutls” installiert sein. Das Package ”libgnutls” wurde nicht als required in die Package Datei des rsyslogd aufgenommen, da es zusammen mit den für ”libgnutls” selbst notwendigen Packages sehr umfangreich ist.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_IMRELP='no'

RSYSLOGD_IMRELP_N

Anzahl der Port Definitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_IMRELP_N='0'

RSYSLOGD_IMRELP_x_PORT

Zu benutzender Port.

Gültige Werte: 1..65535

Standardeinstellung: RSYSLOGD_IMRELP_x_PORT='20514'

rsyslogd cron job to purge DB table

RSYSLOGD_DBPURGE

Bereinigung der Tabelle SystemEvents unter Nutzung eines cron jobs.
Es wird durch das Skript, welches der cron job startet, ein Protokolleintrag der folgenden Form erzeugt:

Mar 28 00:10:01 eiskernel root: rsyslogd: table SystemEvents total 4170 rows / 58 will be deleted

Eine Bereinigung findet nur statt, wenn die 'will be deleted' Angabe einen Wert größer 0 anzeigt.

Achtung: bei RSYSLOGD_DBPURGE='no' kann die Tabelle SystemEvents und damit die Datenbank enorm wachsen.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_DBPURGE='no'

RSYSLOGD_DBPURGE_SCHEDULE

Konfiguration des cron jobs. Der Default '10 0 * * *' bedeutet, dass der cron job jeden Tag um 00:10 Uhr ausgeführt werden soll.

Gültige Werte: Konfigurationsstring für cron jobs

Standardeinstellung: RSYSLOGD_DBPURGE_SCHEDULE='10 0 * * *'

RSYSLOGD_DBPURGE_KEEP_DAYS

Anzahl Tage, für die die Logeinträge in der Tabelle SystemEvents erhalten bleiben sollen. Der Default '7' bedeutet 7 Tage bzw. eine Woche.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_DBPURGE_KEEP_DAYS='7'

rsyslogd expert cron job(s) to purge DB table

RSYSLOGD_DBPURGE_EXPERT

Soll expert purge genutzt werden, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_DBPURGE_EXPERT='no'

RSYSLOGD_DBPURGE_N

Anzahl der Definitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_DBPURGE_N='1'

RSYSLOGD_DBPURGE_x_NAME

Name bzw. Beschreibung der Definition.

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_DBPURGE_x_NAME=”

RSYSLOGD_DBPURGE_x_ACTIVE

Ist die Definition aktiv, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_DBPURGE_x_ACTIVE='yes'

RSYSLOGD_DBPURGE_x_SCHEDULE

Konfiguration des cron jobs. Der Default '10 0 * * *' bedeutet, dass der cron job jeden Tag um 00:10 Uhr ausgeführt werden soll.

Gültige Werte: Konfigurationsstring für cron jobs

Standardeinstellung: RSYSLOGD_DBPURGE_x_SCHEDULE='10 0 * * *'

RSYSLOGD_DBPURGE_x_KEEP_DAYS

Anzahl Tage, für die die Logeinträge in der Tabelle SystemEvents erhalten bleiben sollen. Der Default '7' bedeutet 7 Tage bzw. eine Woche.

Wird hier eine Angabe gemacht, so wird zusätzlich zu der Bedingung aus COLUMN, OPERATOR und VALUE (siehe unten) eine Bedingung auf die Column ReceivedAt erzeugt.

Gültige Werte: Zahl / leer

Standardeinstellung: RSYSLOGD_DBPURGE_x_KEEP_DAYS='7'

RSYSLOGD_DBPURGE_x_COLUMN

Column aus der Tabelle SystemEvents.

Gültige Werte: ID, ReceivedAt, DeviceReportedTime, Facility, Priority, FromHost, Message, InfoUnitID, SysLogTag, ProcessID

Standardeinstellung: RSYSLOGD_DBPURGE_x_COLUMN='FromHost'

RSYSLOGD_DBPURGE_x_OPERATION

Operation, die genutzt werden soll.

Gültige Werte: >, >=, <, <=, =, !=, like

Standardeinstellung: RSYSLOGD_DBPURGE_x_OPERATION='like'

RSYSLOGD_DBPURGE_x_VALUE

Wert, der genutzt werden soll.
Bei like steht % für mehrere Zeichen, _ für ein Zeichen.

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_DBPURGE_x_VALUE='eistest%'

rsyslogd syslog server (file input definitions)

RSYSLOGD_FILE_INPUT

Soll File Input genutzt werden, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_FILE_INPUT='no'

RSYSLOGD_FILE_INPUT_N

Anzahl der Definitionen.

Gültige Werte: Zahl

Standardeinstellung: RSYSLOGD_FILE_INPUT_N='0'

RSYSLOGD_FILE_INPUT_x_NAME

Name bzw. Beschreibung der Definition.

Gültige Werte: Text

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_NAME=”

RSYSLOGD_FILE_INPUT_x_ACTIVE

Ist die Definition aktiv ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_ACTIVE='yes'

RSYSLOGD_FILE_INPUT_x_FILENAME

Absoluter Pfadname der Input Datei.

Gültige Werte: absoluter Pfad

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_FILENAME='/var/log/log.url-error'

RSYSLOGD_FILE_INPUT_x_TAG

Zu nutzender Tag für die Logmeldungen. Es ist sinnvoll den Tag mit einem Doppelpunkt als letztes Zeichen einzugeben.

Gültige Werte: nicht leer

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_TAG='url-error:'

RSYSLOGD_FILE_INPUT_x_FACILITY

Zu nutzende Facility für die Logmeldungen. Z.B. news, user, local0, local1, local2, local3, local4, local5, local6, local7.

Gültige Werte: facility

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_FACILITY='local7'

RSYSLOGD_FILE_INPUT_x_SEVERITY

Zu nutzende Severity für die Logmeldungen.

Gültige Werte: debug, info, notice, warning, err, crit, alert, emerg

Standardeinstellung: RSYSLOGD_FILE_INPUT_x_SEVERITY='err'

Spezielle Menuepunkte

Menue: Test rsyslogd configuration

Über diesen Menuepunkt kann die rsyslogd Konfiguration durch den Daemon selbst geprüft werden. Dazu wird er intern mit dem Parameter '-N 10' aufgerufen.

Die Prüfung kann von der Kommandozeile auch über
    /etc/init.d/rsyslogd test
ausgeführt werden.

Im Erfolgsfall wird eine Meldung wie folgt ausgegeben:

Test rsyslogd configuration
/etc/init.d/rsyslogd test
rsyslogd: version 8.7.0, config validation run (level 10), master config
/etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
Press ENTER to continue

Die Fehlermeldungen sind leider (manchmal) etwas kryptisch:

Test rsyslogd configuration
/etc/init.d/rsyslogd test
rsyslogd: version 8.7.0, config validation run (level 10), master config
/etc/rsyslog.conf
rsyslogd: action 'local9' treated as ':omusrmsg:local9' - please change
syntax, 'local9' will not be
supported in the future [try http://www.rsyslog.com/e/2184 ]
rsyslogd: error during parsing file /etc/rsyslog.d/20_rsyslogd.conf, on
or before line 8: warnings
occured in file '/etc/rsyslog.d/20_rsyslogd.conf' around line 8
[try http://www.rsyslog.com/e/2207 ]
rsyslogd: invalid character in selector line - ';template' expected
rsyslogd: error during parsing file /etc/rsyslog.d/20_rsyslogd.conf, on
or before line 8: errors
occured in file '/etc/rsyslog.d/20_rsyslogd.conf' around line 8 
try http://www.rsyslog.com/e/2207 ]
rsyslogd: End of config validation run. Bye.
Press ENTER to continue

Hier wurde z.B.
local9.=info /var/log/log.eis-install;TraditionalFormat
statt
local5.=info /var/log/log.eis-install;TraditionalFormat
bei einer manuellen Konfiguration genutzt.

Menue: rsyslogd tools

Über ein Untermenue werden folgende Werkzeuge zur Verfügung gestellt.

Create configuration using syslog(base)

Unter Nutzung der aktuellen Konfiguration für den syslogd aus der base Konfiguration wird eine Konfiguration für den rsyslogd erzeugt.

Die globalen Angaben
SYSLOGD_LOG_COUNT
SYSLOGD_LOG_INTERVAL
werden für alle einzelnen Rules als
RSYSLOGD_RULE_x_ROTATE_LOG_COUNT und
RSYSLOGD_RULE_x_ROTATE_LOG_INTERVAL übernommen.

Nutzung einer Datenbank

Soll eine MySQL oder Maria DB Datenbank genutzt werden, um Logzeilen in die Datenbank zu schreiben, so ist wie folgt vorzugehen:

Schritt 1.)
Installation, Konfiguration und Start von MySQL oder Maria DB falls nicht bereits geschehen.

Schritt 2.)
Erzeugen der notwendigen Logging Datenbank über das Menue 'Create logging database'.

Schritt 3.)
Anlegen eines entsprechenden Users, um in die Tabellen der Logging Datenbank schreiben zu können. Dies geschieht über das Menue 'Grant full rights on logging database to a user'.

Schritt 4.)
Erzeugen einer RULE, die als Ziel die Datenbank hat.

Bei den Schritten 1 bis 3 wird der Inhalt der Variablen RSYSLOGD_MYSQL_DB_NAME genutzt. In der Regel selbst muss der Name der Datenbank als als String eingegeben werden, dort wird nicht RSYSLOGD_MYSQL_DB_NAME genutzt.

Create logging database

Es wird die Datenbank aus RSYSLOGD_MYSQL_DB_NAME (Achtung: Groß- und Kleinschreibung beachten) in der lokalen MySQL- oder Maria DB-Instanz erzeugt.

Skripts siehe
/usr/lib/rsyslog/createDB.sql
/usr/lib/rsyslog/alterDB_add_ProcessID.sql
und
/usr/lib/rsyslog/alterDB_addon_LogAnalyzer.sql

Das Skript alterDB_addon_LogAnalyzer.sql enthält Erweiterungen, die
für den Adiscon's Log Analyzer (Copyright Adiscon) benötigt werden.

Das Skript /usr/lib/rsyslog/alterDB_addon_LogAnalyzer.sql wird über den Menuepunkt ”Alter logging database for LogAnalyzer” ausgeführt.

Grant full rights on logging database to a user

Den während des Aufrufs einzugebenden User mit den einzugebenden Passwort werden alle Rechte auf die Tabellen der Datenbank aus RSYSLOGD_MYSQL_DB_NAME gegeben.
Damit wird implizit auch der User angelegt.

Die RSYSLOGD_RULE_x_ACTION muss für MySQL wie folgt angegeben werden:
>localhost,Name der logging database,Username,Passwort

Das Zeichen > definiert, daß eine Datenbank genutzt werden soll.

Username und Passwort müssen (natürlich) mit den Angaben bei 'Grant full rights on logging database to a user' übereinstimmen.

Grant read rights on logging database to a user

Den während des Aufrufs einzugebenden User mit den einzugebenden Passwort werden ausschließlich Lese-Rechte auf die Tabellen der Datenbank aus RSYSLOGD_MYSQL_DB_NAME gegeben.
Damit wird implizit auch der User angelegt.

Dieser User kann z.B. zur Auswertung der Tabellen genutzt werden.

Über

mysql -u <Username> -p <Name der logging database>
select * from SystemEvents order by ID;

kann danach z.B. die Tabelle SystemEvents ausgewertet werden.

Drop logging database

Über diesen Menuepunkt kann die komplette logging database gelöscht werden.

Zur Sicherheit erfolgt eine entsprechende Rückfrage:
Do you really want to drop database xxxxxx ? (y/n) [n]?
mit Default n wie no.

Bei xxxxxx wird er Name aus RSYSLOGD_MYSQL_DB_NAME ausgegeben.

Alter logging database for LogAnalyzer

Bei Erzeugen der logging database wird bei der Tabelle SystemEvents die Column ProcessID ergänzt.

Über diesen Menuepunkt werden die Tabellen ProcessID und SystemEvents erweitert, um das Tool LogAnalyzer nutzen zu können.

Manual logfile rotate

Unter Umständen ist es sinnvoll ein Logfile unabhängig von der Größe und insbesondere unabhängig vom Aufruf von logrotate via cron zu rotieren. Dies ist über das Tool 'Manual logfile rotate' möglich.

Beim Aufruf wird ein Untermenü mit den Namen der Logfiles angeboten, die rotiert werden können.

Beispiel:

   1   Rotate file messages
   2   Rotate file log.eis-install

Wird z.B. 1 Rotate file messages ausgewählt, so wird hier folgendes ausgegeben:

rsyslogd: Rotate logfile manually

File to rotate: messages

Probably loss of log information when rotating an outchannel logfile
Empty RSYSLOGD_RULE_%_ROTATE_POST_CMD set to
      '/etc/init.d/rsyslogd --quiet reload' 

Logrotate finished with return code 0

Press ENTER to continue
Achtung: Zeilenumbruch zur Lesbarkeit eingebaut.

Die beiden Warnungen erscheinen, weil hier bem Logfile messages
RSYSLOGD_RULE_1_ROTATE_MODE='size' genutzt wird und damit das sog. outchannel Modul aktiv ist. Bei der gemischten Nutzung von outchannel Modul und logrotate kann es zum Verlust von Loginformation kommen.
Außerdem wurde bei RSYSLOGD_RULE_1_ROTATE_POST_CMD keine Angabe gemacht. Es wird daher beim manuellen Logrotate der oben aufgeführte Befehl genutzt.

Der Logrotate-Befehl wird mit der Option -f (force) ausgeführt.

Test log messages

Über den Befehl logger werden Testmessages an den rsyslogd geschickt. Dabei sind die Facility (FACILITY), die Priorität (PRIORITY), die Anzahl der Durchläufe (Count) und eine Wartezeit (Sleep (seconds)) auswählbar.

Ergebnis sind dann z.B. Zeilen der Form

Dec 13 16:13:49 eis2 root: Testmessage from eis4 (local7:warning)
Dec 13 16:13:49 eis2 root: Testmessage from eis4 (local7:err)
Dec 13 16:13:49 eis2 root: Testmessage from eis4 (local7:crit)
Dec 13 16:13:49 eis2 root: Testmessage from eis4 (local7:alert)
Dec 13 16:13:49 eis2 root: Testmessage from eis4 (local7:emerg)

in einer Log-Datei.

Analyze log rules

Hier wird analysiert, welche Rules welches Tupel FACILITY/PRIORITY loggen.
ACHTUNG: Dieses Analysetool ist ggf. noch fehlerhaft und muss ggf. noch
         korrigiert werden.

Beispiel:

rsyslogd logger analyze script

analyzing rule 1 ...
analyzing rule 2 ...
Result:

          debug    info     notice   warning  err      crit     alert    emerg
auth      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
authpriv  #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
cron      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
daemon    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
kern      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
lpr       #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
mail      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
mark      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
news      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
syslog    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
user      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
uucp      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local0    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local1    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local2    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local3    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local4    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local5    #1#      #2#      #1#      #1#      #1#      #1#      #1#      #1#
local6    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local7    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#

Press ENTER to continue

Hier existieren nur zwei Rules.
Alle Tupel FACILITY/PRIORITY bis auf local5/info werden über die Rule 1 (#1#) erfaßt. Nur das Tupel local5/info wird über Rule 2 (#2#) erfaßt.

Eine andere Konfiguration zeigt:

rsyslogd logger analyze script

analyzing rule 1 ...
analyzing rule 2 ...
Result:

          debug    info     notice   warning  err      crit     alert    emerg
auth      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
authpriv  #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
cron      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
daemon    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
kern      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
lpr       #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
mail      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
mark      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
news      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
syslog    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
user      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
uucp      #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local0    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local1    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local2    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local3    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local4    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local5    #1#      #2#      #1#2#    #1#2#    #1#2#    #1#2#    #1#2#    #1#2#
local6    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#
local7    #1#      #1#      #1#      #1#      #1#      #1#      #1#      #1#

Press ENTER to continue

Hier wird local5/notice und höher durch zwei Rules #1#2# erfaßt.

List nftables filter table

Hier können die aus der Konfiguration der RSYSLOGD_ALLOWED_SENDER
erzeugten NFtables angezeigt werden.

Beispiel:

RSYSLOGD_ALLOWED_SENDER_N='3'
RSYSLOGD_ALLOWED_SENDER_1_ACTIVE='yes'
RSYSLOGD_ALLOWED_SENDER_1_PROT='TCP'
RSYSLOGD_ALLOWED_SENDER_1_PORT='517'
RSYSLOGD_ALLOWED_SENDER_1='192.168.178.0/24'
RSYSLOGD_ALLOWED_SENDER_2_ACTIVE='yes'
RSYSLOGD_ALLOWED_SENDER_2_PROT='UDP'
RSYSLOGD_ALLOWED_SENDER_2_PORT='518'
RSYSLOGD_ALLOWED_SENDER_2='192.168.178.103'
RSYSLOGD_ALLOWED_SENDER_3_ACTIVE='yes'
RSYSLOGD_ALLOWED_SENDER_3_PROT='RELP'
RSYSLOGD_ALLOWED_SENDER_3_PORT='20514'
RSYSLOGD_ALLOWED_SENDER_3='192.168.178.103'

Das gesamte Netzwerk '192.168.178.0/24' darf üeber UDP Port 517 Meldungen
an den rsyslogd senden.
Nur der Server 192.168.178.103 darf auch über TCP Port 518 Meldungen
an den rsyslogd senden.
Der Server 192.168.178.103 darf auch über das RELP Protokoll über Port 20514 Meldungen an den rsyslogd senden.

Dies führt zu folgender NFtable Filtertabelle:

table ip rsyslogd_filter { # handle 0
chain INPUT { # handle 1
ip saddr 192.168.178.0/24 tcp dport 517 counter packets 0
                              bytes 0 accept # handle 4
ip saddr 192.168.178.103 udp dport 518 counter packets 0
                             bytes 0 accept # handle 5
ip saddr 192.168.178.103 tcp dport 20514 counter packets 0
                             bytes 0 accept # handle 6
tcp dport 20514 counter packets 0 bytes 0 drop # handle 7
tcp dport 517 counter packets 0 bytes 0 drop # handle 8
udp dport 518 counter packets 0 bytes 0 drop # handle 9
}

chain FORWARD { # handle 2
}

chain OUTPUT { # handle 3
}

}

Zur besseren Lesbarkeit wurden die Zeilen bei ip saddr ... umgebrochen.

Die drei Regeln, die auf accept und einen Kommentar mit der sog. Handle-Nummer enden, erteilen die entsprechenden Erlaubnis.

Die drei Regeln, die auf drop und einen Kommentar mit der sog. Handle-Nummer enden, ist zu erkennen, daß Pakete die von anderen Quelladressen (saddr) stammen verworfen werden.

List allowed sender

Hier kann eine Übersicht zu den Konfigurationen von

   RSYSLOGD_IMUDP
   RSYSLOGD_IMUDP_N
   RSYSLOGD_IMUDP_%_PORT
   RSYSLOGD_IMTCP
   RSYSLOGD_IMTCP_N
   RSYSLOGD_IMTCP_%_PORT
   RSYSLOGD_IMRELP
   RSYSLOGD_IMRELP_N
   RSYSLOGD_IMRELP_%_PORT
   RSYSLOGD_ALLOWED_SENDER_N
   RSYSLOGD_ALLOWED_SENDER_%_ACTIVE
   RSYSLOGD_ALLOWED_SENDER_%_PROT
   RSYSLOGD_ALLOWED_SENDER_%_PORT
   RSYSLOGD_ALLOWED_SENDER_%
   erzeugt werden.

Im Wesentlichen können damit Lücken beim Schutz vor beliebigen Sendern erkannt werden.

Beispiel:

   Protocol   Port     Allowed Sender

   UDP        514      192.168.178.10
                       192.168.178.103
   UDP        515      All sender allowed
   UDP        518      192.168.178.103
   TCP        517      192.168.178.0/24
   RELP       20514    192.168.178.103
   RELP       20515    All sender allowed

Beim Input Modul imudp wurden zwar Regeln für die Ports 514 (2 Regeln) und 518 erstellt, aber über den Port 515 können beliebige Sender Daten anliefern.
Beim Input Modul imtcp wurde eine Regel für den Port 517 erstellt.
Beim Input Modul imrelp wurde der Port 20515 für beliebige Sender offen gelassen.

Fehlt ein Schutz, so kann der rsyslogd ggf. mit Meldungen überflutet werden!

Datenfluss im rsyslog daemon

Es gibt verschiedene Inputs im Datenfluss des rsyslog daemon.
Die ersten beiden Inputs werden immer konfiguriert.
Alle weiteren Inputs nur bei entsprechender Konfiguration durch die Eisfair Konfigurationsvariablen.

Inputs sind:

   Standard syslog messages:    Von Anwendungen, die auf dem lokalen System
                                laufen
   Kernel messages:             Meldungen des Kernels (kernel log)
   Internal rsyslogd messages:  Start- und Stopmeldungen des rsyslog daemon
                                Siehe RSYSLOGD_INTERNAL_MESSAGES
   Internal messages:           Die --MARK-- message wird intern erzeugt
                                Siehe RSYSLOGD_MARK_INTERVAL
   Statistik messages:          Spezielle Meldungen des impstat Moduls
                                Siehe RSYSLOGD_IMPSTATS
   UDP input messages:          Meldungen, die ueber UDP von anderen Systemen
                                angeliefert werden
                                Siehe RSYSLOGD_LISTEN und RSYSLOGD_IMUDP
   TCP input messages:          Meldungen, die ueber TCP von anderen Systemen
                                angeliefert werden
                                Siehe RSYSLOGD_LISTEN und RSYSLOGD_IMTCP
   RELP input messages:         Meldungen, die ueber das spezielle RELP
                                Protokoll von anderen Systemen angeliefert
                                werden
                                Siehe RSYSLOGD_IMRELP
   File input messages:         Meldungen, die aus Textdateien ausgelesen
                                werden
                                Siehe RSYSLOGD_FILE_INPUT

Die Meldungen werden zur Abarbeitung an die angegebenen Regeln übergeben. Dabei ist die textuelle Reihenfolge der Regeln in der erzeugten Konfiguration wichtig. Diese Reihenfolge spiegelt auch die Reihenfolge in der Eisfair Konfigurationsdatei wider. Die Reihenfolge ist:
'Global Discard Filter'
'Filter Rules'
'Rule Settings'
Innerhalb der drei Regelgruppen ist die entsprechende Nummer wichtig.

Bei der Gruppe 'Global Discard Filter' werden die Filterregeln ausgewertet und, falls die Regel zutrifft, die Meldung verworfen. Trifft die Regel nicht zu, so wird die nächste Regel ausgewertet.

Nach der Gruppe 'Global Discard Filter' wird für die nicht verworfenen Meldungen in der Gruppe 'Filter Rules' weiter gemacht. Hier gilt: trifft eine Filterregel zu, so wird die Meldung in die konfigurierte Datei geschrieben und anschließend abhängig von RSYSLOGD_FILTER_x_STOP verworfen ('yes') oder bei ('no') die nächste Regel ausgewertet.

Nach der Gruppe 'Filter Rules' findet die Auswertung durch die 'Rule Settings' statt. Hier wird die Meldung jeweils ausgewertet, die entsprechende Aktion (RSYSLOGD_RULE_x_ACTION) ausgeführt und an die nächste Regel weitergegeben. Klare Ausnahme ist hier die Discard Aktion. Hier besteht die gewünschte Aktion ja gerade im Verwerfen der Meldung.

Trifft eine Regel für mehrere Meldungen zu, so werden ggf. mehrere Aktionen durchgeführt. Um z.B. alle Meldungen in die Datei /var/log/messages und in die Datenbanktabelle der MySQL-Datenbank zu schreiben wäre also z.B.:

RSYSLOGD_RULE_N='2'
RSYSLOGD_RULE_1_ACTIVE='yes'
RSYSLOGD_RULE_1_SELECTOR_N='1'
RSYSLOGD_RULE_1_SELECTOR_1_ACTIVE='yes'
RSYSLOGD_RULE_1_SELECTOR_1='*.*'
RSYSLOGD_RULE_1_ACTION='/var/log/messages'
RSYSLOGD_RULE_2_ACTIVE='yes'
RSYSLOGD_RULE_2_SELECTOR_N='1'
RSYSLOGD_RULE_2_SELECTOR_1_ACTIVE='yes'
RSYSLOGD_RULE_2_SELECTOR_1='*.*'
RSYSLOGD_RULE_2_ACTION='>mydbhost,Syslog,loguser,secret'

zu konfigurieren (Konfiguration leicht gekürzt).

Global Discard Filter

Einige Module / Programme etc. erzeugen zyklisch Syslog-Nachrichten, die die rsyslogd Ziele unnötig aufblähen.
Diese Syslog-Meldungen lassen sich ggf. nicht über facility / priority Angaben ausfiltern sondern nur über den Inhalt der Meldungen.

Dies kann über 'Global Discard Filter' geschehen.

Beispiel 1 (von Jürgen Edner):

Das USBIP-Modul generiert beispielhaft zyklisch folgende Meldungen:

  Apr 17 13:09:04 farragut kernel: vhci\_hcd: dequeue a urb ed71d900
  Apr 17 13:09:04 farragut kernel: vhci\_hcd: device ed7e7910 seems
                                   to be still connected
  Apr 17 13:09:04 farragut kernel: vhci\_hcd: unlink->seqnum 679095
  Apr 17 13:09:04 farragut kernel: vhci\_hcd: urb->status -104
Achtung: Zeilenumbruch zur Lesbarkeit eingebaut.

Andere kernel Meldungen und andere Meldungen von vhci_hcd sollen natürlich NICHT ausgefiltert werden!

Die obigen Meldungen lassen sich leicht über folgende 'Global Discard Filter' unterdrücken.

RSYSLOGD_GLOBAL_DISCARD_FILTER_N='4'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_OPERATION='contains'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_VALUE='vhci_hcd: dequeue a urb'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_OPERATION='regex'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_VALUE='vhci_hcd: device.*seems
                                       to be still connected'
RSYSLOGD_GLOBAL_DISCARD_FILTER_3_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_3_OPERATION='contains'
RSYSLOGD_GLOBAL_DISCARD_FILTER_3_VALUE='vhci_hcd: unlink-\>seqnum'
RSYSLOGD_GLOBAL_DISCARD_FILTER_4_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_4_OPERATION='contains'
RSYSLOGD_GLOBAL_DISCARD_FILTER_4_VALUE='vhci_hcd: urb->status -104'
Achtung: Zeilenumbruch zur Lesbarkeit eingebaut.

Beispiel 2:

Wegen einer PAM Konfiguration, die die Installation des Samba-Paket nicht beachtet, werden ggf. folgende Meldungen ausgegeben:

Mar 26 10:26:37 eis350 login[1367]: PAM unable to dlopen(/lib/security/
       pam_smbpass.so): /lib/security/pam_smbpass.so: cannot open shared
       object file: No such file or directory
Mar 26 10:26:37 eis350 login[1367]: PAM adding faulty module: /lib/
       security/pam_smbpass.so

bzw.

Apr 29 19:46:12 eismini sshd[9746]: PAM unable to dlopen(/lib/security/
       pam_smbpass.so): /lib/security/pam_smbpass.so: cannot open shared
       object file: No such file or directory
Apr 29 19:46:12 eismini sshd[9746]: PAM adding faulty module: /lib/
       security/pam_smbpass.so
Achtung: Zeilenumbrüche zur Lesbarkeit eingebaut.

Hier sollen auf keinen Fall alle authpriv.err Meldungen oder gar alle Meldungen der Programme login oder sshd ausgefiltert werden. Diese beiden speziellen Meldungen lassen sich aber beispielsweise leicht über folgende 'Global Discard Filter' unterdrücken.

RSYSLOGD_GLOBAL_DISCARD_FILTER_N='2'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_OPERATION='contains'
RSYSLOGD_GLOBAL_DISCARD_FILTER_1_VALUE='PAM unable to dlopen(/lib/security/
                                       pam_smbpass.so)'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_PROPERTY='msg'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_OPERATION='regex'
RSYSLOGD_GLOBAL_DISCARD_FILTER_2_VALUE='PAM .* faulty module.*'
Achtung: Zeilenumbruch zur Lesbarkeit eingebaut.

ACHTUNG:
Vorsicht bei der Anwendung von Negationen. Hier können höchst unerwünschte Ergebnisse erzielt werden.

Filter Rules

Beispiele:

A.) Meldungen von dem System mit dem Namen dbhost sollen in die Datei /var/log/dbhost.log geschrieben werden. Die Meldungen sollen auch von den folgenden Regeln bearbeitet werden.

RSYSLOGD_FILTER_1_NAME='Hostname-filter'
RSYSLOGD_FILTER_1_ACTIVE='yes'
RSYSLOGD_FILTER_1_LOGFILE='/var/log/dbhost.log'
RSYSLOGD_FILTER_1_LINE_TEMPLATE='Default'
RSYSLOGD_FILTER_1_STOP='no'
RSYSLOGD_FILTER_1_PROPERTY='hostname'
RSYSLOGD_FILTER_1_OPERATION='startswith'
RSYSLOGD_FILTER_1_VALUE='dbhost'

Hier wird startswith genutzt, da unabhängig von RSYSLOGD_LOG_FQDN sowohl der Hostname dbhost als auch der FQDN (hier dbhost.ap.de) erkannt werden soll.

B.) Alle Meldungen des Programms fcron sollen in die Datei /var/log/fcron.log geschrieben werden. Sie sollen nicht an die folgenden Regeln weitergegeben werden.

RSYSLOGD_FILTER_2_NAME=”
RSYSLOGD_FILTER_2_ACTIVE='yes'
RSYSLOGD_FILTER_2_LOGFILE='/var/log/fcron.log'
RSYSLOGD_FILTER_2_LINE_TEMPLATE='Default'
RSYSLOGD_FILTER_2_STOP='yes'
RSYSLOGD_FILTER_2_PROPERTY='programname'
RSYSLOGD_FILTER_2_OPERATION='=='
RSYSLOGD_FILTER_2_VALUE='fcron'

Für alle Logfiles (RSYSLOGD_FILTER_%_LOGFILE) von aktiven Filtern wird automatisch eine gemeinsame Logrotate Konfiguration in der Datei /etc/logrotate.d/rsyslogd_filter erzeugt.

Beispiel für Filter Rules mit zwei Dateien:

#-------------------------------------------------------------------------------
# /etc/logrotate.d/rsyslogd_filter file generated by /var/install/config.d/rsyslogd.sh
#
# Do not edit this file, edit /etc/config.d/rsyslogd
# Creation date: Wed Nov 21 17:10:58 CET 2018
#-------------------------------------------------------------------------------
/var/log/dbhost.log /var/log/fcron.log {
   daily
   missingok
   rotate 10
   compress
   notifempty
   postrotate
      /etc/init.d/rsyslogd --quiet reload
   endscript
}

In einer späteren Version des rsyslogd Paketes wird es ggf. Optionen für einzelne spezielle Konfigurationen geben.

expert cron job(s) to purge DB table

Mit Hilfe der Definitionen aus dieser Konfigurationsgruppe können eine Reihe von cron Jobs definiert werden, bei deren Ausfürung jeweils defnierte Zeilen aus der Tabelle SystemEvents gelöscht werden können.

Ist RSYSLOGD_DBPURGE_x_KEEP_DAYS nicht leer, so wird eine Bedingung

(ReceivedAt < date_add(current_date, interval 
              -$RSYSLOGD_DBPURGE_x_KEEP_DAYS day)) and
mit der Bedingung aus COLUMN, OPERATOR und VALUE mittels and verknüpft. Achtung: Zeilenumbruch zur besseren Lesbarkeit eingefügt.

Aus RSYSLOGD_DBPURGE_x_COLUMN, RSYSLOGD_DBPURGE_x_OPERATION
und RSYSLOGD_DBPURGE_x_VALUE wird ebenfalls eine Bedingung generiert.
Beispiel:

(FromHost like 'eistest%')

Die generierten SQL-Befehle können im Menue ”rsyslogd tools” Untermenue ”Test DBPurge expert configurations” getestet werden:

Beispiel:

rsyslogd Test DBPurge expert configurations.

No. Name           Active Keep Column             Op    Value
1   ...            yes    7    FromHost           like  eistest%

Select configuration (1-1, ENTER=Return, 0=Exit)?1
Generated select file:

/*
   file generated by /var/install/config.d/rsyslogd.sh v0.6.10
*/
select 'total', count(*) from SystemEvents
 union
select 'old', count(*) FROM SystemEvents WHERE
(ReceivedAt < date_add(current_date, interval -7 day)) and
(FromHost like 'eistest%');

Press ENTER to continue
Select file output:

+-------+------+
| total | 4741 |
| old   |  102 |
+-------+------+

The Delete file will delete 102 rows!

Press ENTER to continue

Die Ausgabe ... unter Name bedeutet, daß RSYSLOGD_DBPURGE_x_NAME leer ist.

File Input Definitions

Mit Hilfe der File Input Definitions kann der rsyslogd veranlasst werden Standard-Text-Dateien in syslog Meldungen zu konvertieren. Diese können dann auch über entsprechende Regeln auf einen Remote Host übertragen und dort zentral ausgewertet werden.

Beispiel: Ein Shell-Skript schreibt Fehlermeldungen direkt in eine Datei. Diese Fehlermeldungen sind nur direkt auf dem Host, auf dem das Shell-Skript abläuft, verfügbar. Eine entsprechende File Input Definition ermöglicht es diese Meldungen in syslog Meldungen zu konvertieren und auf einen anderen Host zu übertragen.

Hier wird (zufällig) Regel 5 genutzt.

RSYSLOGD_RULE_5_NAME=”
RSYSLOGD_RULE_5_ACTIVE='yes'
RSYSLOGD_RULE_5_SELECTOR_N='1'
RSYSLOGD_RULE_5_SELECTOR_1_NAME='Übergabe log.url-error'
RSYSLOGD_RULE_5_SELECTOR_1_ACTIVE='yes'
RSYSLOGD_RULE_5_SELECTOR_1='local7.=err'
RSYSLOGD_RULE_5_ACTION='@eis350.fritz.box'
RSYSLOGD_RULE_5_LINE_TEMPLATE='Default'
RSYSLOGD_RULE_5_ROTATE='no'

RSYSLOGD_FILE_INPUT='yes'
RSYSLOGD_FILE_INPUT_N='1'
RSYSLOGD_FILE_INPUT_1_NAME='Übergabe log.url-error'
RSYSLOGD_FILE_INPUT_1_ACTIVE='yes'
RSYSLOGD_FILE_INPUT_1_FILENAME='/var/log/log.url-error'
RSYSLOGD_FILE_INPUT_1_TAG='url-error:'
RSYSLOGD_FILE_INPUT_1_FACILITY='local7'
RSYSLOGD_FILE_INPUT_1_SEVERITY='err'

Der Inhalt der Datei /var/log/log.url-error wird auf dem Host eis350.fritz.box übertragen.

Inhalt:

eismini # cat log.url-error
2016-09-06 10:30:45 url-fail: http://download.eisfair.org/packages/eis-list.txt

erscheint als:

Sep  6 10:30:46 eismini eismini url-error: 2016-09-06 10:30:45 url-fail:
     http://download.eisfair.org/packages/eis-list.txt

im Log von eis350.fritz.box. Achtung: Zeilenumbruch zur Lesbarkeit eingebaut.

Es werden jeweils nur 'neue' Zeilen übertragen. Eine ggf. konfigurierte Logrotate Aktion für die betroffene Datei wird abgehandelt.

Der Status der Datei wird im Verzeichnis /usr/lib/rsyslog/workdir in der Datei imfile-state:-var-log-log.url-error gehalten. Wird diese Statusdatei gelöscht, so wird erneut der gesamte Inhalt der Datei übertragen.

properties

   Alle Properties sind unter
   https://www.rsyslog.com/doc/v8-stable/configuration/properties.html
   aufgelistet

   Die Property $programname enthaelt leider eine "Überraschung",
   gerade für den rsyslogd Hier werden Programmnamen wie rsyslogd-2007,
   rsyslogd-2291, rsyslogd-2353, rsyslogd-2359 und rsyslogd0 erzeugt.

   Um diese Programmnamen auf ein einheitliches rsyslogd zu mappen,
   wurde die konfigurationsinterne Property $!data!modprogramname
   eingeführt. $!data!modprogramname korrigiert die "überraschenden"
   Programmnamen.

Logrotate Konfiguration fuer Dynamic Files

   Die Eisfair Konfigurationsskripte koennen für Dynafiles nicht automatisch
   logrotate Konfigurationen in /etc/logrotate.d anlegen. Aus der ACTION ist
   ja nur ein Teil der Dateinamen fix, ein Teil entsteht ja durch die Anwendung
   der properties in der ACTION (ggf. im Laufe der Zeit).

   logrotate Konfigurationen in /etc/logrotate.d müssen daher manuell angelegt
   werden. Ein Hilfsskript /var/install/bin/rsyslogd-tools-create-rotate-conf
   unterstützt hierbei.

   rsyslogd-tools-create-rotate-conf benötigt drei Parameter
   $1 RSYSLOGD_RULE_N
   $2 Pfadangabe
   $3 Dateiname oder ALL

   Es wird bei der Ausführung eine Datei /etc/logrotate.d/rsyslogd_dyn_xx
   angelegt. xx wird aus Parameter $1 des Skripts gesetzt. Die automatisch
   generierten logrotate Konfigurationen in /etc/logrotate.d folgen der
   Syntax rsyslogd_dyn_xx. Dabei ist xx die RSYSLOGD_RULE_N.

   Beispiele:

   Beispiel 1:
   ***********

   ACTION:
   RSYSLOGD_RULE_4_ACTION='?/var/log/hosts/%HOSTNAME%/messages'

   Verzeichnis:
   /var/log/hosts
   /var/log/hosts/eistestvirt.fritz.box
   /var/log/hosts/eistestvirt.fritz.box/messages
   /var/log/hosts/logserv.fritz.box
   /var/log/hosts/logserv.fritz.box/messages

   Aufruf:
   sh rsyslogd-tools-create-rotate-conf 4 /var/log/hosts messages

   Erzeugt Datei

   rsyslogd_dyn_04

   ....
   /var/log/hosts/eistestvirt.fritz.box/messages
   /var/log/hosts/logserv.fritz.box/messages {
      daily
      missingok
   ....

   Beispiel 2:
   ***********

   ACTION:
   RSYSLOGD_RULE_5_ACTION='?/var/log/modprog/%$!data!modprogramname%/messages'

   Verzeichnis:
   /var/log/modprog
   /var/log/modprog/eis-deinstall
   /var/log/modprog/eis-deinstall/messages
   /var/log/modprog/eis-update
   /var/log/modprog/eis-update/messages
   /var/log/modprog/eis_install
   /var/log/modprog/eis_install/messages
   /var/log/modprog/fcron
   /var/log/modprog/fcron/messages
   /var/log/modprog/fcrontab
   /var/log/modprog/fcrontab/messages
   /var/log/modprog/haveged
   /var/log/modprog/haveged/messages
   /var/log/modprog/init
   /var/log/modprog/init/messages
   /var/log/modprog/kernel
   /var/log/modprog/kernel/messages
   /var/log/modprog/rsyslogd
   /var/log/modprog/rsyslogd/messages
   /var/log/modprog/shutdown
   /var/log/modprog/shutdown/messages
   /var/log/modprog/sshd
   /var/log/modprog/sshd/messages
   /var/log/modprog/su
   /var/log/modprog/su/messages
   /var/log/modprog/usermod
   /var/log/modprog/usermod/messages
   /var/log/modprog/xinetd
   /var/log/modprog/xinetd/messages

   Aufruf:
   sh rsyslogd-tools-create-rotate-conf 5 /var/log/modprog messages

   Erzeugt Datei

   rsyslogd_dyn_05

   ...
   /var/log/modprog/eis-deinstall/messages
   /var/log/modprog/eis-update/messages
   /var/log/modprog/eis_install/messages
   /var/log/modprog/fcron/messages
   /var/log/modprog/fcrontab/messages
   /var/log/modprog/haveged/messages
   /var/log/modprog/init/messages
   /var/log/modprog/kernel/messages
   /var/log/modprog/rsyslogd/messages
   /var/log/modprog/shutdown/messages
   /var/log/modprog/sshd/messages
   /var/log/modprog/su/messages
   /var/log/modprog/usermod/messages
   /var/log/modprog/xinetd/messages {
      daily
      missingok
   ...

   Beispiel 3:
   ***********

   Zwei miteinander verbundene Regeln

   RSYSLOGD_RULE_7_NAME='messages_per_host'
   RSYSLOGD_RULE_7_SELECTOR_N='2'
   RSYSLOGD_RULE_7_SELECTOR_1_NAME='messages'
   RSYSLOGD_RULE_7_SELECTOR_1='*.*'
   RSYSLOGD_RULE_7_SELECTOR_2_NAME='eis-install'
   RSYSLOGD_RULE_7_SELECTOR_2='local5.!=info'
   RSYSLOGD_RULE_7_ACTION='?/var/log/all_hosts/%HOSTNAME%/messages'

   RSYSLOGD_RULE_8_NAME='eis-install_per_host'
   RSYSLOGD_RULE_8_SELECTOR_N='1'
   RSYSLOGD_RULE_8_SELECTOR_1_NAME='eis-install'
   RSYSLOGD_RULE_8_SELECTOR_1='local5.=info'
   RSYSLOGD_RULE_8_ACTION='?/var/log/all_hosts/%HOSTNAME%/eis-install'

   Verzeichnis:
   /var/log/all_hosts
   /var/log/all_hosts/eistestvirt.fritz.box
   /var/log/all_hosts/eistestvirt.fritz.box/eis-install
   /var/log/all_hosts/eistestvirt.fritz.box/messages
   /var/log/all_hosts/logserv.fritz.box
   /var/log/all_hosts/logserv.fritz.box/eis-install
   /var/log/all_hosts/logserv.fritz.box/messages

   Aufruf:
   sh rsyslogd-tools-create-rotate-conf 78 /var/log/all_hosts ALL

   Hier wurde als RSYSLOGD_RULE_N einfach die 78 gew"ahlt.
   Da es unterschiedliche Dateinamen gibt wirde als dritter Parameter
   ALL genutzt.

   Erzeugt Datei

   rsyslogd_dyn_78

   ...
   /var/log/all_hosts/eistestvirt.fritz.box/eis-install
   /var/log/all_hosts/eistestvirt.fritz.box/messages
   /var/log/all_hosts/logserv.fritz.box/eis-install
   /var/log/all_hosts/logserv.fritz.box/messages {
      daily
      missingok
   ...

Einstellungen beim Uebersetzen der Packages

Mit folgenden Einstellungen wurde der rsyslogd übersetzt (eigentlich konfiguriert):

        --prefix=/usr
        --disable-generate-man-pages
        --enable-imfile
        --enable-mysql
        --enable-relp
        --enable-impstats
        --enable-omprog