syslog : Les journaux système sous Linux
Table des matières
Dans un système d'exploitation, il existe des journaux, plus familièrement appelés logs.
Ces journaux sont stockés dans la partition /var/log par défaut.
Le protocole syslog est défini dans la RFC 5424 https://tools.ietf.org/html/rfc5424
Un service peut écrire dans ses propre fichiers de logs, souvent classés dans un dossier dans /var/log (Ex: /var/log/httpd pour apache).
Chaque log dispose d'un niveau de gravité (aussi appelé sévérité).
Ils sont triés par ordre :
Il existe une liste de facilities. Ce sont des types de messages qui sont classés par catégorie.
Voici quelques catégories courantes :
auth : Evénements de sécurité ou d'authentification (comme SSH par exemple)
authpriv : Evénements relatifs aux contrôles d'accès
cron : Evénements relatifs aux tâches planifiées
daemon : Evénements des processus systèmes et applicatifs
kern : Evénements concernant les messages relatifs au noyau
mail : Evénements relatifs aux services mail
local7 : Evénements relatifs au boot
user : Evenements quand aucun service n'est spécifié
none : Désigne "rien"
* : Tous les événements quelques soient leur type
Chaque événement étant catégorisé et ayant une priorité peut être stocké sur différents supports.
Cela peut être :
Un fichier avec synchronisation des écritures : /var/log/journal.log
Un fichier sans synchronisation d'écriture : -/var/log/journal.log
Un périphérique (La 12ème console par exemple) : -/dev/tty12
Ignorer les messages : ~
Sur un serveur en UDP : @server (port par défaut = 514, si port différent @@server:port)
Sur un serveur en TCP : @@server (port par défaut = 514, si port différent @@server:port)
Dans la configuration syslog, la syntaxe est la suivante :
Pour vous familiariser avec la configuration, voici quelques exemples :
Si vous avez besoin d'écrire dans les logs depuis un script, vous pouvez le faire avec la commande logger !
Voici un exemple pour écrire un texte d'erreur :
Intro
Dans un système d'exploitation, il existe des journaux, plus familièrement appelés logs.
Ces journaux sont stockés dans la partition /var/log par défaut.
Le protocole syslog est défini dans la RFC 5424 https://tools.ietf.org/html/rfc5424
Un service peut écrire dans ses propre fichiers de logs, souvent classés dans un dossier dans /var/log (Ex: /var/log/httpd pour apache).
Les niveaux de gravité
Chaque log dispose d'un niveau de gravité (aussi appelé sévérité).
Ils sont triés par ordre :
Code numérique | Sévérité | Description |
---|---|---|
0 | emerg | Système inutilisable (urgence) |
1 | alert | Intervention immédiate nécessaire (Alerte) |
2 | crit | Erreur système critique (Critique) |
3 | err | Erreur de fonctionnement (Erreur) |
4 | warning | Avertissement |
5 | notice | Evénement normal mais devant être signalé |
6 | info | Messages d'information |
7 | debug | Message de débogage |
Les services (ou facilities)
Il existe une liste de facilities. Ce sont des types de messages qui sont classés par catégorie.
Voici quelques catégories courantes :
auth : Evénements de sécurité ou d'authentification (comme SSH par exemple)
authpriv : Evénements relatifs aux contrôles d'accès
cron : Evénements relatifs aux tâches planifiées
daemon : Evénements des processus systèmes et applicatifs
kern : Evénements concernant les messages relatifs au noyau
mail : Evénements relatifs aux services mail
local7 : Evénements relatifs au boot
user : Evenements quand aucun service n'est spécifié
none : Désigne "rien"
* : Tous les événements quelques soient leur type
Les destinations
Chaque événement étant catégorisé et ayant une priorité peut être stocké sur différents supports.
Cela peut être :
Un fichier avec synchronisation des écritures : /var/log/journal.log
Un fichier sans synchronisation d'écriture : -/var/log/journal.log
Un périphérique (La 12ème console par exemple) : -/dev/tty12
Ignorer les messages : ~
Sur un serveur en UDP : @server (port par défaut = 514, si port différent @@server:port)
Sur un serveur en TCP : @@server (port par défaut = 514, si port différent @@server:port)
La Syntaxe et exemples
Dans la configuration syslog, la syntaxe est la suivante :
Code TEXT :
service.gravité destination
Pour vous familiariser avec la configuration, voici quelques exemples :
Code TEXT :
auth,authpriv.* /var/log/auth.log # Stocke tous les messages d’authentification *.emerg /var/log/alerte.log # Stocke tous les services de niveau emergency *.* -/dev/tty12 # envoie tous les logs de toutes les criticités sur le TTY12 cron.* ~ # Abandon des messages syslog de cron *.* @192.168.21.200 # Envoie en UDP vers un serveur syslog
Ecrire dans les logs avec logger
Si vous avez besoin d'écrire dans les logs depuis un script, vous pouvez le faire avec la commande logger !
Voici un exemple pour écrire un texte d'erreur :
Code BASH :
logger -p local0.err "Ceci est un texte d erreur"
Code BASH :
[root@srv-log ~]# tail -1 /var/log/messages Feb 6 18:29:27 srv-log root: Ceci est un texte d erreur