Suivre les logs systèmes en temps réel avec tail sous gnu/linux

Console - terminalUn atout dans les systèmes GNU/Linux, c’est principalement la « verbosité » du système.

Cela signifie, que lorsque vous avez un système GNU/Linux installé, soit sur votre machine, soit sur un serveur distant, vous pouvez consulter en temps réel les informations renvoyées par le système (dans une console / fenêtre terminal en local, ou connecté en SSH à un serveur distant).

Ce post s’adresse évidemment à un niveau plutôt débutant.

Les principales remontées d’informations sont les logs systèmes, le plus généralement inscrits dans le fichier /var/log/messages.

Pour suivre l’activité du fichier, vous allez pouvoir utiliser la commande « tail » comme ceci :

tail -f  /var/log/messages

Avec cette commande, les informations vont défiler automatiquement sur la sortie standard (votre console). Pour interrompre la consultation, pressez :
CTRL+C (les 2 touches en même temps).

Vous pouvez également conserver le processus actif, et reprendre la main sur la console, en plaçant le processus en arrière plan :
Lancement de la commande :

tail -f /var/log/messages

Presser CTRL+Z (passage en arrière plan, en pause)
Taper : bg
La tache reste active en arrière plan (background).

Vous noterez qu’après avoir pressé CTRL+Z, la tache est numérotée [1] (ici 1, la première en arrière plan), et se retrouve à l’état « Stopped ». C’est en tapant « bg » et en validant, que la tache devient active.
Vous pouvez ainsi taper d’autres commandes, tout en ayant la visibilité sur les logs. Notez que les logs s’affichent quoi que vous fassiez, ce qui peut parasiter si vous être en train de taper autre chose.

L’intérêt de la chose, est, par exemple, de pouvoir monitorer en temps réel plusieurs fichiers de log, et pouvoir agir.

Par exemple, je veux surveiller en même temps mes logs systèmes, et mes logs apache (serveur web httpd) lorsque je le relance pour voir si tout va bien.

On part du principe qu’on est connecté en root (ou sudo bash) dans le terminal :
Analyse des logs système :

tail -f /var/log/messages

Puis je presse CTRL+Z
Activation de la tâche en arrière plan :
taper : bg
Analyse simultanée des logs apache :

tail -f /var/log/httpd/error_log

Passage en arrière plan : CTRL+Z
Activation de cette autre tâche en arrière plan :
bg
(vous noterez le petit [2] indiquant qu’il s’agit de la deuxième tâche tournant en arrière plan).
Puis je relance mes services pour voir ce que ça donne :

/etc/init.d/httpd restart

(Vous aurez évidemment apache d’installé sur votre machine pour cet exemple !).

Vous verrez donc défiler les informations « habituelles » de redémarrage du service, et les logs générés par tout ceci.

Enfin, car vous allez en avoir besoin, il faut ramener les tâche en premier plan afin de pouvoir les interrompre !
Vous pouvez donc rappeler vos processus, soit simplement via la commande « fg » (foreground) comme ceci :

fg

Soit en appelant la commande voulue par son numéro :

fg 1

Puis il suffit de presser CTRL+C pour interrompre la tâche. Répétez la commande « fg » jusqu’à avoir le message :

bash: fg: current : tâche inexistante

C’est bon il ne reste aucun processus en arrière plan !

Ceci est évidemment utilisable avec tous les logs renvoyés par le système, que vous trouvez généralement dans le dossier /var/log.

S’il vous arrive par erreur d’utiliser la commande « tail » sur un binaire (un programme), l’environnement de votre console peut être « chamboulé » et les caractères affichés devenir illisibles. Dans ce cas, appuyez sur CTRL+C et tapez la commande

reset

(même si les caractères ne s’affichent pas correctement) et la situation devrait être rétablie.

J’espère que ce petit article pourra être utile à certains.

Source image : http://www.openclipart.org/detail/25561

