L’analyse des fichiers de log d’un serveur peut se révéler fastidieuse et difficile suivant le nombre et la complexité de services qui tournent sur une machine. C’est sur ce point que l’outil Logwatch peut aider l’administrateur système, en effet celui-ci rassemble différents fichiers de logs et les affiche de façon claire, sous la forme d’un rapport plus lisible que les fichiers bruts.
Logwatch n’est pas vraiment un outil destiné par exemple à lire les logs après un problème afin d’en trouver la cause, car en général une analyse plus poussée et ciblée doit être effectuée dans un tel cas, mais il est plus particulièrement utile pour faire du reporting sur l’état d’une machine à un moment donné. Par exemple l’utilisation classique qui est celle par défaut en général est d’avoir le rapport de la journée de la veille envoyée par email.
Installation de Logwatch sur une machine CentOS 7
La procédure d’installation sous CentOS se fait avec la commande yum
, si vous êtes sur une version récente de Fedora, remplacez yum
par dnf
dans la commande ci-dessous :
$ sudo yum install logwatch
Configuration de Logwatch
Après installation, Logwatch est fonctionnel et une tâche cron a été ajoutée pour une exécution journalière. Mais il est également directement utilisable en ligne de commande, par exemple :
$ sudo logwatch --detail Low --mailto nom@adresse.email --service http --range yesterday
Cette commande va générer un rapport sans trop de détail (--detail Low
) sur uniquement le service http (--service http
) de la journée d’hier (--range yesterday
) envoyé par email à l’adresse indiquée (--mailto nom@adresse.email
). Bien entendu, le but n’est pas de le lancer à la main, voyons donc comment rapidement le configurer.
Sous CentOS 7, le fichier de configuration par défaut se trouve sous /usr/share/logwatch/default.conf/logwatch.conf
, mais il est préférable d’éditer le fichier présent sous /etc/logwatch/conf/logwatch.conf
avec ses propres paramètres. Dans notre cas, cette configuration se résume à ceci :
Output = mail Format = html MailTo = destinataire@adresse.email MailFrom = nom@adresse.email Detail = Low Range = yesterday Service = All
Pas vraiment besoin d’explication ici, c’est très compréhensible, on voit que l’on retrouve les options du test en ligne de commande un peu plus haut.
Le paramètre Detail
pourrait être plus verbeux avec une valeur à Medium
ou High
. Le paramètre Range
quant à lui est assez flexible, il peut prendre des valeurs telles que : yesterday
, today
, mais également des choses comme '2 hours ago for that hour'
sont comprises.
Service
est à All
ici, mais il est possible de spécifier quels services inclure : Service = sendmail Service = http Service = identd Service = sshd2 Service = sudo
.
Exemple de rapport au format texte :
########### Logwatch 7.4.0 (03/01/11) ############ Processing Initiated: Tue May 15 19:27:10 2016 Date Range Processed: 2 hours ago for that hour ( 2016-May-15 17h ) Period is hour. Detail Level of Output: 0 Type of Output/Format: mail / text Logfiles for Host: hostname ################################################## ------------- System Configuration Begin ---------------- CPU: 1 Intel Xeon E312xx (Sandy Bridge) at 2394MHz Machine: x86_64 Release: Linux 3.10.0-327.18.2.el7.x86_64 Total Memory: 1953 MB Free Memory: 105 MB -------------- System Configuration End ----------------- ------------- Disk Space Begin ---------------- Filesystem Size Used Avail Use% Mounted on /dev/vda1 10G 6.4G 3.7G 64% / devtmpfs 959M 0 959M 0% /dev -------------- Disk Space End ----------------- ------------- Network Interfaces --------------- Ethernet : 0 Other : 0 Total : 0 ------------- Network statistics --------------- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether fa:26:3f:38:99:ab brd ff:ff:ff:ff:ff:ff inet 14.32.10.9/32 brd 14.32.10.9 scope global eth0 valid_lft forever preferred_lft forever inet6 fe85::f826:3fff:fe78:88ab/64 scope link valid_lft forever preferred_lft forever Iface MTU RX-DRP TX-DRP eth0 1500 0 0 lo 65536 0 0 ----- Network statistics ------- ############## Logwatch End #################