Activer la fonction Server-Status sur un serveur Apache CentOS.

La fonction Server-Status est activée par défaut sous CentOS et permet de générer des statistiques de surveillance de son serveur Apache ainsi que ses modules. Il est indispensable de la paramétrer correctement pour surveiller efficacement son serveur LAMP par exemple.

A quoi sert la fonction Server-Status d’un serveur Apache ?

A partir d’une page web de votre serveur Apache vous pourrez consulter les informations ci-dessous très utile pour surveiller les problèmes de surconsommation de ressources de certains scripts :

  • Le nombre de processus servant les requêtes
  • Le nombre de processus inactifs
  • L’état de chaque processus, le nombre de requêtes qu’il a traitées et le nombre total d’octets qu’il a servis
  • Le nombre total d’accès effectués et d’octets servis
  • Le moment où le serveur a été démarré/redémarré et le temps écoulé depuis
  • Les valeurs moyennes du nombre de requêtes par seconde, du nombre d’octets servis par seconde et du nombre d’octets par requête
  • Le pourcentage CPU instantané utilisé par chaque processus et par l’ensemble des processus
  • Les hôtes et requêtes actuellement en cours de traitement
Information!!! Ce tutoriel ce déroule sur Centos avec un serveur LAMP.

Etape 1 : Modification dans le fichier httpd.conf.

vim /etc/httpd/conf/httpd.conf

La première chose à faire c’est de vérifier que la ligne ci-dessous soit décommentée (elle permet d’afficher un rapport détaillé)

ExtendedStatus On

Décommenter la ligne ExtendedStatus On dans le fichier httpd.conf du serveur Apache

Puis rechercher le bloc suivant pour décommenter les lignes ci-dessous :

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .exemple.com 127.0.0.1 83.200.160.135
</Location>

Modification du fichier httpd.conf pour activer la fonction Server-Status du serveur Apache

La ligne Deny from all, permet de refuser l’accès à tout le monde. La ligne Allow from permet d’autoriser explicitement des IP à accéder à cette page de statistique. Pour le tutoriel tout le monde aura accès à cette page (Allow from all).

Astuce!!! Pour faire une recherche dans un fichier à l’aide de l’éditeur Vim, il suffit de taper / suivi du mot à rechercher. Si vous appuyer sur N vous allez directement sur le mot recherché. Pour annuler le surlignage des termes recherchés utiliser le terme suivant nohlsearch.

Faire une recherche dans Vim

Il est ensuite nécessaire de redémarrer le service Apache.

#service httpd reload

redémarrer le service httpd sous CentOS

Etape 2: Afficher et comprendre la page server-Status de votre serveur.

Pour afficher la page Server-Status de votre serveur, il suffit de rentrer dans un navigateur et de taper la ligne suivante :

http://votre-serveur/server-status

Pour une actualisation automatique de la page vous pouvez rajouter le paramètre refresh (en seconde) dans la ligne.

http://votre-serveur/server-status?refresh=10

Afficher et comprendre la page server-Status de votre serveur.

Dans la première partie de notre page (1) nous avons des indications sur le fonctionnement de notre serveur comme :

  • Que le serveur a été redémarré il y a 2heures 54 minutes
  • L’utilisation du processeur (moins de 1%)
  • Qu’il y a en moyenne sur le serveur 0,67 requêtes/seconde
  • Que le trafic est de 308 octets/seconde
  • Une requête fait en moyenne 4610 octets
  • Une requête en cours de traitement et 7 slots sont libres (pour des connexions futures).

Nous pourrons détecter ici si le serveur est surchargé par exemple.

La deuxième partie de notre page (2) affiche ensuite un tableau de caractères représentant chacun un slot (ou plutôt son état). Un « slot » Apache représente un des processus serveur dont la tâche est de répondre aux requêtes des navigateurs :

  • « _ » : Slot en attente de connexion (prête à recevoir un client)
  • « S » : Slot en cours de démarrage
  • « R » : Le slot lit la requête du client
  • « W » : Le slot envoie le résultat de la requête au client
  • « K » : Le slot est en attente d’une requête du même client (Keepalive)
  • « D » : Le slot effectue une requête DNS
  • « C » : Le slot ferme la connexion avec le client
  • « L » : Le slot écrit dans les fichiers de log (journaux)
  • « G » : Le slot « meurt » car inutile
  • « I » : Idle cleanup of worker
  • « . » : Aucune activité

Enfin la troisième partie de notre page (3) contient la liste des tâches effectuées par les slots Apache. Vous pouvez y voir les colonnes suivantes :

  • « PID » : Le PID système du processus Apache
  • « M » : Le statut du slot (Voir précédemment)
  • « CPU » : Le temps d’utilisation processeur pour exécuter la requête (en seconde)
  • « SS » : Le temps d’inactivité du slot depuis la dernière requête (en seconde)
  • « Req » : Le temps d’exécution de la dernière requête (en milliseconde)
  • « Slot » : Le nombre de Ko transféré par ce slot
  • « Client » : L’adresse IP du client (visiteur)
  • « VHost » : L’adresse du site Internet pour lequel la requête est exécutée
  • « Request » : La requête exécutée

Nous pourrons ici cibler précisément quel script tourne en boucle, connait des soucis de surconsommation de ressources, etc.

Etape 3: Pour aller plus loin.

Dans cette partie nous verrons comment protéger notre page server-status, mais aussi comment récupérer ces informations en ligne de commande.

Nous allons commencer notre série d’astuce par rajouter un peu plus de sécurité à cette page. Tout d’abord nous allons changer son adresse en modifiant la ligne :

<Location /server-status>

Par

<Location /nouvelle_adresse>
<Location /quicktutoriel-server-status>

modifier l'adresse de la page Server Status de votre serveur pour la protéger

N’oubliez pas de redémarrer le service httpd.

Si vous ne souhaitez pas mettre en place un filtrage par adresse IP on peut protéger cette page via un accès par mot de passe avec le fichier .htpasswd en rajoutant les lignes suivantes avant </Location> :

AuthUserFile "/var/www/.htpasswd"
AuthName "Veuillez vous identifier"
AuthType Basic
Require valid-user

Il ne vous reste plus qu’à créer le fichier .htpasswd dans le répertoire /var/www de votre installation par exemple.

Pour vous aider à remplir le fichier voici un site : Générer un fichier htpasswd qui génèrera automatiquement la ligne à rajouter pour votre utilisateur.

utiliser un site internet pour crypter les informations du fichier .htpasswd

Il suffit de rentrer votre login et password et de cliquer sur le bouton Crypter.

utiliser un site internet pour crypter les informations du fichier .htpasswd

Enfin si aucune de ces solutions ne vous convient, vous pouvez vérifier le comportement de votre serveur apache en visionnant ces informations en ligne de commande. Pour cela il faudra installer l’outil lynx.

#yum install lynx

Installer le navigateur en ligne de commande Lynx

Puis taper la ligne ci-dessous pour visualiser les statistiques de votre serveur Apache.

# lynx 

Visualiser les statistiques de votre serveur Apache en ligne de commande avec Lynx

Vous avez les mêmes indications que sur la page web.

Voilà nous venons de faire le tour de cette fonctionnalité bien pratique, qui permettra de vérifier que votre serveur Apache est bien opérationnel.

That’s All.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *