HTTPd de surveillance

Vous pouvez surveiller de manière exhaustive votre serveur HTTPd et votre site IBM HTTP Server à l'aide de Instana afin d'identifier les goulots d'étranglement et d'optimiser ses performances.

Une fois l 'agent hôte d' Instana s installé, le capteur d' HTTPd s est automatiquement installé. Vous pouvez ensuite configurer le serveur d' HTTPd s et activer le traçage afin de consulter les métriques et les traces liées à l' Apache dans l'interface utilisateur d' Instana.

Informations de support

Pour vous assurer que le capteur et le traceur d' HTTPd s sont compatibles avec votre configuration actuelle, consultez les sections d'informations d'assistance suivantes :

Systèmes d'exploitation pris en charge

Les systèmes d'exploitation pris en charge par le capteur d' HTTPd s sont conformes aux exigences des agents hôtes. Vous pouvez consulter la section « Systèmes d'exploitation pris en charge » de chaque agent hôte, par exemple « Systèmes d'exploitation pris en charge pour Unix ».

Configuration

Le fichier de configuration principal du serveur HTTPd se trouve dans /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf, ou /etc/apache2/httpd.conf. L'emplacement exact du fichier de configuration utilisé est disponible:

  • Dans les arguments de processus: -d spécifie le répertoire racine et -f le fichier de configuration.
  • Dans la sortie apachectl -V : HTTPD_ROOT= et SERVER_CONFIG_FILE=.

Debian Les utilisateurs appliquent les modifications dans le fichier de configuration du module dédié, qui se trouve à l'emplacement /etc/apache2/mods-enabled/status.conf, plutôt que dans le fichier de configuration principal HTTPd.

Vous devez apporter les modifications suivantes au fichier de configuration HTTPd :

  • Activez la page d'état du serveur à l'adresse HTTPd/server-status.
  • Chargez la fonction status_module(mod_status) pour consulter les statistiques du serveur web HTTPd.
  • Affichez les métriques détaillées du trafic, du trafic par demande et de l'UC en activant le ExtendedStatus.
<Location /server-status>
    SetHandler server-status
</Location>
LoadModule status_module lib/httpd/modules/mod_status.so
ExtendedStatus On
 

Placez la server-status configuration au début de votre fichier de configuration HTTPd.

Vous pouvez rechercher des erreurs dans votre fichier de configuration à l'aide de la commande suivante:

apachectl configtest
 

Redémarrez pour appliquer les modifications sans interrompre les connexions actives ( apachectl -k graceful ou service apache2 graceful).

Le capteur « Instana » récupère automatiquement la configuration depuis HTTPd; il n'est pas nécessaire de redémarrer l'agent. Par conséquent, vous pouvez choisir n'importe quel emplacement pour la page de statut. Les redirections ne sont pas suivies pour des raisons de performances.

Si le statut URL est protégé, vous devez fournir des données d'authentification de base dans le fichier de configuration de l'agent <agent_install_dir>/etc/instana/configuration.yml:

com.instana.plugin.httpd:
  user: ''
  password: ''
 

Affichage des mesures

Pour afficher les métriques, procédez comme suit:

  1. Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
  2. Cliquez sur un hôte surveillé spécifique.

Vous pouvez ensuite voir un tableau de bord hôte avec toutes les métriques collectées et les processus surveillés.

Données de configuration

Le capteur Apache HTTPd recueille les métriques suivantes auprès du serveur HTTPd :

Métrique Description
ID du processus Identifiant du processus principal d' HTTPd
Version Version du serveur HTTPd
Architecture Architecture du processeur sur laquelle le serveur fonctionne
Démarre à Date et heure du lancement du processus d' HTTPd
Nombre maximal de workers Nombre maximal de threads de travail pouvant traiter des requêtes simultanément
MPM Module de multitraitement (MPM) qui définit le modèle de gestion des requêtes
Écouter Port ou ports sur lesquels le serveur HTTPd est à l'écoute
Modules Liste des modules actuellement chargés sur le serveur HTTPd

