Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 1 livre papier acheté 
= la version en ligne automatiquement offerte. Cliquez ici
  1. Livres et vidéos
  2. Debian GNU/Linux
  3. Surveillance du système
Extrait - Debian GNU/Linux Administration du système (Nouvelle édition)
Extraits du livre
Debian GNU/Linux Administration du système (Nouvelle édition)
3 avis
Revenir à la page d'achat du livre

Surveillance du système

Fichiers de journalisation

Toutes les activités et commandes mises en œuvre jusqu’à présent ont généré des informations que le système Debian a conservé pour partie et que l’on nomme des « logs ». Ils constituent la base informative pour tout administrateur et adoptent une spécificité propre à Linux, suivi par Debian bien sûr. Le répertoire par défaut de ces fichiers de journalisation est /var/log.

Avec Zeitgeist, service pour l’enregistrement des activités et des événements de l’utilisateur, on dépasse le domaine de la surveillance pour flirter avec celui de la sécurité. Ce service sera donc étudié dans le prochain chapitre.

Citons parmi les informations :

  • L’activité du système.

  • Les comportements anormaux (tentative de connexion en root).

  • Les messages émis par les services.

  • Etc.

1. Démon rsyslogd

Le paquet logiciel rsyslog, à l’aide du service (daemon) rsyslogd, s’occupe de l’ensemble des messages système et applicatifs sous Debian GNU/Linux. Ce service se paramètre par son fichier de configuration situé dans /etc/rsyslog.conf. À noter que certaines applications ou services gèrent par défaut leurs propres messages de logs, comme le service web Apache, le service de messagerie Postfix, etc.

Exemple de fichiers de logs présent dans /var/log sur Serinux :


alternatives.log   btmp.1          faillog       samba       user.log 
alternatives.log.1 daemon.log      installer    syslog       user.log.1 
apt                daemon.log.1    kern.log      syslog.1    user.log.2.gz 
aptitude           daemon.log.2.gz kern.log.1    syslog.2.gz  
vboxadd-install.log 
aptitude.1.gz      debug           kern.log.2.gz syslog.3.gz  
vboxadd-install-x11.log 
auth.log           debug.1         lastlog       syslog.4.gz  
VboxGuestAdditions.log 
auth.log.1         debug.2.gz      messages...

Traitement des logs

1. Colorisation des fichiers de logs

Un bon administrateur Debian lit les fichiers de logs régulièrement, aussi toute aide est la bienvenue. Pour faciliter son travail, la colorisation des lignes rendra ces fichiers plus lisibles.

 Installez le paquet logiciel correspondant :


root@serinux:~# aptitude install ccze
 

La commande fonctionne avec une redirection de l’entrée standard. De plus certains formats de données obligent à complexifier l’ensemble de la commande en y intégrant un « tube » et des options. Concrètement, voyons les deux ensembles de commandes les plus utilisés :

Visualisation d’un fichier de log pour y rechercher une information :


root@serinux:~# ccze -A < /var/log/syslog | less -R
 

Affichage d’un fichier de log avec visualisation en temps réel :


root@serinux:~# tail -f /var/log/syslog | ccze -A
 

Bien sûr, rien n’empêche l’administrateur de construire un raccourci de ces commandes...

2. Analyse des fichiers de logs

L’administrateur bénéficie aussi d’une aide pour l’analyse des fichiers logs par le paquet logiciel logwatch constitué d’un ensemble de scripts écrits en PERL. Classiquement, le paramétrage de la commande passe par un fichier de configuration (/usr/share/logwatch/default.conf/logwatch.conf).

La commande se lance sans arguments auquel cas tous les logs sont analysés, ou bien pour un terme bien précis comme par exemple sudo :


root@serinux:~# logwatch -service sudo 
################### Logwatch 7.4.3 (12/07/16) ####################  
        Processing Initiated: Tue Mar 21 14:32:39 2017 
        Date Range Processed: yesterday 
                              ( 2017-Mar-20 ) 
                              Period is day. 
        Detail Level of Output: 0 
        Type of Output/Format: stdout / text 
        Logfiles for Host: serinux 
 ##################################################################  
  --------------------- Sudo (secure-log) Begin ------------------------  
 adminux => root 
 --------------- ...

Exécution automatique

Sous Debian, la cohérence du système entraîne la réalisation périodique d’un grand nombre de tâches : vérification des systèmes de fichiers, sauvegarde des données utilisateur ou analyse des fichiers journaux du système.

En parallèle, d’autres tâches ponctuelles et répétitives interviennent qui ne doivent pas interférer avec le fonctionnement de l’entreprise, c’est pour cela qu’elles sont généralement effectuées de nuit afin garantir la continuité du service.

1. Cron ou la planification des tâches

Cron automatise l’exécution des tâches répétitives par l’intermédiaire d’un processus démon nommé crond, consignant les travaux à effectuer suivant la période d’exécution associée dans des fichiers spécifiques, appelés crontab, que l’on distingue en deux catégories : utilisateur et système.

a. Table Cron utilisateur

Le répertoire /var/spool/cron contient les fichiers crontab des utilisateurs, éditables par la commande crontab -e et exécutables avec les droits liés au propriétaire. La liste des crontab enregistrées se consulte par crontab -l. L’administrateur peut lister celles des autres utilisateurs par l’ajout de -u <nom de l’utilisateur>.

Syntaxe du fichier crontab

Le fichier crontab utilisateur se compose de deux types de lignes :

  • L’initialisation de variables d’environnement (facultatives) pour fixer l’environnement d’exécution.

  • La commande ou le script pour le travail périodique à lancer par le démon crond.

Syntaxe d’une commande Cron

Classiquement, sous Linux, on aura :


<période> <utilisateur> <commande>
 

Où la période est constituée de cinq données : minutes, heures, jours dans le mois, mois et jours de la semaine. Voici un exemple pour l’utilisateur debinux désireux de lancer un script Bash chaque jour de la semaine à 9 heures du matin :


00 09 * * * debinux /home/debinux/bin/monscript.sh
 

Attention : la syntaxe de la commande impose des chemins absolus et non relatifs. Même dans le cas d’une crontab utilisateur...

« Monitoring » du système

Le « monitoring » étend la notion de surveillance d’un système en lui ajoutant la mesure quantitative de certains paramètres.

Les outils sur Debian :

  • top (ou sa variante couleur à installer htop) : donne des renseignements globaux ou par processus sur la mémoire occupée, la part CPU utilisée, la commande, etc.

  • iftop (à installer) : visualise le trafic entre la machine et l’extérieur avec affichage des hôtes distants et des ports ; à coupler avec la commande netstat -antu.

  • ifstat : variante montrant des statistiques d’activités des interfaces réseau. 

  • tload : montre un graphe de la charge moyenne du système (il faut patienter un peu).

D’autres commandes plus spécialement employées pour la maintenance du système seront vues dans un autre chapitre. Sur le système Burinux, le gestionnaire des tâches montre aussi diverses informations pour le suivi des ressources :

images/imgCH09_01.png

1. NetData : un exemple de monitoring en temps réel

Pour des serveurs nécessitant un suivi de performances en temps réel, l’outil de monitoring NetData, utilisable sur Debian, offre plusieurs fonctionnalités répondant à ce besoin. Le site du projet (https://github.com/firehol) montre en plus d’autres outils intéressants :

images/imgCH09_02.png

a. Caractéristiques...