Content
Dateianzeige für rsyslogd (1.1.24)
usr/share/doc/rsyslogd/rsyslogd.txt
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 [1]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 -p
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/rsysl
ogd.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
__________________________________________________________________
References
1. http://www.rsyslog.com/