Métriques de performance

Le tableau suivant répertorie les indicateurs de performance recueillis auprès du serveur HTTPd :

Métrique Description
Demandes Nombre d'accès au serveur HTTPd
Trafic Nombre de kBytes servis
Noeuds workers occupés Nombre d'unités d'exécution et de processus de travail occupés
Nombre de connexions Nombre total de connexions (uniquement avec Events MPM et Apache 2.3)
Ecriture asynchrone Nombre de connexions asynchrones à l'état d'écriture (uniquement avec Events MPM et Apache 2.3)
Signal de présence asynchrone Nombre de connexions asynchrones à l'état de signal de présence (uniquement avec Event MPM et Apache 2.3)
Fermeture asynchrone Nombre de connexions asynchrones à l'état fermé (uniquement avec les événements MPM et Apache 2.3)
Noeuds workers En attente, Démarrage, Lecture, Ecriture, keepalive, Dns, Fermeture, Journalisation, Gracieux, Inactif
Charge UC L'utilisation actuelle du processeur du serveur HTTPd, exprimée en pourcentage
Trafic par demande Octets transférés par demande

Le tableau suivant présente les différents statuts des travailleurs surveillés depuis le serveur HTTPd :

Type de travailleur Description
En attente Nombre de travailleurs inactifs en attente de nouvelles demandes
Démarrage Nombre d'employés qui se préparent à commencer le traitement des demandes
Lecture Nombre de travailleurs qui lisent les en-têtes ou le corps des requêtes provenant des clients
Ecriture Nombre de collaborateurs qui répondent au client
Connexion active Nombre de processus en attente sur des connexions Keep-Alive
DNS Nombre de travailleurs effectuant des requêtes « DNS » pour les noms d'hôte des clients
En cours de fermeture Nombre de processus qui ferment les connexions client après le traitement des requêtes
Journalisation Nombre de travailleurs qui rédigent des journaux après avoir terminé le traitement des requêtes
Correctement Nombre de processus ayant terminé leur exécution et s'arrêtant normalement
En veille Nombre de travailleurs inactifs chargés de libérer les ressources inutilisées

Signatures d'intégrité

Pour chaque détecteur, il existe une base de connaissances organisée des signatures de santé qui sont évaluées en continu par rapport aux métriques entrantes et qui sont utilisées pour soulever des problèmes ou des incidents, qui dépendent de l'impact sur l'utilisateur.

Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures de santé défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique à une entité donnée.

Pour plus d'informations sur les événements intégrés du capteur « HTTPd », consultez la référence des événements intégrés.

Traçage

Vous devez installer et configurer le traçage d' HTTPd s afin de collecter les traces provenant du serveur HTTPd.

Prérequis

Installez les packages redistribuables Visual C++ pour Visual Studio 2015-2022 avant d'activer le traçage d' HTTPd s sur Windows.

Veillez à installer le Runtime d' XL C/C++ pour AIX 16.1.0 Fix Pack 7 ou une version ultérieure sur AIX 7.2, qui comprend l'ensemble de fichiers libc++.rte, avant d'activer le traçage HTTPd.

Vous pouvez vérifier l'installation de l'ensemble de fichiers libc++.rte à l'aide de la commande suivante:

lslpp -l |grep libc++.rte
 

Installation

La fonction de traçage HTTPd est désactivée par défaut. Lorsque le traçage d' HTTPd s est activé comme décrit dans la section « Activer le traçage », le capteur HTTPd télécharge automatiquement la dernière version du module de traçage HTTPd. La configuration du traçage se trouve à l'adresse <agent_install_dir>/etc/instana/configuration.yaml, et la version actuelle de l'agent Instana contient un exemple des paramètres de configuration disponibles.

Installation manuelle

