Dans cet article, vous apprendrez comment surveiller la charge et les requêtes du serveur web Apache en utilisant le module mod_status dans vos distributions Linux telles que CentOS, RHEL et Fedora.
Qu’est-ce que mod_status?
mod_status est un module Apache qui aide à surveiller la charge du serveur Web et les connexions httpd actuelles avec une interface HTML accessible via un navigateur Web.
Le mod_status d’Apache affiche une page HTML simple contenant des informations sur les statistiques actuelles du serveur Web, y compris:
- Nombre total de requêtes entrantes
- Nombre total d’octets et de comptes serveur
- Utilisation du processeur du serveur Web
- Charge du serveur
- Temps de disponibilité du serveur
- Trafic total
- Nombre total de travailleurs inactifs
- PIDs avec les clients respectifs et bien d’autres encore.
Le projet Apache par défaut a activé sa page de statistiques de serveur pour le grand public. Pour voir une démo de la page d’état d’un site Web occupé, visitez:
Environnement de test
Nous avons utilisé l’environnement de test suivantEnvironnement de test pour cet article afin d’explorer davantage mod_status avec quelques exemples pratiques et captures d’écran.
- Système d’exploitation – CentOS 8/7
- Application – Serveur Web Apache
- Adresse IP – 5.175.142.66
- Répertoire des documents – /var/www/html
- Fichier de configuration Apache – /etc/httpd/conf/httpd.conf
- Port HTTP par défaut – 80 TCP
- Tester les paramètres de configuration – httpd -t
Les prérequis pour ce tutoriel sont que vous devriez déjà savoir comment installer et configurer un Serveur Apache de base. Si vous ne savez pas comment configurer Apache, lisez l’article suivant qui pourrait vous aider à configurer votre propre Serveur Web Apache.
Comment activer mod_status dans Apache
L’installation Apache par défaut est livrée avec mod_status activé. Sinon, assurez-vous de l’activer dans le fichier de configuration Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
Recherchez le mot « mod_status » ou continuez à faire défiler vers le bas jusqu’à ce que vous trouviez une ligne contenant.
#LoadModule status_module modules/mod_status.so
Si vous voyez un caractère ‘#‘ au début de « LoadModule », cela signifie que mod_status est désactivé. Supprimez le ‘#‘ pour activer mod_status.
LoadModule status_module modules/mod_status.so
Configurer mod_status
Recherchez à nouveau le mot « Emplacement » ou faites défiler vers le bas jusqu’à ce que vous trouviez une section pour mod_status qui devrait ressembler à ce qui suit.
# Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com #</Location>
Dans la section ci-dessus, décommentez les lignes pour la directive Emplacement, SetHandler, et les restrictions de répertoire selon vos besoins. Par exemple, je le garde simple avec l’ Ordre Autoriser, interdire et c’est autorisé pour tous.
<Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location>
Remarque: La configuration ci-dessus est la configuration par défaut pour le site web Apache par défaut (site web unique). Si vous avez créé un ou plusieurs Hôtes Virtuels Apache, la configuration ci-dessus ne fonctionnera pas.
Donc, fondamentalement, vous devez définir la même configuration pour chaque hôte virtuel pour tous les domaines que vous avez configurés dans Apache. Par exemple, la configuration de l’hôte virtuel pour mod_status ressemblera à ceci.
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/example.com ServerName example.com ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common <Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from example.com </Location> </VirtualHost>
Activer ExtendedStatus
Les paramètres “ExtendedStatus” ajoutent plus d’informations à la page de statistiques comme utilisation du CPU, requêtes par seconde, trafic total, etc. Pour l’activer, éditez le même fichier httpd.conf et recherchez le mot “Extended” et décommentez la ligne et définissez le statut “On” pour la directive ExtendedStatus.
# ExtendedStatus controls whether Apache will generate "full" status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the "server-status" handler is called. The default is Off. # ExtendedStatus On
Redémarrez Apache
Assurez-vous maintenant d’avoir correctement activé et configuré la page de statut du serveur Apache. Vous pouvez également vérifier les erreurs dans la configuration httpd.conf en utilisant la commande suivante.
[root@tecmint ~]# httpd -t Syntax OK
Une fois que vous avez la syntaxe OK, vous pouvez redémarrer le service httpd.
[root@tecmint ~]# service httpd restart OR [root@tecmint ~]# systemctl restart httpd Stopping httpd: [ OK ] Starting httpd: [ OK ]
Accéder à la page mod_status
La page de statut d’Apache sera accessible via votre nom de domaine avec « /server-status » aux URL suivantes.
http://serveripaddress/server-status OR http://serev-hostname/server-status
Vous verrez quelque chose de similaire à la page suivante avec ExtendedStatus activé.

