Was bedeutet die Zeile *. *; Auth, authpriv.none - / var / log / syslog in der Konfigurationsdatei rsyslog?

11

Ich versuche die /etc/rsyslog.confDatei zu verstehen , aber mir fehlt etwas. Dies ist beispielsweise ein Teil der Datei:

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
cron.*              /var/log/cron.log
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log

Laut dieser Seite:

Die Funktion ist eines der folgenden Schlüsselwörter: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, sicherheit (wie auth), syslog, user, uucp und local0 bis local7.

Die Priorität ist eines der folgenden Schlüsselwörter in aufsteigender Reihenfolge: Debug, Info, Benachrichtigung, Warnung, Warnung (wie Warnung), Fehler, Fehler (wie Fehler) krit, Alarm, Emerg, Panik (wie Emerg). Die Schlüsselwörter Fehler, Warnung und Panik sind veraltet und sollten nicht mehr verwendet werden. Die Priorität definiert den Schweregrad der Nachricht.

Ein Sternchen ("*") steht für alle Einrichtungen oder Prioritäten, je nachdem, wo es verwendet wird (vor oder nach dem Zeitraum). Das Schlüsselwort none steht für keine Priorität der angegebenen Einrichtung.

Mit dem Komma-Operator (",") können Sie mehrere Funktionen mit demselben Prioritätsmuster in einer Anweisung angeben. Sie können so viele Einrichtungen angeben, wie Sie möchten. Denken Sie daran, dass nur der Einrichtungsteil aus einer solchen Anweisung entnommen wird. Ein Prioritätsteil wird übersprungen.

Mit dem Semikolon-Trennzeichen (";") können mehrere Selektoren für eine einzelne Aktion angegeben werden. Denken Sie daran, dass jeder Selektor im Selektorfeld die vorhergehenden überschreiben kann. Mit diesem Verhalten können Sie einige Prioritäten aus dem Muster ausschließen.

Das ist also ziemlich verständlich, aber was ist mit dem Dateipfad auf der rechten Seite? Es kann nur ein Pfad sein oder ein Pfad mit |oder -davor (oder vielleicht sogar etwas anderes). Was ist der Unterschied zwischen den drei?

Mikhail Morfikov
quelle

Antworten:

16

Gegeben

*.*;auth,authpriv.none      -/var/log/syslog

*.* bedeutet, alle Einrichtungen und Prioritäten zu protokollieren.

auth,authpriv.none bedeutet, dass die Funktionen auth und authpriv nicht protokolliert werden.

-/var/log/syslogbedeutet Protokoll in der Datei / var / log / syslog. Der vorstehende Bindestrich weist syslogd an, fsync () nicht aufzurufen, dh den Kernelpuffer nicht nach jedem Schreiben in die Datei auf die Festplatte zu leeren.

Kyle Jones
quelle
Wie heißt auth,authpriv.nonedas nicht protokollieren? Aus dem zitierten Dokument geht hervor, dass "jeder Selektor im Selektorfeld die vorhergehenden überschreiben kann" - wo sind die Details dieses Verhaltens dokumentiert? Ich hätte erwartet, dass das authTeil mit der Authentifizierungsfunktion übereinstimmt, unter der bereits abgeglichen wurde *.*, anstatt es zu deaktivieren.
16.
2
auth,authprivpasst zu beiden authund authpriv. Der .noneTeil gilt für beide. *.*;auth;authpriv.nonewürde sich so verhalten, wie Sie es beschreiben.
Kyle Jones
OK danke! Und ist das irgendwo dokumentiert?
16.
1
Dies ist in der obigen Dokumentation impliziert. Der Prioritätsteil wird für alle bis auf die letzte Einrichtung übersprungen (ignoriert), wenn Sie mehrere Einrichtungen mit einem Komma auflisten. Die Dokumentation könnte in diesem Bereich sicherlich verbessert werden.
Kyle Jones
Ich habe die Zeile hinzugefügt, *.*;auth,authpriv.none /dev/console damit die Syslog-Nachrichten auch auf der Konsole (tty1) meines Raspberry Pi angezeigt werden. Ich habe einen Monitor an meinen Pi-Server angeschlossen, der nur zum Überwachen der Protokolle verwendet wird. Ich mache mit, um daran zu arbeiten, wie du siehst.
Will