Recherche de site Web

Comment surveiller la charge du serveur Web Apache et les statistiques de page


Dans cet article, vous apprendrez à surveiller la charge et les requêtes du serveur Web Apache à l'aide du 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 permet de 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, notamment.

  • Nombre total de demandes entrantes
  • Nombre total d'octets et de comptes du serveur
  • L'utilisation du processeur du serveur Web
  • Charge du serveur
  • Disponibilité du serveur
  • Trafic total
  • Nombre total de travailleurs inactifs
  • PID avec les clients respectifs et bien d’autres.

Le projet Apache par défaut a rendu sa page de statistiques de serveur accessible au grand public. Pour avoir une démo de la page d’état du site Web très fréquenté, visitez.

  • https://status.apache.org/
Environnement de test

Nous avons utilisé l'environnement de test suivant pour cet article afin d'en savoir plus sur mod_status avec quelques exemples pratiques et captures d'écran.

  1. Système d'exploitation – CentOS 8/7
  2. Application – Serveur Web Apache
  3. Adresse IP – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Fichier de configuration Apache – /etc/httpd/conf/httpd.conf
  6. Port HTTP par défaut – 80 TCP
  7. Paramètres de configuration de test – httpd -t

Les conditions préalables pour ce didacticiel sont que vous sachiez déjà 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.

  1. Créez votre propre serveur Web et hébergez un site Web sous Linux

Comment activer mod_status dans Apache

L'installation par défaut d'Apache 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

Maintenant, recherchez à nouveau le mot « Location » 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 Location, SetHandler et les restrictions de répertoire en fonction de vos besoins. Par exemple, je garde les choses simples avec Order Allow, deny 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 
    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 le statut étendu

Les paramètres « ExtendedStatus » ajoutent plus d'informations à la page de statistiques, telles que l'utilisation du processeur, la requête par seconde et le trafic total. , etc. Pour l'activer, éditez le même fichier httpd.conf et recherchez le mot « Extended », 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émarrer Apache

Assurez-vous maintenant que vous avez correctement activé et configuré la page d'état du serveur Apache. Vous pouvez également rechercher les erreurs dans la configuration httpd.conf à l'aide de la commande suivante.

[root@tecmint ~]# httpd -t

Syntax OK

Une fois que la syntaxe est 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 d'état 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 qu'une interface HTML, qui affiche toutes les informations sur la disponibilité du serveur, l'ID de processus avec son respectif client, la page à laquelle il tente 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 actualiser la page toutes les secondes (disons 5 secondes) pour voir les statistiques mises à jour. Pour définir l'actualisation automatique, veuillez ajouter « ?refresh=N » à la fin de l'URL. Où N peut être remplacé par le nombre de secondes pendant lesquelles vous souhaitez que votre page soit actualisée.

http://serveripaddress/server-status/?refresh=5

Affichage de la page d'état de la ligne de commande

Vous pouvez également afficher la page d'état d'Apache à partir de l'interface de ligne de commande à l'aide des navigateurs de ligne de commande spéciaux appelés liens ou lynx. Vous pouvez les installer à l'aide de l'utilitaire de gestion de packages par défaut appelé yum, comme indiqué ci-dessous.

yum install links

OR

yum install lynx

Une fois que vous avez installé le, 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
Exemple de sortie
                     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 lui-même les problèmes. Pour plus d'informations, lisez la page d'état qui peut vous aider à devenir un administrateur de serveur Web plus performant.

  1. Apache mod_status Page d'accueil

C'est tout pour mod_status pour l'instant, nous proposerons d'autres trucs et astuces sur Apache dans les prochains tutoriels. D'ici là, restez Geeky et à l'écoute de linux-console.net et n'oubliez pas d'ajouter vos précieux commentaires.