Dans l’instantané ci-dessus, vous pouvez voir une interface HTML, qui montre toutes les informations sur le temps de disponibilité du serveur, l’ID du processus avec son client respectif, la page à laquelle ils essaient d’accéder.
Il montre également la signification et l’utilisation de toutes les abréviations utilisées pour afficher le statut, ce qui nous aide à mieux comprendre la situation.
Vous pouvez également rafraîchir la page toutes les secondes (disons 5 secondes) pour voir les statistiques mises à jour. Pour définir le rafraîchissement automatique, veuillez ajouter « ?refresh=N » à la fin de l’URL. Où N peut être remplacé par le nombre de secondes que vous souhaitez pour le rafraîchissement de votre page.
http://serveripaddress/server-status/?refresh=5

Affichage de la page de statut en ligne de commande
Vous pouvez également afficher la page de statut d’Apache à partir de l’interface en ligne de commande en utilisant les navigateurs en ligne de commande spéciaux appelés links ou lynx. Vous pouvez les installer en utilisant l’utilitaire de gestion de paquets par défaut appelé yum comme indiqué ci-dessous.
# yum install links OR # yum install lynx
Une fois que vous les avez installés, vous pouvez obtenir les mêmes statistiques sur votre terminal en utilisant la commande suivante.
[root@tecmint ~]# links http://serveripaddress/server-status OR [root@tecmint ~]# lynx http://serveripaddress/server-status OR [root@tecmint ~]# /etc/init.d/httpd fullstatus
Apache Server Status for localhost Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 Server Built: Aug 13 2013 17:29:28 -------------------------------------------------------------------------- Current Time: Tuesday, 14-Jan-2014 04:34:13 EST Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST Parent Server Generation: 0 Server uptime: 4 hours 1 minute 7 seconds Total accesses: 2748 - Total Traffic: 9.6 MB CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load .19 requests/sec - 695 B/second - 3658 B/request 1 requests currently being processed, 4 idle workers .__.__W... Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of a worker, "." Open slot with no current process Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-0 - 0/0/428 . 0.30 5572 0 0.0 0.00 1.34 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 1-0 5606 0/639/639 _ 0.46 4 0 0.0 2.18 2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 2-0 5607 0/603/603 _ 0.43 0 0 0.0 2.09 2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 3-0 - 0/0/337 . 0.23 5573 0 0.0 0.00 1.09 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 4-0 5701 0/317/317 _ 0.23 9 0 0.0 1.21 1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 5-0 5708 0/212/213 _ 0.15 6 0 0.0 0.85 0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 6-0 5709 0/210/210 W 0.16 0 0 0.0 0.84 0.84 127.0.0.1 5.175.142.66 GET /server-status HTTP/1.1 7-0 - 0/0/1 . 0.00 5574 0 0.0 0.00 0.00 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 -------------------------------------------------------------------------- Srv Child Server number - generation PID OS process ID Acc Number of accesses this connection / this child / this slot M Mode of operation CPU CPU usage, number of seconds SS Seconds since the beginning of the most recent request Req Milliseconds required to process most recent request Conn Kilobytes transferred this connection Child Megabytes transferred this child Slot Total megabytes transferred this slot -------------------------------------------------------------------------- Apache/2.2.15 (CentOS) Server at localhost Port 80
Conclusion
Le module mod_status d’Apache est un outil de surveillance très pratique pour surveiller les performances de l’activité d’un serveur web et peut mettre en évidence les problèmes lui-même. Pour plus d’informations, consultez la page d’état qui peut vous aider à devenir un administrateur de serveur web plus performant.
C’est tout pour le mod_status pour le moment, nous reviendrons avec quelques astuces et conseils sur Apache dans de futurs tutoriels. D’ici là, restez Geeky et connecté à Tecmint.com et n’oubliez pas d’ajouter vos précieux commentaires.
Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/