GNU/Linux >> LINUX-Kenntnisse >  >> Linux

rsyslog-Aktionen verstehen

Aktionen geben an, was mit den von einem Selektor herausgefilterten Nachrichten geschehen soll. Im Folgenden sind einige der verfügbaren Aktionen aufgeführt.

Speichern von rsyslog-Meldungen in Protokolldateien

Um eine rsyslog-Meldung in einer Protokolldatei zu speichern, geben Sie nach dem Selektor den absoluten Pfad zur Protokolldatei an. Das folgende Beispiel wählt alle Cron-Meldungen aus und die Aktion speichert sie in /var/log/cron.log Protokolldatei:

cron.* /var/log/cron.log

Sie können ein vorhandenes tty- oder /dev/console-Gerät angeben, um rsyslog-Meldungen an die Standardausgabe zu senden.

Senden von rsyslog-Meldungen über das Netzwerk

Verwenden Sie die folgende Syntax, um rsyslog-Meldungen an einen Remote-Computer weiterzuleiten:

@[zNUMBER]HOST:[PORT]

– Verwenden Sie ein einzelnes At-Zeichen (@), um UDP als Transportprotokoll anzugeben.
– Verwenden Sie ein doppeltes At-Zeichen (@@), um TCP anzugeben.
– Das optionale zNUMBER-Feld aktiviert eine Ebene der zlib-Komprimierung von 1 bis 9.
– Das HOST-Feld gibt den empfangenden Host an.
– Das optionale PORT-Feld gibt die Portnummer auf dem empfangenden Host an.

Zum Beispiel, um Nachrichten mit dem UDP-Protokoll an 192.168.10.101 weiterzuleiten:

*.* @192.0.2.101

So leiten Sie Nachrichten mithilfe des TCP-Protokolls an Port 18 auf „host02.example.com“ weiter:

*.* @@host02example.com:18

Senden von rsyslog-Nachrichten an bestimmte Benutzer

Geben Sie den Benutzernamen an, an den rsyslog-Meldungen gesendet werden sollen. Trennen Sie Benutzernamen durch ein Komma (,), um mehr als einen Benutzer anzugeben. Verwenden Sie ein Sternchen (*), um Nachrichten an alle derzeit angemeldeten Benutzer zu senden. Das folgende Beispiel sendet alle Kernel-Nachrichten an Benutzer joe:

kern.* joe

Ausführen eines Programms

Sie können ein Programm für ausgewählte rsyslog-Meldungen ausführen. Um ein auszuführendes Programm anzugeben, stellen Sie ihm ein Caret-Zeichen (^) voran. Geben Sie eine Vorlage an, die die empfangene Nachricht formatiert und als einzeiligen Parameter an die angegebene ausführbare Datei übergibt. Das folgende Beispiel verarbeitet alle Kernel-Meldungen durch das Template knl und übergibt sie an das Programm knlprog.

kern.* ^knl-prog;knl

Schreiben Sie rsyslog-Meldungen in eine Datenbank

Sie können die Datenbank-Writer-Aktion verwenden, um ausgewählte rsyslog-Meldungen direkt in eine Datenbanktabelle zu schreiben. Der Datenbankschreiber verwendet die folgende Syntax:

:PLUGIN:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD;[TEMPLATE]

– Das Feld PLUGIN gibt das Plug-in an, das das Schreiben der Datenbank durchführt.
– rsyslog bietet Unterstützung für MySQL- und PostgreSQL-Datenbanken.
– MySQL-Integration erfordert rsyslogmysql Softwarepaket.
– PostgreSQL benötigt rsyslog-pgsql Paket. Sie müssen auch ommysql laden Modul für MySQL und ompgsql Modul für PostgreSQL.

Rsyslog-Meldungen verwerfen

Verwenden Sie das Tilde-Zeichen (~), um ausgewählte Nachrichten zu verwerfen. Die folgende Regel verwirft alle Nachrichten:

news.* ~

Sie können mehrere Aktionen für einen Selektor angeben, indem Sie nachfolgende Aktionen in einer neuen Zeile angeben und den Aktionen ein kaufmännisches Und-Zeichen (&) voranstellen. Geben Sie den Selektor in der ersten Aktionszeile an. Das Folgende ist ein Beispiel für eine Regel mit mehreren Aktionen:

kern.* joe
& ^knl-prog;knl
& @192.0.2.101

Im vorangegangenen Beispiel werden alle Kernel-Meldungen:
– an Benutzer joe gesendet
– von der Vorlage knl verarbeitet und an die ausführbare Datei knl-prog weitergeleitet
– von using an 192.0.2.101 weitergeleitet das UDP-Protokoll

Grundlegendes zu rsyslog-Filteroptionen
Grundlegendes zu rsyslog-Vorlagen
CentOS / RHEL 6,7 :So erhöhen Sie die Ausführlichkeit von Systemprotokollmeldungen (rsyslogd)
CentOS / RedHat :Anfängerleitfaden zur Verwaltung von Protokolldateien


Linux
  1. Linux – Verstehen Sie die Anmeldung unter Linux?

  2. Logrotate-Dienstprogramm verstehen

  3. Verstehen der Datei /etc/rsyslog.conf zum Konfigurieren der Systemprotokollierung

  4. Konfigurieren der Remoteprotokollierung mit rsyslog in CentOS/RHEL

  5. Grundlegendes zu rsyslog-Filteroptionen

Grundlegendes zu Linux-Dateiberechtigungen

Prozesse unter Linux verstehen

/etc/rsyslog.conf – Richten Sie einen Filter ein, um Nachrichten zu verwerfen oder umzuleiten

Verständnis von MySQL-Berechtigungen

„imuxsock verlor # Nachrichten von PID # aufgrund von Ratenbegrenzung“ – rsyslog-Ratenbegrenzung in Linux

Docker-Port-Mappings verstehen