Tags: , , , , , , , , , ,

mardi, novembre 2nd, 2010 Bash, GNU - Linux, Reseau, Technologie

5 Commentaires to Suivre les logs systèmes en temps réel avec tail sous gnu/linux

  • tresronours dit :

    Note, pour lister les processus en arrière plan et les identifier par leur numéro vous pouvez simplement utiliser la commande « jobs » qui va lister les processus par numero et par nom. 😀

  • tresronours dit :

    Autre note, si vous lancez un processus et que vous voulez le détacher complètement de votre tty (console/terminal) il y a l’instruction « disown » propre à BASH.

    En gros, vous lancez votre process en arrière-plan :

    ./mon_script_ou_programme.sh param1 param2 &

    Votre processus passe en arrière plan et son PID s’affiche (comme dans la liste des jobs). Il vous suffit donc de taper :

    disown xxxx

    (où xxxx est le PID de votre processus).

    Voilà, vous avez lâché un programme dans le cyber espace de votre système, en toute autonomie. Si vous fermez votre terminal le programme continuera à s’exécuter. Youpiii… ou pas.

    Si par erreur vous voulez vite l’arrêter car vous avez oublié un truc :

    ps aux|grep mon_script_ou_programme.sh

    Et vous récupérez le PID xxx, à tuer avec un petit :

    kill -9 xxx

    Fin du programme 😀

  • Teh dit :

    Salut ! Je sais que ce billet date un peu, mais je me permet tout de même d’intervenir, et ce sur deux points :
    1 – Pour surveiller le système et donc les logs, il est nécessaire d’appartenir au groupe adm ( « adm : Le groupe adm est utilisé pour les tâches de surveillance du système. » ). Ainsi un petit « adduser adm » permet un a utilisateur lambda l’accès (en lecture) aux logs du système, et évites par conséquent d’avoir à se logger en super-user.
    2 – J’utilise personnelement deux programmes : screen ( pas nécessaire d’être présenté je pense ) et multitail ( nom suffisament évocateur ? ). Multitails permet, au sein d’un(e) seul(e) terminal / console d’afficher plusieur logs, de la même façon que « tail -f /var/log/syslog » ( par exemple ).

    Sources :
    http://www.debian.org/doc/manuals/securing-debian-howto/ch11.fr.html ( section 11.1.12 pour les groupes )
    http://www.vanheusden.com/multitail/

    Voili voilou, c’est tout pour moi.
    Bonne continuation 😉

  • You can checkout dbitail.

    A Java tool I created, able to read local and distant log files using SSH. It is fairly simple to use.

    Some more explanations: https://github.com/pschweitz/DBITail/wiki

    Just download version corresponding to your operating system, of native jar release executable within your Java Runtime (requires java 8_40 or higher):

    https://github.com/pschweitz/DBITail/releases

    You can find a complete documentation (embedded with and I Github’s page as well)

    Philippe

  • f4b1 dit :

    Merci pour ces différents conseils, je me suis empressé de mettre cette page en favoris car je dois malgré tout souvent faire appel à ces commandes et j’ai du mal à m’en souvenir à chaque fois …

    Alors cette petite page sur tail ne va pas me faire de mal 😀

  • Ajouter un commentaire


     
    novembre 2010
    L M M J V S D
    « Oct   Déc »
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
     

     
    Suivez moi sur twitter - follow me on twitter
    [FSF Associate Member]
     
    Free Software, Free Society
    VIRTUALISATION :
    Compacter une image virtualbox VDI
    Bon petit tutoriel esxi
    Marche d'appliances vmware
    Installer ESXi sur un disque IDE
    Installer ESXi 3.5 sur un disque USB
    Installer proxmox avec DRBD et migration / réplication à chaud
    Installer OSSEC avec VMware
    Information sur le VDI
    SECURITE - FIREWALL :
    Ouvrir des ports dynamiquement iptables - knockd
    Autre tres bon tuto knockd
    Docs Arp poisoning - Anglais
    Metasploit test de pénétration
    Zone H - sites piratés en temps réel
    Blog invisible things
    Tips protection sécurité wordpress
    Pfsense - distribution firewall opensource - adsl internet failover
    Iproute 2 mini how to - linux advanced routing
    ClearOS - la passerelle sécuritaire lan - wan
    HAUTE DISPONIBILITE :
    CDN - Accélération de la distribution de données
    drbd iscsi ocfs2 dm multipath tutoriel
    Load balancing LVS
    Load balancing opensource list
    HA-Proxy :
    HAproxy - http load balancer
    Simple tutoriel HAproxy
    HAproxy - debian tutoriel
    Centos - Ip failover
    Configuratoin DM-Multipath Redhat
    VMware Doubletake - continuité
    Quelques liens sur la réplication MySQL : Manuel MySQL, chapitre sur la réplication
    Manuel MySQL, Tutoriel clair sur la mise en place
    Autre tuto sur la mise en place de la réplication MySQL
    Références pour optimisation du serveur MySQL
    Utilisation de EXPLAIN mysql pour optimiser vos bases
    optimiser vos bases - requetes et index
    STOCKAGE RESEAU :
    Un outil de clonage disque en reseau
    Internet NAS 250Go 250 accès VPN
    Server ISCSI avec Ubuntu tuto
    ISCSI centos redhat tutoriel
    Gérer et étendre un LVM
    Créer sa piratebox ! trop cool
    Deaddrops, les clés USB dans les murs, aussi cool !
    OPTIMISATION WORDPRESS :
    Télécharger Xenu
    Comment utiliser Xenu
    optimisation hébergement wordpress
    Super howto wordpress (En)
    Test de charge serveur web - Load impact
    VPN - ROUTEUR - LAN:
    Zeroshell - le mini-routeur wifi tout en un
    Retroshare, votre réseau d'échange crypté!
    Openvpn sur centos redhat
    Intégrer Linux dans active directory
    Routage inter-vlan avec Linux
    Routage avec OSPF
    Network Weathermap
    TENDANCES - WEB:
    Boutons twitter
    Analyser les tendances des recherches Google
    Protocole sitemap - robots.txt
    Creer des animations CSS3
    Code php pour interagir avec twitter
    E reputation
    Jquery
    TRUCS ET ASTUCES GNU/LINUX :
    Tuxmachines.org - Actus et tips linux
    Configurer GRUB2 et grub2 ici
    Panoet - en anglais - tips & tricks
    Readylines tips and trick pertinents
    Squid Clamav - proxy antivirus
    Apprendre Unix en 10 minutes
    13 tips sur les expressions régulières
    IE Sous linux IES
    LDAP 2.4 Quickstart guide
    Tutoriel LDAP
    Installation annuaire LDAP
    Serveur Mail Postfix - Dovecot - LDAP - MDS
    Créer un linux personnalisé en ligne - custom linux
    Super site sur linux - en
    Capistrano - déploiement automatisé
    MONITORING :
    Nagios tutoriel et doc
    Nagios plugin NRPE tuto
    Nagios plugin NRPE autre tuto
    Nagios plugin NRPE officiel
    Zabbix - fonctionnalités
    Zabbix - installation
    Guide MRTGsys - grapher la charge locale
    MRTGsys - ajouter des graphs
    MRTGsys - interpréter les données
    Shinken - Monitoring
    Thruk Monitoring webinterface
    Shinken - Tutoriel
    Shinken - Référence chez Nicolargo
    AUTRES LIENS :
    RemixJobs IT jobs
    USB Multiboot
    Reset mot de passe windows
    Java python et autres tips, intéressant !
    Forum inforeseau
    Open Clipart
    Excellent comic en ligne
    Inforeseau.fr
     
    Contrat Creative Commons
    This création is licensed under a Creative Commons Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France License.