Les actions spécifient quoi faire avec les messages filtrés par un sélecteur. Voici quelques-unes des actions disponibles.
Enregistrement des messages rsyslog dans les fichiers journaux
Pour enregistrer un message rsyslog dans un fichier journal, spécifiez le chemin absolu vers le fichier journal après le sélecteur. L'exemple suivant sélectionne tous les messages cron et l'action les enregistre dans /var/log/cron.log fichier journal :
cron.* /var/log/cron.log
Vous pouvez spécifier un périphérique tty ou /dev/console existant pour envoyer les messages rsyslog vers la sortie standard.
Envoi de messages rsyslog sur le réseau
Utilisez la syntaxe suivante pour transférer les messages rsyslog vers une machine distante :
@[zNUMBER]HOST:[PORT]
– Utilisez un seul signe arobase (@) pour spécifier UDP comme protocole de transport.
– Utilisez un double signe arobase (@@) pour spécifier TCP.
– Le champ zNUMBER facultatif active un niveau de compression zlib de 1 à 9.
– Le champ HOST spécifie l'hôte de réception.
– Le champ facultatif PORT spécifie le numéro de port sur l'hôte de réception.
Par exemple, pour transférer des messages vers 192.168.10.101 en utilisant le protocole UDP :
*.* @192.0.2.101
Pour transférer les messages vers le port 18 sur "host02.example.com" à l'aide du protocole TCP :
*.* @@host02example.com:18
Envoi de messages rsyslog à des utilisateurs spécifiques
Spécifiez le nom d'utilisateur auquel envoyer les messages rsyslog. Séparez les noms d'utilisateur par une virgule (,) pour spécifier plusieurs utilisateurs. Utilisez un astérisque (*) pour envoyer des messages à chaque utilisateur actuellement connecté. L'exemple suivant envoie tous les messages du noyau à l'utilisateur Joe :
kern.* joe
Exécuter un programme
Vous pouvez exécuter un programme pour les messages rsyslog sélectionnés. Pour spécifier un programme à exécuter, préfixez-le avec un caractère caret (^). Spécifiez un modèle qui formate le message reçu et le transmet à l'exécutable spécifié sous la forme d'un paramètre d'une ligne. L'exemple suivant traite tous les messages du noyau par le modèle knl et les transmet au programme knlprog.
kern.* ^knl-prog;knl
Écrire des messages rsyslog dans une base de données
Vous pouvez utiliser l'action d'écriture de base de données pour écrire des messages rsyslog sélectionnés directement dans une table de base de données. Le rédacteur de la base de données utilise la syntaxe suivante :
:PLUGIN:DB_HOST,DB_NAME,DB_USER,DB_PASSWORD;[TEMPLATE]
– Le champ PLUGIN spécifie le plug-in qui effectue l'écriture de la base de données.
– rsyslog prend en charge les bases de données MySQL et PostgreSQL.
– L'intégration MySQL nécessite rsyslogmysql progiciel.
– PostgreSQL nécessite le rsyslog-pgsql forfait. Vous devez également charger le ommysql module pour MySQL et ompgsql module pour PostgreSQL.
Supprimer les messages rsyslog
Utilisez le caractère tilde (~) pour supprimer les messages sélectionnés. La règle suivante supprime tous les messages d'actualité :
news.* ~
Vous pouvez spécifier plusieurs actions pour un sélecteur en spécifiant les actions suivantes sur une nouvelle ligne et en faisant précéder les actions d'une esperluette (&). Spécifiez le sélecteur sur la première ligne d'action. Voici un exemple de règle avec plusieurs actions :
kern.* joe & ^knl-prog;knl & @192.0.2.101
Dans l'exemple précédent, tous les messages du noyau sont :
– Envoyés à l'utilisateur joe
– Traités par le modèle knl et transmis à l'exécutable knl-prog
– Transmis à 192.0.2.101 en utilisant le protocole UDP
Comprendre les modèles rsyslog
CentOS / RHEL 6,7 :Comment augmenter la verbosité des messages du journal système (rsyslogd)
CentOS / RedHat :Guide du débutant pour l'administration des fichiers journaux