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.

https://m.do.co/c/980579ade489

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.

multitail example

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.

apachetop exemple
apachetop host exemple
apachetop exemple

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

free commande

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'

bash ps

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

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

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/

Comments

comments