Ü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.
Unterstützte Apache HTTPd Versionen und Plattformen
Apache HTTPd Sensor und Apache HTTPd Tracing haben unterschiedliche Versions- und Plattformanforderungen. Weitere Informationen finden Sie unter Unterstützte Apache HTTPd-Versionen und -Plattformen.
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:
-dgibt das Stammverzeichnis und-fdie Konfigurationsdatei an. - In der Ausgabe
apachectl -V:HTTPD_ROOT=undSERVER_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
ExtendedStatusaktivieren.
<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:
- Wählen Sie in der Seitenleiste der Instana-Benutzeroberfläche die Option Infrastruktur.
- 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:
- Holen Sie sich die richtigen Module für Ihre HTTP Server Version.
- Kopieren Sie die Module in den Ordner HTTP Server modules.
- Laden Sie die Module in Ihre HTTPd-Konfigurationsdatei.
Laden Sie die Module herunter
Die Download-Links für die Module für die unterstützten HTTP Server-Versionen sind auf der Seite HTTPd Tracing Modules verfügbar.
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:
Suchen Sie
instana_tracing.confam 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 voninstana_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.soDann befindet sich das HTTPd Tracing Modul unter
/usr/lib64/httpd/modules/mod_dem_x86_64-1.0.8.so.Deaktivieren Sie HTTPd Tracing wie in Disable Tracing.
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) undtracelibrary_[arch]-[version].soam gleichen Ort (z. B./usr/lib64/httpd/modules/tracelibrary_x86_64-1.0.8.so).