Comme développeur web et administrateur d’un serveur web, il est primordial de faire le suivi du trafic et des performance de votre serveur web.
Ce article vous permettra d’approfondir les outils essentiels afin d’analyser les performances et le trafic de votre serveur Web. Il sera question des outils suivants :
- tail
- multitail
- apachetop
- top
- free
- watch
- nmon
- htop
- tload
Chaque utilitaire sera présenté et accompagné de quelques exemples d’utilisation.
Pré-requis
Afin d’expérimenter ces outils, il est conseillé d’avoir un serveur Web (Apache ou Nginx) en place et un accès SSH au serveur web.
Pour ma part, mon site est hébergé sur Digital Ocean. Un droplet Ubuntu a été créé et configuré avec un accès SSH ainsi qu’un serveur web Apache.
Utiliser l’hyperlien suivant afin d’obtenir 10$ de rabais sur votre hébergement Digital Ocean.
tail
tail pour queue, cet outil permet d’afficher la fin d’un fichier. Il est ainsi possible d’exécuter un tail sur un fichier log pour ainsi voir les deniers événements.
tail sur le fichier access.log
$ tail /var/log/apache2/access.log
tail sur le fichier error.log
$ tail /var/log/apache2/error.log
Mise à jour automatiquement de la commande tail
$ tail -f /var/log/apache2/error.log
Avec l’option -f, pour follow, tail affiche à l’écran les changements sur le fichier error.log.
multitail
multitail utilise l’outil tail et permet de suivre les changements sur plusieurs fichiers simultanément.
Installer multitail sur Ubuntu
$ sudo apt-get install multitail
multitail sur le fichier error.log et access.log
$ multitail -f /var/log/apache2/error.log -f /var/log/apache2/access.log
Avec l’option -f, il est possible de spécifier un nombre illimité de fichiers à suivre. Dans le cas précédent, l’écran du terminé sera séparé en deux pour afficher le contenu des deux fichiers.
Fusion de deux fichiers
$ multitail -i /var/log/apache2/error.log -I /var/log/apache2/access.log
Avec l’option -I, il est possible de fusionner la sortie des deux fichiers et éviter de séparer l’écran en deux.
Afficher les connexions actives avec netstat
$ multitail -R 2 -l "netstat -t tcp" /var/log/apache2/access.log
- -l permet d’afficher le résultat d’une commande (netstat)
- -R 2 lance la commande spécifiée à toutes les 2 secondes si la sortie a changée.
apachetop
apachetop est un outil d’analyse des logs pour Apache et Nginx utilise l’outil tail et permet de suivre les changements sur plusieurs fichiers simultanément.
Installer apachetop sur Ubuntu
$ sudo apt-get install apachetop
apachetop pour afficher les 100 derniers URL consultés
$ apachetop -H 100 /var/log/apache2/access.log
Avec l’option -H, il est possible de fouiller dans l’historique des dernière requêtes à votre serveur web et de les afficher.
Options utiles pour apachetop
Lors de l’exécution de apachetop, il est possible d’accéder à plusieurs options intéressantes
- touche h : affiche la fenêtre d’aide
- touche d : change de vue entre : URL, referer et host
La vue referer est particulièrement utile afin de connaître la provenance de votre trafic web.
Pourcentage des codes HTTP retournés (2xx 3xx 4xx 5xx)
Tout en haut de votre fenêtre, vous pourrez consulter les statistiques concernant les codes HTTP retournés à vos clients.
Exemple:
2xx: 33 (97.1%) 3xx: 1 ( 2.9%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%)
De cette manière, il est possible de constater que le serveur n’a pas retourné de code 4xx ou 5xx, donc aucune erreur serveur de lancée.
top
top permet d’afficher en temps réel la mémoire et le CPU utilisé par les processus de votre serveur web.
$ top
Options utiles pour top
Lors de l’exécution de top, il est possible d’accéder à plusieurs options intéressantes :
- touche h : affiche la fenêtre d’aide
- touche L : pour locate, cela permet de recherche des chaînes dans la sortie de top. Il est intéressant d’exécuter un locate sur la chaîne « apache2 » afin d’identifier clairement si votre serveur est actif.
- touche w : sauvegarde la configuration actuelle
- touche b : met en gras des certains éléments
free
La commande free affiche la mémoire vive disponible. Un manque de mémoire vive pourrait faire planter votre serveur. Si un partition swap est disponible, les données normalement écrites en mémoire vive seront entreposées sur votre disque dur. Cela aura un impact négatif sur la performance de votre serveur web (même si un disque dur ssd est utilisé).
$ free -h
-h affiche les quantités en format human readable, donc facile à lire pour une personne.
Options utiles pour top
Lors de l’exécution de top, il est possible d’accéder à plusieurs options intéressantes :
- touche h : affiche la fenêtre d’aide
- touche L : pour locate, cela permet de recherche des chaînes dans la sortie de top. Il est intéressant d’exécuter un locate sur la chaîne « apache2 » afin d’identifier clairement si votre serveur est actif.
- touche w : sauvegarde la configuration actuelle
- touche b : met en gras des certains éléments
ps
La commande ps affiche les processus en cours d’exécution. Plusieurs options sont disponibles afin d’afficher les informations pertinents en fonction de vos besoins.
$ ps
Sélection des colonnes de ps
$ ps -e --format="cmd sz %mem %cpu time" --sort="%mem"
- -e : affiche tous les processus
- –format : spécifie les colonnes à afficher
- –sort : trie avec la colonne sélectionnée
ps en continue avec watch
Combiné avec la commande watch, il est possible de faire un mise à jour automatique de la commande ps. Le résultat ressemblera à la commande top.
$ watch 'ps -e --format="cmd sz %mem %cpu time" --sort -%mem'
nmon
La commande nmon affiche de façon graphique l’utilisateur du CPU, de la mémoire, du réseau.
Installer nmon
$ su apt-get install nmon
Lancer nmon
$ nmon
htop
La commande htop affiche de façon graphique l’utilisation du CPU, de la mémoire, du réseau.
Installer htop
$ su apt-get install htop
Lancer htop
$ htop
tload
La commande tload affiche de façon graphique l’utilisateur du CPU.
Lancer tload
$ tload
Exemple d’utilisation
landscape-sysinfo
La commande landscape-sysinfo affiche un résumé de l’état du système.
installer landscape-sysinfo
$ sudo apt-get install landscape-common
Exemple d’utilisation
$ landscape-sysinfo System load: 0.4 Processes: 81 Usage of /: 65.1% of 19.56GB Users logged in: 1 Memory usage: 41% IP address for eth0: 104.236.110.160 Swap usage: 0%
Références
- System monitor on the commande line
- http://linux.about.com/od/howtos/fl/Example-Uses-Of-The-Linux-ps-Command.htm
- http://go2linux.garron.me/apachetop-monitor-webserver-website-statics-apache-in-real-time/
Facebook Comments