I modelli modificano e formattano l'output generato da rsyslog. Consentono di specificare qualsiasi formato che un utente potrebbe desiderare. Sono utilizzati anche per la generazione di nomi di file dinamici. La seguente è la sintassi per creare un modello:
$template TEMPLATE_NAME,"text %PROPERTY% text", [OPTION]
I campi sono descritti come segue:
Campo | Scopo |
---|---|
$modello | Direttiva che definisce un modello |
TEMPLATE_NAME | Nome del modello |
"testo" | Testo del modello effettivo racchiuso tra virgolette |
%PROPRIETA'% | Contenuto specifico del messaggio circondato da segni di percentuale |
OPZIONE | Specifica le opzioni che modificano la funzionalità del modello |
I modelli possono essere utilizzati per generare nomi di file dinamici. Specificare una proprietà come parte del percorso del file per creare un nuovo file per ciascuna proprietà univoca. Ad esempio, utilizza il generato dal tempo per generare un nome file univoco per ogni messaggio rsyslog:
$template DynamicFile,“/var/log/%timegenerated%-test.log”
Specificare il nome del modello in una regola per modificare l'output di rsyslog. I file dinamici sono rappresentati da un modello e da un prefisso punto interrogativo (?). Esempio:
*.* ?DynamicFile
Proprietà
È possibile utilizzare le proprietà all'interno di un modello per fare riferimento a contenuti specifici di un messaggio rsyslog. Utilizzare la seguente sintassi per definire una proprietà all'interno di un modello:
%PROPERTY_NAME[:FROM_CHAR:TO_CHAR:OPTION]%
I campi sono descritti come segue:
Campo | Scopo |
---|---|
PROPERTY_NAME | Nome di una proprietà |
DA_CHAR e TO_CHAR | Intervallo di caratteri su cui agisce la proprietà specificata |
OPZIONE | Opzioni proprietà |
È possibile trovare un elenco delle proprietà e delle descrizioni disponibili all'indirizzo http://www.rsyslog.com/doc/property_replacer.html.
1. La seguente proprietà rappresenta l'intero testo del messaggio di un messaggio rsyslog:
%msg%
2. L'esempio seguente rappresenta i primi due caratteri del testo del messaggio:
%msg:1:2%
3. La seguente proprietà rappresenta il nome host in un messaggio rsyslog:
%hostname%
4. La seguente proprietà rappresenta la struttura del messaggio in formato testo:
%syslogfacility-text%
Modello:esempio
L'esempio seguente definisce un modello denominato classe che formatta un messaggio rsyslog per emettere il timestamp del messaggio, la funzione in formato testo, la priorità in formato testo, il nome host e il testo del messaggio e termina con una nuova riga:
$template class, "Time: %timestamp%, Facility: %syslogfacilitytext%, Priority: %syslogpriority-text%, Hostname: %hostname%, Message: %msg%\n"
Per utilizzare il modello per i messaggi /var/log/logfile, includi il nome del modello come segue:
*.* /var/log/logfile;classCentOS / RedHat:Guida per principianti all'amministrazione dei file di registro
Comprendere le azioni rsyslog
Comprendere le opzioni del filtro rsyslog