Überwachung von HTTPd

Sie können Ihren Apache HTTPd-Server und IBM HTTP Server mit Instana umfassend überwachen, um Engpässe zu erkennen und die Leistung zu optimieren.

Nachdem Sie den Instana-Host-Agenten installiert haben, wird der Sensor Apache HttPd automatisch installiert. Sie können dann den HTTPd-Server konfigurieren und die Ablaufverfolgung aktivieren, um Apache -bezogene Metriken und Ablaufverfolgungen in der Instana-Benutzeroberfläche anzuzeigen.

Unterstützungsinformationen

Um sicherzustellen, dass der Apache HTTPd-Sensor und Tracer mit Ihrer aktuellen Einrichtung kompatibel ist, lesen Sie die folgenden Abschnitte mit Support-Informationen:

Unterstützte Betriebssysteme

Die von Apache HTTPd Sensor unterstützten Betriebssysteme entsprechen den Anforderungen der Host-Agenten. Sie können dies im Abschnitt Unterstützte Betriebssysteme des jeweiligen Host-Agenten überprüfen, z. B. Unterstützte Betriebssysteme für Unix.

konfigurieren

Die Hauptkonfigurationsdatei des HTTPd-Servers befindet sich unter /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf, oder /etc/apache2/httpd.conf. Der genaue Speicherort der verwendeten Konfigurationsdatei ist zu finden:

  • In den Prozessargumenten: -d gibt das Stammverzeichnis und -f die Konfigurationsdatei an.
  • In der Ausgabe apachectl -V : HTTPD_ROOT= und SERVER_CONFIG_FILE=.

Debian benutzer wenden die Änderungen in der Konfigurationsdatei des dedizierten Statusmoduls an, die sich unter /etc/apache2/mods-enabled/status.conf befindet, und nicht in der Hauptkonfigurationsdatei von HTTPd.

Sie müssen die folgenden Änderungen in Ihrer HTTPd-Konfigurationsdatei vornehmen:

  • Aktivieren Sie den Serverstatus eine HTTPd-Statusseite an der Stelle /server-status.
  • Laden Sie das status_module (mod_status), um die Metriken des Webservers Apache anzuzeigen.
  • Sehen Sie sich die detaillierten Metriken für Traffic, Traffic pro Anfrage und CPU an, indem Sie die ExtendedStatus aktivieren.
<Location /server-status>
    SetHandler server-status
</Location>
LoadModule status_module lib/httpd/modules/mod_status.so
ExtendedStatus On
 

Setzen Sie die Konfiguration server-status an den Anfang Ihrer HTTPd-Konfigurationsdatei.

Sie können Ihre Konfigurationsdatei mit dem folgenden Befehl auf Fehler überprüfen:

apachectl configtest
 

Starten Sie neu, um die Änderungen zu übernehmen, ohne laufende Verbindungen zu unterbrechen ( apachectl -k graceful oder service apache2 graceful).

Der Instana-Sensor holt sich die Konfiguration automatisch von HTTPd, ein Neustart des Agenten ist nicht erforderlich. Sie können also einen beliebigen Ort für die Statusseite wählen. Umleitungen werden aus Leistungsgründen nicht befolgt.

Wenn der Status URL geschützt ist, müssen Sie in der Agentenkonfigurationsdatei <agent_install_dir>/etc/instana/configuration.yml grundlegende Authentifizierungsdaten angeben:

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

Metriken anzeigen

Führen Sie die folgenden Schritte aus, um die Metriken anzuzeigen:

  1. Wählen Sie in der Seitenleiste der Instana-Benutzeroberfläche die Option Infrastruktur.
  2. Klicken Sie auf einen bestimmten überwachten Host.

Anschließend sehen Sie ein Host-Dashboard mit allen erfassten Metriken und überwachten Prozessen.

Konfigurationsdaten

Der Apache HTTPd-Sensor sammelt die folgenden Metriken des Apache HTTPd-Servers:

  • Prozess-ID
  • Die Version des Apache-Servers.
  • Architektur
  • Start- oder Betriebszeit
  • Workerlimit
  • MPM
  • Ports
  • Geladene Module

Leistungsmetriken

In der folgenden Tabelle sind die Leistungsmetriken aufgeführt, die vom Apache HTTPd-Server erfasst werden:

Metrik Beschreibung
Anforderungen Anzahl der Zugriffe auf den Server Apache
Datenverkehr Zahl der bedienten kBytes
Ausgelastete Worker Anzahl der beschäftigten Arbeits-Threads und Prozesse
Verbindungsanzahl Anzahl der Gesamtverbindungen (nur bei Events MPM und Apache 2.3 )
Asynchrones Schreiben Anzahl der asynchronen Verbindungen im schreibenden Zustand (nur bei Events MPM und Apache 2.3 )
Async Keep-alive Anzahl der asynchronen Verbindungen im Keep-Alive-Zustand (nur bei Events MPM und Apache 2.3 )
Asynchrones Schließen Anzahl der asynchronen Verbindungen im Schließzustand (nur bei Events MPM und Apache 2.3 )
Worker Warten, Starten, Lesen, Schreiben, Keepalive, Dns, Schließen, Protokollieren, Gnadenlos, Leerlauf
CPU-Auslastung Die aktuelle CPU des Apache Servers, in Prozent
Datenverkehr pro Anforderung Übertragene Bytes pro Anfrage

