Accueil

Logwatch : Surveillance et analyse de logs

Monitoring
Difficulte: Beginner
4 min de lecture

Tutoriel détaillé pour installer et configurer Logwatch, un outil de surveillance et d'analyse des logs système, sur une distribution Linux.

Retour aux tutoriels

L'essentiel

  • L'installation du paquet pose déjà une tâche planifiée dans /etc/cron.daily/00logwatch : le rapport quotidien tourne dès l'installation, il ne reste qu'à le configurer. Sur CentOS/RHEL, epel-release est un prérequis.
  • Ne modifiez jamais /usr/share/logwatch/default.conf/logwatch.conf, écrasé à chaque mise à jour du paquet : copiez-le dans /etc/logwatch/conf/logwatch.conf, qui est prioritaire.
  • Les cinq paramètres qui comptent : Output = mail, Format = html, MailTo, MailFrom et Range = yesterday, complétés par Detail = Med (valeurs Low, Med, High ou un entier de 0 à 10).
  • Le niveau de détail se règle service par service dans /etc/logwatch/conf/services/ : Detail = High dans sshd.conf pour surveiller finement les connexions, Detail = None dans http.conf pour couper un service trop bavard.
  • Testez sans attendre le cron avec sudo logwatch --output stdout --format text --detail Med --range today. Attention : Output = mail dépend entièrement d'un MTA fonctionnel (Postfix, msmtp ou un relais SMTP) et d'un serveur non blacklisté.
Qu'est-ce que Logwatch ?
Logwatch est un système d'analyse de logs hautement personnalisable. Il parcourt les logs de votre système pour une période donnée et crée un rapport analysant les domaines qui vous intéressent. C'est un outil essentiel pour être informé de l'activité de vos serveurs sans avoir à manuellement éplucher des fichiers de logs volumineux.

Pourquoi utiliser Logwatch ?

  • Gain de temps : Reçoit un résumé quotidien ou hebdomadaire de l'activité du système par email.
  • Détection d'anomalies : Met en évidence les tentatives de connexion échouées, les erreurs de disque, les problèmes de service, etc.
  • Sécurité : Aide à repérer rapidement les activités suspectes ou les tentatives d'intrusion.
  • Personnalisable : Vous pouvez facilement définir le niveau de détail des rapports et les services à surveiller.

Prérequis

  • Un serveur Linux (Ubuntu/Debian, CentOS/RHEL).
  • Accès root ou privilèges sudo.
  • Un agent de transport de mail (MTA) comme Postfix ou msmtp, pour que le serveur puisse envoyer des emails.

Installation

# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y logwatch

# Sur CentOS / RHEL
sudo yum install -y epel-release
sudo yum install -y logwatch

L'installation configure une tâche cron dans /etc/cron.daily/00logwatch qui s'exécutera chaque jour.

Configuration

La configuration par défaut se trouve dans /usr/share/logwatch/default.conf/logwatch.conf. Pour la personnaliser, on crée une copie dans /etc/logwatch/conf/ que l'on va modifier. C'est cette dernière qui sera prioritaire.

sudo mkdir -p /etc/logwatch/conf
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf
sudo nano /etc/logwatch/conf/logwatch.conf

Paramètres clés à modifier

Voici les lignes les plus importantes à ajuster dans votre nouveau fichier /etc/logwatch/conf/logwatch.conf :


# Envoyer le rapport par email au lieu de l'afficher en sortie standard
Output = mail

# Format du rapport (text ou html)
Format = html

# Adresse email qui recevra le rapport
MailTo = [email protected]

# Adresse email de l'expéditeur
MailFrom = [email protected]

# Période de temps à analyser. "yesterday" est le plus courant pour un rapport quotidien.
Range = yesterday

# Niveau de détail du rapport. Les valeurs possibles sont : Low, Med, High ou un nombre de 0 à 10.
# "Med" est un bon point de départ.
Detail = Med
Configuration terminée !
Avec ces réglages, vous recevrez chaque matin un rapport HTML de l'activité de la veille sur l'adresse email spécifiée.

Personnalisation des services

