Les logs Linux : ou chercher et comment les lire

Credit : Illustration backtotheweb.fr

Les logs Linux : ou chercher et comment les lire

Dylan D. — Agent Support Technique Serveur Depannage 641 mots 4 min

Les logs Linux : ou chercher et comment les lire

Savoir lire les logs est la competence numero un pour debugger un serveur. Voici ou trouver les informations et comment les exploiter.

Arborescence /var/log

Les principaux fichiers de logs :

/var/log/
├── syslog           # Messages systeme generaux
├── auth.log         # Authentification (SSH, sudo, PAM)
├── kern.log         # Messages du noyau
├── dpkg.log         # Installations/mises a jour de paquets
├── apt/history.log  # Historique apt
├── nginx/
│   ├── access.log   # Requetes HTTP recues
│   └── error.log    # Erreurs Nginx
├── apache2/
│   ├── access.log
│   └── error.log
├── mysql/
│   └── error.log    # Erreurs MariaDB/MySQL
├── php8.2-fpm.log   # Erreurs PHP-FPM
├── fail2ban.log     # Bans fail2ban
└── cron.log         # Executions cron (ou dans syslog)

journalctl : le journal systemd

journalctl est l'outil principal sur les distributions modernes :

# Voir tous les logs recents
journalctl -e

# Logs d'un service specifique
journalctl -u nginx
journalctl -u php8.2-fpm
journalctl -u mysql

# Logs depuis une date
journalctl --since "2026-04-07 10:00"
journalctl --since "1 hour ago"
journalctl --since today

# Logs entre deux dates
journalctl --since "2026-04-07 08:00" --until "2026-04-07 12:00"

# Suivre en temps reel (comme tail -f)
journalctl -u nginx -f

# Logs du noyau uniquement
journalctl -k

# Logs du dernier boot
journalctl -b

# Logs de priorite erreur et superieure
journalctl -p err

# Format JSON pour traitement automatise
journalctl -u nginx --output json-pretty

Lire auth.log : detecter les intrusions

# Tentatives SSH echouees
grep "Failed password" /var/log/auth.log | tail -20

# Compter les echecs par IP
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head

# Connexions SSH reussies
grep "Accepted" /var/log/auth.log | tail -20

# Utilisation de sudo
grep "sudo" /var/log/auth.log | tail -20

Lire les logs Nginx

Format par defaut du access.log :

203.0.113.50 - - [07/Apr/2026:14:30:00 +0200] "GET /article/123 HTTP/1.1" 200 4523 "https://google.fr" "Mozilla/5.0..."

Commandes utiles :

# Les 10 IP les plus actives
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

# Les pages avec erreur 404
awk '$9 == 404' /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head

# Les erreurs 500
awk '$9 == 500' /var/log/nginx/access.log

# Requetes par heure
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-2 | sort | uniq -c

# Erreurs Nginx recentes
tail -50 /var/log/nginx/error.log

Attention : vérifiez bien deux fois avant d'appliquer en production.

Lire les logs MySQL

# Erreurs recentes
sudo tail -50 /var/log/mysql/error.log

# Activer le slow query log
mysql -u root -p -e "SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 2;"

# Analyser les requetes lentes
mysqldumpslow -s c /var/log/mysql/mysql-slow.log

Logrotate : eviter que les logs remplissent le disque

Logrotate compresse et archive automatiquement les logs. Configuration dans /etc/logrotate.d/ :

# Voir la config Nginx
cat /etc/logrotate.d/nginx

Creer une config personnalisee /etc/logrotate.d/monapp :

/var/log/monapp/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    postrotate
        systemctl reload monapp > /dev/null 2>&1 || true
    endscript
}

Testez la rotation :

sudo logrotate -d /etc/logrotate.d/monapp
sudo logrotate -f /etc/logrotate.d/monapp

Surveillance centralisee

Pour plusieurs serveurs, envisagez une solution centralisee :

# Envoyer les logs vers un serveur rsyslog distant
# Dans /etc/rsyslog.d/50-remote.conf :
*.* @@logserver.monsite.fr:514

Commandes de survie

# Espace disque utilise par les logs
du -sh /var/log/*

# Chercher un mot dans tous les logs
grep -r "error" /var/log/ --include="*.log" -l

# Suivre plusieurs logs simultanement
tail -f /var/log/nginx/error.log /var/log/php8.2-fpm.log

Les logs sont votre meilleur allie pour diagnostiquer les problemes. Prenez l'habitude de les consulter regulierement.


Vous avez une astuce à ajouter ? Contactez-nous, on l'ajoutera avec plaisir.

# Articles similaires

// newsletter

Cet article vous a aide ? Recevez les prochains par email.