NGINX-Debug-Logs auf den Routern aktivieren

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

In Apigee sind die Router standardmäßig so konfiguriert, dass nur die Fehlermeldungen in den Fehlerprotokolldateien protokolliert werden. Es kann jedoch viele Situationen geben, in denen Sie weitere Informationen benötigen, um zu ermitteln, warum ein bestimmter Fehler aufgetreten ist. Eine Möglichkeit besteht darin, den Router so zu konfigurieren, dass er im Debug-Modus ausgeführt wird. So können Sie Debug-Logs abrufen, die Ihnen mehr Informationen zum Fehler liefern und Ihnen helfen, ihn schneller zu beheben.

In diesem Dokument wird erläutert, wie Sie Debug-Logs auf dem Router von Apigee Edge für Anfragen an einen bestimmten virtuellen Host aktivieren. Die Debug-Protokollierung kann aktiviert werden, um weitere Informationen zu erfassen, wenn Probleme wie fehlerhafte Anfragen oder der Fehler „ 400 Bad Request – SSL Certificate Error“ im Northbound-Traffic (zwischen der Clientanwendung und dem Router) auftreten.

Hinweis

  • Wenn Sie mit den NGINX-Fehlerprotokollen und den Protokollierungsebenen nicht vertraut sind, lesen Sie die Dokumentation zu NGINX-Fehlerprotokollen.
  • Erfassen Sie die Namen der Organisation, der Umgebung und des virtuellen Hosts der API-Anfragen, für die Sie Debug-Informationen erfassen müssen.

NGINX-Debug-Logs auf den Routern aktivieren

In diesem Abschnitt wird erläutert, wie Sie Debug-Logs auf den Edge-Routern aktivieren.

Relevante Konfigurationsdatei für virtuelle Hosts identifizieren

In den folgenden Schritten wird beschrieben, wie Sie die relevante Konfigurationsdatei für virtuelle Hosts auf dem Router finden:

  1. Wenn Sie den Namen der Organisation, den Namen der Umgebung und den virtuellen Host für die spezifische API Anfrage kennen, die Sie debuggen möchten, ermitteln Sie die Konfigurationsdatei für virtuelle Hosts so:
    1. Rufen Sie das /opt/nginx/conf.d/ Verzeichnis auf.
    2. Suchen Sie mit dem folgenden Befehl im Verzeichnis conf.d nach der Datei ORG_NAME_ENV_NAME_VIRTUALHOST.conf:
      ls -ltrh | grep "ORG_NAME_ENV_NAME_VIRTUALHOST_NAME"
  2. Wenn Sie den Namen der Organisation nicht kennen, können Sie die Konfigurationsdatei für virtuelle Hosts anhand des Host-Aliasnamens identifizieren, der in der API-Anfrage verwendet wird:

    Rufen Sie das /opt/nginx/conf.d/ Verzeichnis auf und suchen Sie nach hostalias, mit dem die Anfrage gestellt wurde:

    ls -ltrh | grep -r 'HOST_ALIAS_NAME'

    Beispielausgabe :

    Angenommen, der Host-Aliasname ist opdk.cert-test.com. Wenn Sie den ls -ltrh Befehl ausführen, sehen Sie die folgende Ausgabe:

Debug-Protokollierung für einen bestimmten virtuellen Host auf dem Router aktivieren

In den folgenden Schritten wird beschrieben, wie Sie Debug-Logs auf den Apigee-Routern für einen bestimmten virtuellen Host aktivieren.

  1. Öffnen Sie die folgende Datei auf dem Routercomputer in einem Editor: /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf. Beispiel:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
  2. Ändern Sie die folgende Zeile:
    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;

    zu

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
  3. Speichern Sie die Änderungen.
  4. Führen Sie den Befehl zum Neuladen von NGINX aus. Beispiel:
    sudo /opt/nginx/scripts/apigee-nginx reload
  5. In der folgenden Datei werden jetzt Debug-Logs erfasst:
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
  6. Wenn Sie Debug-Logs auf mehreren Routern erfassen möchten, wiederholen Sie diese Schritte auf jedem der Router.

Prüfen, ob Debug-Informationen in der NGINX-Fehlerprotokolldatei protokolliert werden

  1. Sobald Clients API-Anfragen an den Host-Alias und den Port senden, die mit der Konfiguration des virtuellen Hosts verknüpft sind, werden Debug-Logs in der folgenden Datei erfasst:

    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log

  2. Prüfen Sie, ob Debug-Informationen für die API-Anfragen angezeigt werden, wie im folgenden Beispiel:

    Beispiel für Debug-Informationen :

    2021/01/27 02:48:40 [warn] 27624#27624: *3777 a client request body is buffered to a temporary file /opt/apigee/var/log/edge-router/nginx/client_temp/0000000001, client: XX.XX.XX.XX, server: XX.XX.XX.XX, request: "POST /post-no-target HTTP/1.1", host: "XX.XX.XX.XX:443"

    Die oben gezeigten Informationen werden erfasst, wenn der Client eine POST Anfrage mit einer großen Nutzlast sendet. Dieses Log wird nur angezeigt, wenn die Debug-Protokollierung aktiviert ist.

  3. Wenn keine zusätzlichen Debug-Informationen angezeigt werden, prüfen Sie, ob Sie alle die Schritte unter Debug-Protokollierung für einen bestimmten virtuellen Host auf dem Router aktivieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  4. Wenn Sie die Debug-Informationen immer noch nicht abrufen können, wenden Sie sich an den Apigee Edge-Support.

Debug-Logs für einen bestimmten virtuellen Host auf dem Router deaktivieren

In diesem Abschnitt wird erläutert, wie Sie die Debug-Logs auf dem Router für einen bestimmten virtuellen Host deaktivieren.

  1. Öffnen Sie die folgende Datei auf dem Routercomputer in einem Editor: /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf Beispiel:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
  2. Ändern Sie die folgende Zeile:

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;

    zu

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
  3. Speichern Sie die Änderungen.
  4. Führen Sie den Befehl zum Neuladen von NGINX aus. Beispiel:
    /opt/nginx/scripts/apigee-nginx reload
  5. In der folgenden Datei werden jetzt nur Fehlerprotokolle erfasst:
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
  6. Wenn Sie Debug-Logs auf mehreren Routern beenden möchten, wiederholen Sie diese Schritte auf jedem der Router.

Prüfen, ob nur Fehlerinformationen in der NGINX-Fehlerprotokolldatei protokolliert werden

  1. Senden Sie einige API-Anfragen an den Host-Alias und den Port, die mit der spezifischen Konfiguration des virtuellen Hosts verknüpft sind, oder warten Sie, bis die Clients die Anfragen senden.
  2. Prüfen Sie die folgende Datei: /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
  3. Prüfen Sie, ob nur die Fehlerinformationen angezeigt werden und keine Debug-Informationen mehr für die Anfragen protokolliert werden.
  4. Wenn weiterhin zusätzliche Debug-Informationen protokolliert werden, prüfen Sie, ob Sie alle Schritte unter Debug-Logs für einen bestimmten virtuellen Host auf dem Router deaktivieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  5. Wenn Sie die Debug-Informationen immer noch nicht abrufen können, wenden Sie sich an den Apigee Edge-Support.