Vorlagen ändern und formatieren die von rsyslog generierte Ausgabe. Sie ermöglichen es, jedes gewünschte Format anzugeben. Sie werden auch für die dynamische Generierung von Dateinamen verwendet. Das Folgende ist die Syntax zum Erstellen einer Vorlage:
$template TEMPLATE_NAME,"text %PROPERTY% text", [OPTION]
Die Felder werden wie folgt beschrieben:
Feld | Zweck |
---|---|
$template | Direktive, die eine Vorlage definiert |
TEMPLATE_NAME | Name der Vorlage |
„Text“ | Tatsächlicher Vorlagentext, umgeben von Anführungszeichen |
%PROPERTY% | Spezifischer Nachrichteninhalt, umgeben von Prozentzeichen |
OPTION | Gibt Optionen an, die die Vorlagenfunktionalität ändern |
Vorlagen können verwendet werden, um dynamische Dateinamen zu generieren. Geben Sie eine Eigenschaft als Teil des Dateipfads an, um eine neue Datei für jede eindeutige Eigenschaft zu erstellen. Verwenden Sie beispielsweise timegenerated -Eigenschaft, um einen eindeutigen Dateinamen für jede rsyslog-Nachricht zu generieren:
$template DynamicFile,“/var/log/%timegenerated%-test.log”
Geben Sie den Vorlagennamen in einer Regel an, um die rsyslog-Ausgabe zu ändern. Dynamische Dateien werden durch eine Vorlage und ein vorangestelltes Fragezeichen (?) dargestellt. Beispiel:
*.* ?DynamicFile
Eigenschaften
Sie können Eigenschaften innerhalb einer Vorlage verwenden, um auf bestimmte Inhalte einer rsyslog-Nachricht zu verweisen. Verwenden Sie die folgende Syntax, um eine Eigenschaft innerhalb einer Vorlage zu definieren:
%PROPERTY_NAME[:FROM_CHAR:TO_CHAR:OPTION]%
Die Felder werden wie folgt beschrieben:
Feld | Zweck |
---|---|
PROPERTY_NAME | Name einer Eigenschaft |
FROM_CHAR und TO_CHAR | Zeichenbereich, auf den die angegebene Eigenschaft wirkt |
OPTION | Eigenschaftsoptionen |
Eine Liste der verfügbaren Eigenschaften und Beschreibungen finden Sie unter http://www.rsyslog.com/doc/property_replacer.html.
1. Die folgende Eigenschaft stellt den gesamten Nachrichtentext einer rsyslog-Nachricht dar:
%msg%
2. Das folgende Beispiel stellt die ersten beiden Zeichen des Nachrichtentextes dar:
%msg:1:2%
3. Die folgende Eigenschaft stellt den Hostnamen in einer rsyslog-Nachricht dar:
%hostname%
4. Die folgende Eigenschaft stellt die Einrichtung aus der Nachricht in Textform dar:
%syslogfacility-text%
Vorlage:Beispiel
Das folgende Beispiel definiert eine Vorlage namens class, die eine rsyslog-Nachricht formatiert, um den Zeitstempel der Nachricht, die Einrichtung in Textform, die Priorität in Textform, den Hostnamen und den Nachrichtentext auszugeben, und endet mit einer neuen Zeile:
$template class, "Time: %timestamp%, Facility: %syslogfacilitytext%, Priority: %syslogpriority-text%, Hostname: %hostname%, Message: %msg%\n"
Um die Vorlage für /var/log/logfile-Meldungen zu verwenden, fügen Sie den Vorlagennamen wie folgt ein:
*.* /var/log/logfile;classCentOS / RedHat :Leitfaden für Anfänger zur Verwaltung von Protokolldateien
Rsyslog-Aktionen verstehen
Rsyslog-Filteroptionen verstehen