Le azioni specificano cosa fare con i messaggi filtrati da un selettore. Di seguito sono elencate alcune delle azioni disponibili.
Salvataggio dei messaggi rsyslog nei file di registro
Per salvare un messaggio rsyslog in un file di registro, specificare il percorso assoluto del file di registro dopo il selettore. L'esempio seguente seleziona tutti i messaggi cron e l'azione li salva in /var/log/cron.log file di registro:
cron.* /var/log/cron.log
Puoi specificare un dispositivo tty o /dev/console esistente per inviare messaggi rsyslog allo standard output.
Invio di messaggi rsyslog sulla rete
Utilizzare la seguente sintassi per inoltrare i messaggi rsyslog a una macchina remota:
@[zNUMBER]HOST:[PORT]
– Utilizzare una chiocciola singola (@) per specificare UDP come protocollo di trasporto.
– Utilizzare una doppia chiocciola (@@) per specificare TCP.
– Il campo zNUMBER opzionale abilita un livello di compressione zlib da 1 a 9.
– Il campo HOST specifica l'host ricevente.
– Il campo opzionale PORT specifica il numero di porta sull'host ricevente.
Ad esempio, per inoltrare messaggi a 192.168.10.101 utilizzando il protocollo UDP:
*.* @192.0.2.101
Per inoltrare messaggi alla porta 18 su "host02.example.com" utilizzando il protocollo TCP:
*.* @@host02example.com:18
Invio di messaggi rsyslog a utenti specifici
Specificare il nome utente a cui inviare i messaggi rsyslog. Separare i nomi utente con una virgola (,) per specificare più di un utente. Utilizzare un asterisco (*) per inviare messaggi a tutti gli utenti attualmente connessi. L'esempio seguente invia tutti i messaggi del kernel all'utente joe:
kern.* joe
Esecuzione di un programma
È possibile eseguire un programma per i messaggi rsyslog selezionati. Per specificare un programma da eseguire, anteporre ad esso un carattere di accento circonflesso (^). Specificare un modello che formatta il messaggio ricevuto e lo passa all'eseguibile specificato come parametro di una riga. L'esempio seguente elabora tutti i messaggi del kernel dal modello knl e li passa al programma knlprog.
kern.* ^knl-prog;knl
Scrivere i messaggi rsyslog in un database
È possibile utilizzare l'azione del writer del database per scrivere i messaggi rsyslog selezionati direttamente in una tabella del database. Il writer del database utilizza la seguente sintassi:
:PLUGIN:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD;[TEMPLATE]
– Il campo PLUGIN specifica il plug-in che esegue la scrittura del database.
– rsyslog fornisce supporto per i database MySQL e PostgreSQL.
– L'integrazione di MySQL richiede rsyslogmysql pacchetto software.
– PostgreSQL richiede rsyslog-pgsql pacchetto. Devi anche caricare ommysql modulo per MySQL e ompgsql modulo per PostgreSQL.
Eliminazione dei messaggi rsyslog
Usa il carattere tilde (~) per eliminare i messaggi selezionati. La regola seguente elimina tutti i messaggi di notizie:
news.* ~
È possibile specificare più azioni per un selettore specificando le azioni successive su una nuova riga e precedendo le azioni con un carattere e commerciale (&). Specificare il selettore sulla prima riga di azione. Quello che segue è un esempio di una regola con più azioni:
kern.* joe & ^knl-prog;knl & @192.0.2.101
Nell'esempio precedente, tutti i messaggi del kernel sono:
– Inviati all'utente joe
– Elaborati dal modello knl e passati all'eseguibile knl-prog
– Inoltrati a 192.0.2.101 utilizzando il protocollo UDP
Comprensione dei modelli rsyslog
CentOS / RHEL 6,7 :Come aumentare la verbosità dei messaggi di registro di sistema (rsyslogd)
CentOS / RedHat :Guida per principianti all'amministrazione dei file di registro