<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
<!-- English Revision: 1873230 -->
<!-- French translation : Lucien GENTIS -->
<!-- Reviewed by : Vincent Deffontaines -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<modulesynopsis metafile="mod_status.xml.meta">

<name>mod_status</name>
<description>Fournit des informations sur les performances et l'activité
du serveur</description>
<status>Base</status>
<sourcefile>mod_status.c</sourcefile>
<identifier>status_module</identifier>


<summary>
    <p>Le module Status permet à un administrateur de déterminer le
    niveau de performances de son serveur. Les statistiques instantanées
    du serveur sont présentées dans une page HTML sous une forme
    aisément lisible. Si nécessaire, cette page peut être configurée
    pour être automatiquement actualisée (sous réserve de
    compatibilité du navigateur). Une autre page fournit l'état
    instantané du serveur sous la forme d'une simple liste lisible par
    une machine.</p>

    <p>Les détails fournis sont :</p>

    <ul>
      <li>Le nombre de processus servant les requêtes</li>

      <li>Le nombre de processus inactifs</li>

      <li>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 (*)</li>

      <li>Le nombre total d'accès effectués et d'octets servis (*)</li>

      <li>Le moment où le serveur a été démarré/redémarré et le temps
      écoulé depuis</li>

      <li>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 (*)</li>

      <li>Le pourcentage CPU instantané utilisé par chaque processus et
      par l'ensemble des processus (*)</li>

      <li>Les hôtes et requêtes actuellement en cours de traitement
      (*)</li>
    </ul>

    <p>Les lignes se terminant par "(*)" ne sont disponibles que si la
    directive <directive module="core">ExtendedStatus</directive>
    est définie à <code>On</code>. Depuis la version
    2.3.6, le chargement de mod_status définit automatiquement
    <directive module="core">ExtendedStatus</directive> à On.</p>

    <note>
      <strong>Important : lorsque <module>mod_status</module> est chargé, son
      gestionnaire sera disponible dans <em>tous</em> les fichiers de
      configuration, y compris ceux concernant un répertoire (comme les fichiers
      <code>.htaccess</code>). Ce comportement doit donc être pris en compte pour la
      gestion de la sécurité de votre site.</strong>
    </note>
</summary>

<section id="enable">
    <title>Activation du rapport d'état</title>

    <p>Pour n'activer les rapports d'état que pour les navigateurs
    appartenant au domaine example.com, ajoutez ces lignes à votre
    fichier de configuration <code>httpd.conf</code> :</p>
<highlight language="config">
&lt;Location "/etat-serveur"&gt;
    SetHandler server-status
    Require host example.com
&lt;/Location&gt;
</highlight>

    <p>Il est alors possible d'obtenir les statistiques du serveur en
    utilisant un navigateur web et en accédant à la page
    <code>http://votre.serveur/etat-serveur</code>.</p>
</section>

<section id="autoupdate">

    <title>Actualisation automatique</title>
    <p>Vous pouvez faire en sorte que cette page d'état s'actualise
    elle-même automatiquement si votre navigateur supporte "refresh".
    Pour ce faire, accédez à la page
    <code>http://votre.serveur/etat-serveur?refresh=N</code>, pour que
    cette dernière soit actualisée toutes les N secondes.</p>

</section>

<section id="machinereadable">

    <title>Fichier d'état lisible par une machine</title>
    <p>La page <code>http://votre.serveur/etat-serveur?auto</code>
    permet d'obtenir une version du fichier d'état lisible par une
    machine. Ceci s'avère intéressant dans le cadre d'une exécution
    automatique : voir le programme en Perl
    <code>log_server_status</code> situé dans le répertoire
    <code>/support</code> de votre distribution du serveur HTTP Apache.</p>

</section>

<section id="troubleshoot">
    <title>Utilisation de server-status pour la recherche de défauts de
    fonctionnement</title>

    <p>La page <code>server-status</code> peut servir de point de départ
    à la recherche de défauts de fonctionnement lorsque votre serveur
    mobilise toutes les ressources disponibles (CPU ou mémoire), pour
    identifier quels clients ou requêtes sont la cause du problème.</p>

    <p>Tout d'abord, assurez-vous que la directive <directive
    module="core">ExtendedStatus</directive> est bien définie à on, de
    façon à ce que vous puissiez avoir accès à toutes les informations à
    propos de la requête et du client pour chaque processus enfant ou
    thread.</p>

    <p>Consultez ensuite la liste des processus en cours (à l'aide de
    <code>top</code>, ou d'un utilitaire de listage des processus
    similaire), afin d'identifier les processus coupables. Triez
    l'affichage de <code>top</code> par utilisation CPU ou mémoire, en
    fonction du problème rencontré.</p>

    <p>Rechargez la page <code>server-status</code> et recherchez
    les identifiants des processus trouvés précédemment ; vous pourrez
    alors déterminer quelle requête est traitée par ces processus, pour
    quel client. Les requêtes peuvent apparaître de manière fugitive, et
    il se peut que vous deviez effectuer plusieurs essais avant de
    parvenir à les prendre en flagrant délit, pour ainsi dire.</p>

    <p>Cette procédure <em>devrait</em> vous permettre de cerner quel
    client, ou type de requête, sont à l'origine de vos problèmes de
    charge. Il est probable que vous identifiiez une application web au
    comportement anormal, ou un client en train d'attaquer votre site.</p>

</section>


</modulesynopsis>

