Apache-Webserver (httpd)

Apache-Webserver (httpd) ist ein weit verbreiteter Webserver, der für eine Vielzahl von Betriebssystemen verwendet wird. Weitere Informationen finden Sie unter http://httpd.apache.org/.

Vorbereitung

Zum Erfassen der Apache-Webserver-Telemetrie müssen Sie die Ops-Agent-Version 2.7.0 oder höher installieren.

Dieser Empfänger unterstützt Apache-Webserver Version 2.4.

Apache-Webserver-Instanz konfigurieren

Zum Erfassen von Telemetrie Ihres Apache-Webservers müssen Sie die Datei httpd.conf des Servers so konfigurieren, dass das mod_status-Plug-in aktiviert wird.

Dieses Plug-in ist bei Apache-Installationen oft standardmäßig aktiviert. Führen Sie folgenden Befehl aus, um festzustellen, ob das Plug-in auf Ihrer VM-Instanz aktiviert ist:

curl localhost:80/server-status?auto

Wenn das Plugin aktiviert ist, enthält die Ausgabe Zeilen wie diese:

Total Accesses: 2
Total kBytes: 1
BusyWorkers: 1
IdleWorkers: 4

Wenn Sie stattdessen die Seite 404 Not Found erhalten, ist das Plug-in mod_status nicht aktiviert.

Ops-Agent für Apache-Webserver konfigurieren

Befolgen Sie die Anleitung zum Konfigurieren des Ops-Agents, um die erforderlichen Elemente zum Erfassen von Logs von Apache-Webserver-Instanzen hinzuzufügen, und starten Sie den Agent neu.

Konfigurationsbeispiel

Der folgende Befehl erstellt die Konfiguration zum Erfassen und Aufnehmen von Logs und Messwerten für Apache-Webserver und startet den Ops-Agent unter Linux neu.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    apache_access:
      type: apache_access
    apache_error:
      type: apache_error
  service:
    pipelines:
      apache:
        receivers:
        - apache_access
        - apache_error
metrics:
  receivers:
    apache:
      type: apache
      server_status_url: http://localhost:80/server-status?auto
      collection_interval: 30s
  service:
    pipelines:
      apache:
        receivers:
        - apache
EOF
sudo service google-cloud-ops-agent restart

Logerfassung konfigurieren

Um Logs vom Apache-Webserver zu erfassen, müssen Sie Empfänger für die Logs erstellen, die der Apache-Webserver produziert, und dann eine Pipeline für die neuen Empfänger erstellen. Geben Sie die folgenden Felder an, um einen Empfänger für Ihre Logs zu konfigurieren:

Geben Sie die folgenden Felder an, um einen Empfänger für Ihre apache_access-Logs zu konfigurieren:

Feld Standard Beschreibung
type Dieser Wert muss apache_access sein.
include_paths [/var/log/apache2/access.log,/var/log/apache2/access_log,/var/log/httpd/access_log] Eine Liste mit Dateisystempfaden, die durch Tailing jeder Datei gelesen werden sollen. In den Pfaden kann ein Platzhalter (*) verwendet werden. Beispiel: /var/log/apache*/*.log.
exclude_paths [] Eine Liste von Dateisystempfadmustern, die aus dem mit include_paths übereinstimmenden Satz ausgeschlossen werden sollen.

Geben Sie die folgenden Felder an, um einen Empfänger für Ihre apache_error-Logs zu konfigurieren:

Feld Standard Beschreibung
type Dieser Wert muss apache_error sein.
include_paths [/var/log/apache2/error.log,/var/log/apache2/error_log,/var/log/httpd/error_log] Eine Liste mit Dateisystempfaden, die durch Tailing jeder Datei gelesen werden sollen. In den Pfaden kann ein Platzhalter (*) verwendet werden. Beispiel: /var/log/apache*/*.log.
exclude_paths [] Eine Liste von Dateisystempfadmustern, die aus dem mit include_paths übereinstimmenden Satz ausgeschlossen werden sollen.

Was wird protokolliert?

Die logName-Logs der Logs apache_access und apache_error werden von den Empfänger-IDs abgeleitet, die in der Konfiguration angegeben sind. Detaillierte Felder in LogEntry sind:

apache_access-Logs enthalten das Feld httpRequest:

Feld Typ Beschreibung
httpRequest.protocol String Für die Anfrage verwendetes Protokoll
httpRequest.referer String Inhalt des Headers Referer
httpRequest.requestMethod String HTTP-Methode
httpRequest.requestUrl String Anfrage-URL (in der Regel nur der Pfadteil der URL)
httpRequest.responseSize String (int64) Größe der Antwort
httpRequest.status Zahl HTTP-Statuscode
httpRequest.userAgent String Inhalt des Headers User-Agent
jsonPayload.host String Inhalt des Headers Host
jsonPayload.user String Authentifizierter Nutzername für die Anfrage
timestamp String (Timestamp) Zeitpunkt des Eingangs der Anfrage

Logeinträge enthalten keine leeren oder fehlenden Felder.


apache_error-Logs enthalten die folgenden Felder in LogEntry:

Feld Typ Beschreibung
jsonPayload.errorCode String Apache-Fehlercode
jsonPayload.level String Logeintragsebene
jsonPayload.module String Apache-Modul, von dem das Log stammt
jsonPayload.pid Zahl Prozess-ID
jsonPayload.tid Zahl Thread-ID
jsonPayload.message String Log-Nachricht
jsonPayload.client String IP-Adresse des Clients (optional)
severity String (LogSeverity) Ebene des Logeintrags (übersetzt)
timestamp String (Timestamp) Zeitpunkt, zu dem der Eintrag protokolliert wurde

Messwerterfassung konfigurieren

Um Messwerte von Apache-Webserver zu erfassen, müssen Sie einen Empfänger für Apache-Messwerte erstellen und dann eine Pipeline für den neuen Empfänger erstellen. Um einen Empfänger für Ihre Apache-Messwerte zu konfigurieren, geben Sie die folgenden Felder an:

Feld Standard Beschreibung
type Dieser Wert muss apache sein.
server_status_url http://localhost:8080/server-status?auto Die vom Modul mod_status bereitgestellte URL.
collection_interval 60s Ein Wert für time.Duration, wie z. B. 30s oder 5m.

Was wird überwacht?

Die folgende Tabelle enthält die Liste der Messwerte, die der Ops-Agent von der Apache-Webserver-Instanz erfasst.

Messwerttyp
Art, Typ
Überwachte Ressourcen
Label
workload.googleapis.com/apache.current_connections
GAUGEINT64
gce_instance
server_name
workload.googleapis.com/apache.requests
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.scoreboard
GAUGEINT64
gce_instance
state
server_name
workload.googleapis.com/apache.traffic
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.workers
GAUGEINT64
gce_instance
state
server_name

Konfiguration prüfen

Mit dem Log-Explorer und dem Metrics Explorer können Sie prüfen, ob Sie den Apache-Webserver-Empfänger korrekt konfiguriert haben. Es kann ein bis zwei Minuten dauern, bis der Ops-Agent Logs und Messwerte erfasst.

Prüfen Sie mit dem Log-Explorer, ob die Logs aufgenommen wurden. Führen Sie dann die folgende Abfrage aus, um die Apache-Webserver-Logs aufzurufen:

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")


Um zu prüfen, ob die Messwerte aufgenommen wurden, rufen Sie den Metrics Explorer auf und führen Sie die folgende Abfrage auf dem Tab MQL aus.

fetch gce_instance
| metric 'workload.googleapis.com/apache.requests'
| align rate(1m)
| every 1m