Signaturen für Allgemeinzustand

Für jeden Sensor gibt es eine kuratierte Wissensdatenbank mit Gesundheitssignaturen, die kontinuierlich anhand der eingehenden Metriken ausgewertet werden und dazu dienen, Probleme oder Vorfälle zu melden, die von den Auswirkungen auf den Benutzer abhängen.

Integrierte Ereignisse lösen Probleme oder Vorfälle auf der Grundlage von fehlenden Zustands-Signaturen für Entitäten aus, und benutzerdefinierte Ereignisse lösen Probleme oder Vorfälle auf der Grundlage der Schwellenwerte einer individuellen Metrik einer beliebigen Entität aus.

Informationen über integrierte Ereignisse für den Apache HTTPd-Sensor finden Sie unter Referenz für integrierte Ereignisse.

Tracing

Sie müssen Apache HTTPd tracing installieren und konfigurieren, um Traces vom Apache Server zu sammeln.

Voraussetzungen

Installieren Sie Visual C++ Redistributable Packages für Visual Studio 2015-2022, bevor Sie HTTPd-Tracing unter Windows aktivieren.

Stellen Sie sicher, dass Sie XL C/C++ Runtime für AIX 16.1.0 Fix Pack 7 oder spätere Versionen auf AIX 7.2 installieren, das den Dateisatz libc++.rte enthält, bevor Sie die HTTPd-Ablaufverfolgung aktivieren.

Sie können die Installation des Dateisets libc++.rte mit dem folgenden Befehl überprüfen:

lslpp -l |grep libc++.rte
 

Installation

Die HTTPd-Traceerstellung ist standardmäßig inaktiviert. Wenn die HTTPd-Ablaufverfolgung wie in Ablaufverfolgung aktivieren beschrieben aktiviert ist, wird das HTTPd-Ablaufverfolgungsmodul automatisch heruntergeladen, wenn der HTTPd-Sensor aktiviert ist. Die Konfiguration der Ablaufverfolgung befindet sich unter <agent_install_dir>/etc/instana/configuration.yaml. Die aktuelle Version des Instana-Agenten enthält ein Beispiel für die verfügbaren Konfigurationseinstellungen.

Manuelle Installation

Wenn der HTTPd-Server mit eingeschränkten Leseberechtigungen in einer Container-Umgebung läuft, funktioniert die automatische Installation des HTTPd-Tracing-Moduls in einer solchen Situation nicht. Sie können das HTTPd-Tracing-Modul in den folgenden Schritten manuell installieren:

  1. Holen Sie sich die richtigen Module für Ihre HTTP Server Version.
  2. Kopieren Sie die Module in den Ordner HTTP Server modules.
  3. Laden Sie die Module in Ihre HTTPd-Konfigurationsdatei.
Kopieren Sie die Module

Die beiden im vorigen Schritt heruntergeladenen Module müssen in einem Ordner abgelegt werden, der auch andere HTTP Module enthält, und es müssen ihnen entsprechende Dateiberechtigungen erteilt werden. Für die Modulversion 1.0.7 oder früher muss die Datei tracelibrary_x86_64-1.0.7.so in tracelibrary.so umbenannt werden.

Laden Sie die Module

Erstellen Sie eine Datei mit dem Namen instana_tracing.conf am gleichen Ort wie die HTTPd-Konfigurationsdatei (z. B. /etc/httpd/conf/httpd.conf). Der Inhalt der Datei könnte wie folgt aussehen:

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

Fügen Sie dann eine Zeile in die HTTPd-Konfigurationsdatei ein, um die Datei instana_tracing.conf aufzunehmen.

Include /etc/httpd/conf/instana_tracing.conf
 

konfigurieren

Die verfügbaren Konfigurationseinstellungen für HTTPd-Tracing in der Datei configuration.yaml des Instana-Agenten werden aufgelistet:

# 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
 

Tracefunktion aktivieren

Öffnen Sie <agent_install_dir>/etc/instana/configuration.yaml mit einem Texteditor. Die Einträge sind von ähnlicher Natur:

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

Entfernen Sie die Kommentarzeilen aus diesen Zeilen und ändern Sie enabled: false in enabled: true.

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

Wenn der automatische Neustart nicht konfiguriert ist, müssen Sie HTTP Server manuell neu starten, um das HTTPd-Tracing-Modul in den Speicher zu laden.

