Pour dépanner ou auditer son système Linux, il est nécessaire d’obtenir des informations sur le système ou les applications.
Par exemple, les avertissements, les erreurs ou informations de debug.
Pour cela, Linux et les applications enregistrent des journaux (logs) dans le dossier /var/log grâce au daemon syslog.
En tant que qu’administrateur système, vous devez savoir pour quel fichier journal devrait être vérifié pour un problème de service particulier.
Dans ce tutoriel, j’aborde plusieurs fichiers journaux Linux à connaître.
Vous trouverez la liste complète des journaux Linux, puis enfin d’article, quelques explications comment les voir.

Table des matières
- 1 Liste complète des journaux (logs) Linux
- 2 Comment lire les journaux Linux
- 3 Quels sont les journaux (logs) Linux ?
- 3.1 Fichier journal consolidé du système : /var/log/messages
- 3.2 Device driver messages : dmesg
- 3.3 Service success/failures at boot : /var/log/boot.log
- 3.4 Logs Authentication : /var/log/secure, /var/log/auth.log
- 3.5 les journaux cron
- 3.6 Logs des mails : /var/log/mail.log ou /var/log/maillog
- 3.7 Dernier journaux : /var/log/lastlog
- 3.8 Logs des transferts de fichiers : /var/log/xferlog
- 4 Liens
Liste complète des journaux (logs) Linux
syslog est un daemon qui enregistre les journaux dans /var/log.
Ce daemon tend à disparaître depuis l’arrivée de systemd qui apporte la journalisation par le service journald.
Toutefois, la plupart des distributions Linux continuent de l’utiliser;
Linux créé plusieurs fichiers journaux systèmes que l’on retrouve dans toutes les distributions Linux.
Il existe quelques subtilités différentes mais globalement les journaux sont à peu près les mêmes d’une distribution Linux à un autre.
Voici la liste complètes des journaux systèmes :
- /var/log/auth.log : Journaux d’authentification (le journal d’authentification stocke tous les journaux d’authentification, y compris les tentatives réussies et échouées)
- /var/log/btmp: Enregistrements des tentatives de connexion infructueuses
- /var/log/boot.log : Journal de démarrage du système (le journal de démarrage stocke toutes les informations relatives aux opérations de démarrage)
- /var/log/cron : stocke tous les messages liés à des cron tels que lorsque le démon cron a initié un travail, des messages d’échec associés, etc. Ce fichier n’existe pas forcément sur toutes les distributions Linux
- /var/log/dmesg : Messages relatifs aux pilotes de périphérique. La commande DMESG peut être utilisée pour afficher les messages dans ce fichier.
- /var/log/debug : Journaux de débogage (le journal de débogage stocke des messages détaillés liés au débogage et est utile pour dépanner des opérations système spécifiques)
- /var/log/daemon.log : journaux des démons (le journal des démons contient des informations sur les événements liés à l’exécution de l’opération Linux)
- /var/log/faillog: Contient des informations toutes les tentatives de connexion échouées, utiles pour obtenir des informations sur la tentative de violation de la sécurité, telles que celles qui tentent de pirater des informations d’identification de connexion ainsi que des attaques de brute force
- /var/log/kern: Stocke les journaux de noyau Linux et les données d’avertissement. Ce journal est précieux pour le dépannage des noyaux personnalisés
- /var/log/maillog ou /var/log/mail.log : Journaux du serveur de messagerie (le journal de messagerie stocke les informations relatives aux serveurs de messagerie et à l’archivage des e-mails)
- /var/log/messages : Enregistre les messages importants, non débogués et non critiques. Ce journal doit être considéré comme le journal “Activité du système général”.
- /var/log/kern.log : Journaux du noyau Linux
- /var/log/btmp : Enregistrements d’échecs de tentatives de connexion
- /var/log/utmp : Etat de connexion actuel, par utilisateur
- /var/log/wtmp : Historique des connexions / déconnexions
- /var/log/lastlog : Informations sur les dernières connexions pour tous les utilisateurs. Ce fichier binaire peut être lu par la commande lastlog
- /var/log/syslog : Enregistre tout exceptés les messages liés aux authentifications
- /var/log/utmp: État de connexion actuel, par utilisateur
- /var/log/wtmp: Historique de connexion / déconnexion
- /var/log/xferlog: Contient toutes les sessions de transfert de fichiers FTP, y compris des informations sur le nom de fichier et l’initiation de transferts FTP
Mais chaque application peut aussi créer ses propres journaux.
Par exemple, on peut voir des journaux dpkg liés au gestionnaire de paquet Debian, Ubuntu ou Mint.
Mais aussi nginx peut aussi y créer ses journaux, php-fpm, apache ou n’importe quelle autre application qui fonctionne en tant que service/daemon.
Enfin le système effectue une rotation des journaux à travers logrotate afin consulter les journaux précédents.
Le journal du jour sera copié vers un fichier du même nom avec .1.
Le journal .1 sera copié et compressé en gzip vers .2
Puis .2 est copié vers .3
Enfin le dernier journal est supprimé.
Cette rotation des journaux peut être journalière, hebdomadaire ou mensuelle.
Comment lire les journaux Linux
En plus de la liste complète, voici un descriptif des principaux journaux Linux.
Les commandes Linux pour lire les logs
Linux fournit plusieurs commandes afin de pouvoir lire des fichiers textes.
Ce tableau récapitule les principales commandes utiles.
Toutefois, vous n’aurez besoin que de trois commandes : cat, more, less
Si vous devez chercher un élément en particulier, aidez vous de la commande grep.
Commandes | Actions |
awk / gawk | Langage de balayage et de traitement des motifs |
cat | Afficher le contenu d’un fichier |
cut | Supprimer des sections d’un fichier |
grep | Rechercher l’occurence dans un fichier |
head | Afficher l’entête du fichier |
more | Afficher le contenu d’un fichier page par page |
join | Rejoint les lignes de deux fichiers partageant un champ commun de données. |
less | Comme more mais en plus rapide |
look | Montre les lignes commençant par un pattern |
nl | Ecrit chaque fichier sur la sortie standard, avec des numéros de ligne ajoutés |
sed | Recherche/remplacer, substitution de texte |
sort | Trier le flux d’entrée |
tee | Lit l’entrée standard et l’écrit à la fois dans la sortie standard et dans un ou plusieurs fichiers |
tail | Affiche les dernières lignes d’un fichier |
tr | Transforme une liste de caractère en une autre liste |
wc | Afficher le nombre de lignes d’un fichier texte |
Enfin pour naviguer dans un fichier log avec less :
Enfin notez que vous pouvez utiliser la commande journalctl afin de consulter les journaux Linux SystemD :
Enfin pour lire les journaux en temps réel :
La structure d’un fichier journal
Voici un exemple d’un fichier journal Linux :
Aug 9 16:39:53 nsxxxx kernel: [ 10.076795] e1000e: eno1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
Aug 9 16:39:53 nsxxxx kernel: [ 10.076884] e1000e 0000:00:19.0 eno1: 10/100 speed: disabling TSO
Aug 9 16:39:53 nsxxx kernel: [ 10.077009] IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
Aug 10 00:00:09 nsxxx rsyslogd: [origin software="rsyslogd" swVersion="8.1901.0" x-pid="506" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Aug 10 00:00:09 ns320684 rsyslogd: [origin software="rsyslogd" swVersion="8.1901.0" x-pid="506" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
On trouve les colonnes suivantes :
- Date / horodatage
- Nom d’hôte système
- Nom du service (et parfois pid aussi)
- Texte du message
Quels sont les journaux (logs) Linux ?
Fichier journal consolidé du système : /var/log/messages
Tous les services système qui n’ont pas leur propre fichier journal spécial, écrit normalement dans /var/log/messages. La majeure partie de l’activité système.
En effet, ce fichier log enregistre les messages importants, non débogués et non critiques.
Cela fait de /var/log/messages un des principaux log à consulter pour auditer et suivre l’activité du système.
Device driver messages : dmesg
DMESG est utilisé pour examiner ou contrôler la mémoire tampon du noyau Linux.
L’action par défaut consiste à afficher tous les messages du tampon d’anneau du noyau.
On y trouve les logs du démarrage Linux (/var/log/boot.log) et système.
Ces messages aident à résoudre les problèmes de dépannage ou d’initialisation des pilotes.
Pour visualiser ces journaux, saisissez la commande :
dmesg
Service success/failures at boot : /var/log/boot.log
Dès le démarrage de votre PC ou serveur, SystemD enregistre les journaux systèmes.
Notamment, cela permet de visualiser les services en cours de démarrage et leur statut de réussite ou d’échec est affiché sur la console locale.
Les mêmes journaux peuvent être obtenus à partir du journal de démarrage post-boot.
Ce fichier répertorie tout le statut de réussite / échec du service au démarrage de manière à pouvoir être référé plus tard pour dépanner les problèmes liés au service.
Pour afficher le journal des messages de démarrage, exécutez la commande ci-dessous:
sudo cat /var/log/boot.log
Logs Authentication : /var/log/secure, /var/log/auth.log
Ce journal enregistre les tentatives d’authentification réussies ou non.
Cela inclut les connexions dans un terminal local ou à distance (pts).
C’est un bon moyen pour suivre les attaques par brute force.
Aug 10 07:17:01 ns320684 CRON[19220]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 10 07:17:01 ns320684 CRON[19220]: pam_unix(cron:session): session closed for user root
Aug 10 07:39:01 ns320684 CRON[19613]: pam_unix(cron:session): session opened for user root by (uid=0)
Par exemple ci-dessous, il s’agit de tentatives de connexion au service SSH :
Voici la structure :
- Date / horodatage
- Nom d’hôte de serveur
- Service d’authentification ou daemon (parfois avec PID)
- Un message
Sur Debian, cron enregistre les connexions cron dans ce journal mais les exécutions des tâches se trouvent dans /var/log/syslog
les journaux cron
Lorsque utilise cron pour créer des tâches planifiées ; il peut être utile de connaître les exécutions lorsque la tâche planifiée ne s’exécute pas.
Certains distributions Linux créent à cet effet /var/log/cron
Sur Debian, les journaux cron se trouvent dans /var/log/syslog
Sur Debian :
cat /var/log/syslog|grep CRON
Logs des mails : /var/log/mail.log ou /var/log/maillog
Si un MTA comme exim, postfix ou qmail est installé sur Linux, les mails envoyés ou reçus sont logués dans /var/log/mail.log ou /var/log/maillog.
Cela affiche le nom d’hôte du MX, avec le statut du mail (250, …).
C’est le log à vérifier si vous rencontrez des problèmes pour envoyer ou recevoir des mails depuis votre système.
Dernier journaux : /var/log/lastlog
Les détails de connexion récents de tous les utilisateurs du système sont enregistrés dans ce fichier journal.
Le journal /var/log/lastlog n’est pas lisible par défaut car au format binaire.
Mais la commande lastlog permet d’afficher les données.
lle trie les utilisateurs avec le fichier de leur commande dans /etc/passwd, l’adresse IP de connexion est affichée, le port (TTY) et date.
Logs des transferts de fichiers : /var/log/xferlog
Ce journal contient des informations provenant du programme de transfert de fichiers / des démons de service.
Certains daemon FTP comme vsftp, proftpd peuvent écrire dedans.
Liens
- Quels sont les journaux Linux de /var/log/ et comment les lire
- Comment utiliser journalctl pour voir et lire les journaux Linux Systemd
- rsyslog et logrotate : gérer les logs et journaux linux
- Comment utiliser la commande dmesg sur Linux
- Comment lire les logs sur Linux en temps réel avec tail, multitail
- Daemon et Service linux : Configuration et fonctionnement