
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 :
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
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 :