Si le serveur HTTPd fonctionne avec des privilèges limités en lecture seule dans un environnement conteneurisé, l'installation automatique du module de traçage HTTPd ne fonctionne pas dans ce cas. Vous pouvez installer manuellement le module de traçabilité d' HTTPd. en suivant les étapes suivantes :

  1. Obtenez les modules appropriés pour votre version d' HTTP Server .
  2. Copiez les modules dans votre dossier de modules HTTP Server .
  3. Chargez les modules dans votre fichier de configuration d' HTTPd.
Télécharger les modules

Les liens de téléchargement des modules pour les versions prises en charge du serveur HTTP sont disponibles sur la page « Modules de traçage » du site HTTPd.

Copier les modules

Les deux modules téléchargés à l'étape précédente doivent être placés dans un dossier contenant d'autres modules HTTP et doivent disposer des droits d'accès aux fichiers associés. Pour les versions du module antérieures à l' 1.0.7, le fichier tracelibrary_x86_64-1.0.7.so doit être renommé en tracelibrary.so.

Charger les modules

Créez un fichier nommé instana_tracing.conf au même emplacement que le fichier de configuration HTTPd (par exemple /etc/httpd/conf/httpd.conf). Le contenu du fichier peut ressembler à ce qui suit:

LoadModule dem_module /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so
 

Ensuite, ajoutez une ligne dans le fichier de configuration d' HTTPd. pour inclure le fichier instana_tracing.conf.

Include /etc/httpd/conf/instana_tracing.conf
 

Configuration

Voici la liste des paramètres de configuration de traçage d' HTTPd s disponibles dans le configuration.yaml fichier de l'agent Instana :

# Apache Httpd
#com.instana.plugin.httpd:
#  tracing:
#    # Enabling tracing will automatically download the HTTPd Tracing module and
#    # load it in your Apache configuration file. You will need to manually restart
#    # Apache HTTP Server unless you specify a restart script in notificationScript
#    # or enable autoRestart. Disabling tracing will not remove the HTTPd Tracing module.
#    # It will only remove the tracing module config from the Apache configuration file.
#    enabled: false
#    # Pins the HTTPd Tracing module to download and install to a specific version.
#    # This can be used to rollback to previous versions of the module or to test
#    # beta versions (when asked to do so). Expects the version to be given as
#    # major.minor.patch format, e.g. 1.0.0
#    pinModuleVersion: x.y.z
#    # The absolute path to the script to trigger whenever the sensor installed
#    # a different version of the HTTPd Tracing module than is currently installed.
#    # Works for upgrades and downgrades. Default is empty.
#    notificationScript: /path/to/restart_apache.sh
#    # Enabling auto-restart will let the sensor attempt a graceful restart of your
#    # Apache HTTP Server to load the updated HTTPd Tracing module into memory.
#    # If you specify a notificationScript, then the sensor will ignore autoRestart setting
#    # unless the execution of.notificationScript failed.
#    autoRestart: false
 

Activer le traçage

Ouvrez <agent_install_dir>/etc/instana/configuration.yaml à l'aide d'un éditeur de texte. Les entrées sont de nature similaire:

#com.instana.plugin.httpd:
#  tracing:
#    enabled: false
 

Supprimez la mise en commentaire de ces lignes et remplacez enabled: false par enabled: true.

com.instana.plugin.httpd:
  tracing:
    enabled: true
 

Si le redémarrage automatique n'est pas configuré, vous devez redémarrer manuellement HTTP Server pour charger le module de traçage HTTPd en mémoire.

Désactiver la fonction de trace

Ouvrez <agent_install_dir>/etc/instana/configuration.yaml à l'aide d'un éditeur de texte. Remplacez enabled: true par enabled: false. La fonction de trace des remarques est désactivée par défaut, par conséquent, la mise en commentaire de cette ligne est la même. Après la modification, les entrées doivent ressembler au code suivant:

com.instana.plugin.httpd:
  tracing:
    enabled: false
 

Si le redémarrage automatique n'est pas configuré, vous devez redémarrer manuellement HTTP Server pour décharger le module de traçage HTTPd de la mémoire.