Vous pouvez affiner les rapports pour des services spécifiques. Par exemple, pour avoir plus de détails sur les connexions SSH, vous pouvez créer un fichier de configuration pour ce service :

sudo nano /etc/logwatch/conf/services/sshd.conf

Et y ajouter :

# Obtenir un rapport plus détaillé pour le service sshd
Detail = High

Inversement, si vous ne voulez pas de rapport pour un service (ex: `http` pour Apache), vous pouvez le désactiver :

sudo nano /etc/logwatch/conf/services/http.conf
# Désactiver les rapports pour Apache
Detail = None

Tester la configuration

Vous n'avez pas besoin d'attendre le lendemain pour voir si ça marche. Vous pouvez lancer Logwatch manuellement :

# Exécute logwatch avec les options du fichier de conf et affiche le résultat à l'écran
sudo logwatch --output stdout --format text --detail Med --range today

Cette commande vous donnera un aperçu du rapport qui sera envoyé.

Dépendance à un MTA
Pour que l'envoi d'email fonctionne (Output = mail), votre serveur doit être capable d'envoyer des emails. Assurez-vous d'avoir un MTA fonctionnel (comme Postfix, ou un relais SMTP comme msmtp) et que votre serveur n'est pas blacklisté.

Conclusion

Logwatch est un outil indispensable pour l'hygiène de sécurité de base de tout serveur Linux. Il transforme le bruit des fichiers de logs en informations digestes et exploitables, vous permettant de rester au courant de ce qu'il se passe sur vos systèmes avec un minimum d'effort. Le configurer pour recevoir un rapport quotidien par email est l'une des premières actions à entreprendre lors de la mise en service d'une nouvelle machine.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Je ne reçois aucun rapport par email, par où commencer ?
Isolez d'abord la couche fautive avec sudo logwatch --output stdout --format text --detail Med --range today. Si le rapport s'affiche correctement à l'écran, Logwatch fonctionne et le problème est côté messagerie. Vérifiez alors qu'un MTA est bien installé et opérationnel (Postfix, msmtp ou un relais SMTP), que MailTo et MailFrom sont renseignés, et que le serveur n'est pas blacklisté — un rapport quotidien envoyé depuis un serveur sans enregistrement SPF finit souvent en spam.
Pourquoi ne pas modifier directement le fichier de configuration par défaut ?
/usr/share/logwatch/default.conf/logwatch.conf appartient au paquet : la prochaine mise à jour d'apt ou de yum l'écrasera et vos réglages disparaîtront sans avertissement. La bonne pratique consiste à le copier vers /etc/logwatch/conf/logwatch.conf après avoir créé le répertoire avec sudo mkdir -p /etc/logwatch/conf. Ce fichier-là est prioritaire sur les valeurs par défaut et survit aux mises à jour.
Comment obtenir plus de détail sur SSH sans rendre le rapport illisible ?
Gardez un Detail global modéré et surchargez uniquement le service concerné. Créez /etc/logwatch/conf/services/sshd.conf et mettez-y Detail = High : seul le bloc sshd du rapport gagnera en verbosité. Symétriquement, un service bruyant se coupe avec Detail = None dans son propre fichier, par exemple /etc/logwatch/conf/services/http.conf pour Apache.
À quoi correspond Range = yesterday, et quand faut-il en changer ?
Range définit la fenêtre de logs analysée. La valeur yesterday est cohérente avec le cron quotidien /etc/cron.daily/00logwatch : le rapport que vous recevez le matin couvre la journée complète de la veille, sans trou ni recouvrement. Utilisez today uniquement pour un lancement manuel de vérification, en gardant à l'esprit qu'il ne couvre que la journée en cours, donc un intervalle partiel.
Quelle valeur de Detail choisir au départ ?
Le paramètre accepte Low, Med, High ou un entier de 0 à 10. Med est le bon point de départ : il fait remonter les tentatives de connexion échouées, les erreurs de disque et les problèmes de service sans noyer l'essentiel. Passez à High seulement après avoir identifié les services que vous voulez réellement suivre de près, et faites-le dans leur fichier dédié plutôt qu'au niveau global.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.