Traceerstellung inaktivieren

Öffnen Sie <agent_install_dir>/etc/instana/configuration.yaml mit einem Texteditor. Ändern Sie enabled: true in enabled: false. Beachten Sie, dass die Ablaufverfolgung standardmäßig deaktiviert ist, so dass das Auskommentieren dieser Zeile das Gleiche bewirkt. Nach der Änderung sollten die Einträge wie der folgende Code aussehen:

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

Wenn der automatische Neustart nicht konfiguriert ist, müssen Sie HTTP Server manuell neu starten, um das HTTPd-Tracing-Modul aus dem Speicher zu entladen.

Versionsfixierung

Das herunterzuladende und zu installierende HTTPd-Tracing-Modul kann an eine bestimmte Version gebunden werden. Wenn die Zeile pinModuleVersion: x.y.z auskommentiert ist, wird die aktuelle Version des HTTPd-Tracing-Moduls heruntergeladen und installiert.

Ersetzen Sie x.y.z durch die angegebene Modulversion in Zeile pinModuleVersion: x.y.z in <agent_install_dir>/etc/instana/configuration.yaml. Nach der Änderung sollten die Einträge wie der folgende yaml-Code aussehen:

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

Wenn die HTTPd-Tracing-Module heruntergeladen und manuell installiert werden, sollte der Wert von pinModuleVersion configuration auf die Version der heruntergeladenen Module eingestellt werden.

Automatischer Neustart

Wenn die Ablaufverfolgung wie in Ablaufverfolgung aktivieren aktiviert ist, lädt der HTTPd-Sensor automatisch das entsprechende HTTPd-Ablaufverfolgungsmodul für Ihr HTTP Server -Setup herunter und installiert es. Außerdem könnte der Sensor dann versuchen, einen ordnungsgemäßen Neustart (apachectl -k graceful) Ihres HTTP Server durchzuführen. Ein geordneter Neustart lädt das HTTPd Tracing Module in den Speicher, ohne den Master-Prozess neu zu starten. Es funktioniert also auch, wenn der Prozess als PID 1 innerhalb des Containers läuft.

Sie können den automatischen Neustart aktivieren oder deaktivieren, indem Sie die Konfigurationseinstellung autoRestart unter <agent_install_dir>/etc/instana/configuration.yaml vornehmen. Mit der folgenden Einstellung wird beispielsweise der automatische Neustart aktiviert:

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

Sie können auch ändern, wie der HTTPd-Sensor versucht, Ihre HTTP Server Umgebung neu zu starten, und zwar über die Konfigurationseinstellung notificationScript . Die Einstellung verwendet einen absoluten Pfad zu einem ausführbaren Shell-Script. Wenn Ihr HTTP Server innerhalb eines Containers läuft, ist es der absolute Pfad im Container. Dieses Skript wird immer dann ausgelöst, wenn der Sensor eine andere Version des HTTPd-Tracing-Moduls installiert hat als die installierte. Wenn dieses Skript konfiguriert und erfolgreich ausgeführt wurde, setzt es den Standardmechanismus für den automatischen Neustart außer Kraft.

Hinweis: Wenn die HTTPd-Tracing-Module manuell heruntergeladen und installiert werden, sollte der automatische Neustart in der Konfigurationseinstellung autoRestart und im Kommentar notificationScript deaktiviert werden. Sie müssen HTTP Server manuell neu starten, um das HTTPd-Tracing-Modul zu laden oder zu entladen.

HTTPd in wurzelloser Podman Container-Tracing-Unterstützung

Um Metriken und Traces von HTTPd zu sammeln, das in einem Podman Container ohne Root läuft, müssen Sie die Netzwerkkommunikation zwischen dem Instana-Agenten und dem Podman Container-Netzwerk ohne Root aufrechterhalten.

Entfernen des HTTPd-Tracing-Moduls

Das HTTPd Tracing Module kann in den folgenden Schritten manuell entfernt werden:

  1. Suchen Sie instana_tracing.conf am gleichen Ort wie die HTTPd-Konfigurationsdatei (z. B. /etc/httpd/conf/httpd.conf). Rufen Sie den absoluten Pfad des HTTPd-Tracing-Moduls aus dem Inhalt von instana_tracing.confab. Der Inhalt der Datei könnte zum Beispiel wie der folgende Code aussehen:

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

    Dann befindet sich das HTTPd Tracing Modul unter /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so.

  2. Deaktivieren Sie HTTPd Tracing wie in Disable Tracing.

  3. Entfernen Sie das HTTPd-Tracing-Modul mod_dem_[arch]-[version].so (z. B. /usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so) und tracelibrary_[arch]-[version].so am gleichen Ort (z. B. /usr/lib64/httpd/modules/tracelibrary_x86_64-1.0.8.so).