Epinglage de la version

Le module de traçage « HTTPd » à télécharger et à installer peut être associé à une version spécifique. Si cette ligne pinModuleVersion: x.y.z est commentée, la version actuelle du module de traçage d' HTTPd est téléchargée et installée.

Remplacez x.y.z par la version de module spécifiée à la ligne pinModuleVersion: x.y.z dans <agent_install_dir>/etc/instana/configuration.yaml. Après la modification, les entrées doivent ressembler au code yaml suivant:

com.instana.plugin.httpd:
  tracing:
    enabled: true
    pinModuleVersion: 1.0.8
 

Si les modules de traçage d' HTTPd s sont téléchargés et installés manuellement, la valeur de pinModuleVersion la configuration doit correspondre à la version des modules téléchargés.

Redémarrage automatique

Lorsque le traçage est activé (comme indiqué dans « Activer le traçage »), le capteur « HTTPd » télécharge et installe automatiquement le module de traçage « HTTPd » adapté à votre configuration « HTTP Server ». De plus, le capteur pourrait alors tenter un redémarrage en douceur (apachectl -k graceful) de votre HTTP Server. Un redémarrage en douceur charge le module de traçage d' HTTPd s en mémoire sans redémarrer le processus maître. Il fonctionne donc même lorsque le processus s'exécute en tant que PID 1 à l'intérieur du conteneur.

Vous pouvez activer ou désactiver le redémarrage automatique en configurant le paramètre de configuration autoRestart dans <agent_install_dir>/etc/instana/configuration.yaml. Par exemple, le paramètre suivant active le redémarrage automatique:

com.instana.plugin.httpd:
  tracing:
    enabled: true
    autoRestart: true
 

Vous pouvez également modifier la manière dont le capteur « HTTPd » tente de redémarrer votre environnement « HTTP Server » via le notificationScript paramètre de configuration. Ce paramètre accepte un chemin d'accès absolu vers un script shell exécutable. Si votre HTTP Server s'exécute dans un conteneur, il s'agit du chemin absolu au sein du conteneur. Ce script se déclenche chaque fois que le capteur détecte une version du module de traçabilité « HTTPd » différente de celle qui est installée. Lorsque ce script est configuré et exécuté avec succès, il remplace le mécanisme par défaut pour le redémarrage automatique.

Remarque : si les modules de traçage d' HTTPd s sont téléchargés et installés manuellement, le redémarrage automatique doit être désactivé dans les paramètres autoRestart de configuration et le paramètre de configuration doit notificationScript être commenté. Vous devez redémarrer manuellement HTTP Server pour charger ou décharger le module de traçage HTTPd.

HTTPd dans la prise en charge du traçage des conteneurs sans racine Podman

Pour collecter des métriques et des traces à partir d' HTTPd s s'exécutant dans un conteneur « rootless » Podman, vous devez maintenir la communication réseau entre l'agent Instana et le réseau du conteneur « rootless » Podman.

Suppression du module de traçage d' HTTPd

HTTPd Le module de traçage peut être désinstallé manuellement en suivant les étapes suivantes :

  1. Placez-le instana_tracing.conf au même emplacement que le fichier de configuration HTTPd (par exemple /etc/httpd/conf/httpd.conf). Récupérez le chemin d'accès absolu du module de traçage HTTPd à partir du contenu de instana_tracing.conf. Par exemple, le contenu du fichier peut ressembler au code suivant:

    LoadModule dem_module /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so
     

    Le module de traçage de l' HTTPd, quant à lui, se trouve à l'adresse /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so.

  2. Désactiver le traçage d' HTTPd, comme dans « Désactiver le traçage ».

  3. Retirez le module de traçage « HTTPdmod_dem_[arch]-[version].so » (par exemple, /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so) et tracelibrary_[arch]-[version].so placez-le au même emplacement (par exemple, /usr/lib64/httpd/modules/tracelibrary_x86_64-1.0.8.so).