Diagnoseprotokolle für Application Gateway für Container
Erfahren Sie, wie Sie häufige Probleme in Application Gateway für Container beheben.
Sie können Azure Application Gateway für Containerressourcen auf die folgenden Arten überwachen:
Protokolle: Protokolle ermöglichen das Speichern und Nutzen von Leistungs-, Zugriffs- und anderen Daten einer Ressource zu Überwachungszwecken.
Metriken: Application Gateway für Container verfügt über mehrere Metriken, mit denen Sie überprüfen können, ob Ihr System erwartungsgemäß funktioniert.
Diagnoseprotokolle
Sie können verschiedene Arten von Protokollen in Azure verwenden, um Application Gateway für Container zu verwalten und Fehler zu beheben. Sie können auf einige dieser Protokolle über das Portal zugreifen. Alle Protokolle können aus Azure Blob Storage extrahiert und in anderen Tools wie Azure Monitor-Protokollen, Excel und Power BI angezeigt werden. In der folgenden Liste finden Sie weitere Informationen über die verschiedenen Typen von Protokollen:
- Aktivitätsprotokoll: Sie können das Feature Azure-Aktivitätsprotokolle (ehemals Betriebs- und Überwachungsprotokolle) verwenden, um alle an Ihr Azure-Abonnement übermittelten Vorgänge und deren Status anzuzeigen. Aktivitätsprotokolleinträge werden standardmäßig gesammelt und können im Azure-Portal angezeigt werden.
- Zugriffsprotokoll: Sie können dieses Protokoll verwenden, um die Zugriffsmuster von Application Gateway für Container anzuzeigen und wichtige Informationen zu analysieren. Dazu gehören die IP des Aufrufers, die angeforderte URL, die Antwortlatenz, der Rückgabecode sowie die ein- und ausgehenden Bytes. Ein Zugriffsprotokoll wird alle 60 Sekunden erstellt. Die Daten können in einem Speicherkonto gespeichert werden, das zum Zeitpunkt der Aktivierung der Protokollierung angegeben ist.
Zugriffsprotokoll konfigurieren
Die Aktivitätsprotokollierung ist automatisch für alle Resource Manager-Ressourcen aktiviert. Sie müssen die Zugriffsprotokollierung aktivieren, um die über diese Protokolle verfügbaren Daten zu erfassen. Um die Protokollierung zu aktivieren, können Sie Diagnoseeinstellungen in Azure Monitor konfigurieren.
Führen Sie die folgenden Schritte aus, um die gesamte Protokollierung für ein Speicherkonto Application Gateway für Container mithilfe des Azure-Portals zu aktivieren. Sie müssen über ein verfügbares Speicherkonto in derselben Region wie Ihr Application Gateway für Container verfügen.
Melden Sie sich mit Ihrem Azure-Konto beim Azure-Portal an.
Geben Sie in Ressourcen suchen, Dienst und docs den Begriff Application Gateways für Container ein und wählen Sie den Namen Ihres Application Gateway für Container.
Wählen Sie unter Überwachung die Option Diagnoseeinstellungen aus.
Klicken Sie auf Diagnoseeinstellung hinzufügen.
Geben Sie einen Namen der Diagnoseeinstellung ein (z. B. agfc-logs), wählen Sie die Protokolle und Metriken aus, die gespeichert werden sollen, und wählen Sie ein Ziel aus wie beispielsweise Archivieren in einem Speicherkonto. Um alle Protokolle zu speichern, wählen Sie allLogs und AllMetrics aus.
Klicken Sie auf Save (Speichern), um Ihre Einstellungen zu speichern. Siehe folgendes Beispiel:
Hinweis
Nach dem anfänglichen Aktivieren von Diagnoseprotokollen kann es bis zu einer Stunde dauern, bis Protokolle am ausgewählten Ziel verfügbar sind.
Weitere Informationen und Tutorials zur Bereitstellung von Azure Monitor finden Sie unter Diagnoseeinstellungen in Azure Monitor.
Format des Zugriffsprotokolls
Jeder Zugriffsprotokolleintrag in Application Gateway für Container enthält die folgenden Informationen.
Wert | Beschreibung |
---|---|
backendHost | Adresse des Back-End-Ziels mit angefügter Port. Beispiel <: ip>:<port> |
backendIp | IP-Adresse des Back-End-Zielanwendungsgateways für Containerproxys, an welche die Anforderung ausgeführt wird. |
backendPort | Portnummer des Back-End-Ziels. |
backendResponseLatency | Zeit in Millisekunden für den Empfang des ersten Bytes vom Application Gateway für Container an das Back-End-Ziel. |
backendTimeTaken | Die Zeit in Millisekunden für die Antwort, die vom Back-End-Ziel an Application Gateway für Container übertragen werden soll. |
clientIp | IP-Adresse des Clients, der die Anforderung an das Frontend des Application Gateway für Container initiiert |
frontendName | Name des Application Gateway für Container-Frontends, das die Anforderung vom Client empfangen hat |
frontendPort | Portnummer, auf der die Anfrage vom Application Gateway für Container abgehört wurde |
frontendTLSFailureReason | Enthält Informationen dazu, warum die TLS-Aushandlung fehlgeschlagen ist. Wird häufig verwendet, um fehlgeschlagene Authentifizierungsanforderungen für die gegenseitige Clientauthentifizierung zu verstehen |
frontendTLSPeerFingerprint | Der Fingerabdruck (Daumenabdruck) des Zertifikats, das ein Client dem Front-End von Application Gateway für Container übergibt |
hostName | Hostheader-Wert, der vom Client von Application Gateway für Container empfangen wurde |
HTTP-Methode | HTTP-Methode der Anforderung, die vom Client von Application Gateway für Container gemäß RFC 7231 empfangen wurde. |
httpStatusCode | HTTP-Statuscode, der von Application Gateway für Container an den Client zurückgegeben wird |
httpVersion | HTTP-Version der Anforderung, die Application Gateway fürr Container vom Client erhalten hat |
Verweiser | der Anforderung, die Application Gateway für Container vom Client erhalten hat |
requestBodyBytes | Größe in Bytes der Textkörpernutzlast der vom Client empfangenen Anforderung durch Application Gateway für Container |
requestHeaderBytes | Größe in Bytes der Header der vom Client empfangenen Anforderung durch Application Gateway für Container |
requestUri | URI der vom Client an Application Gateway für Container übermittelten Anforderung (alles nach <Protokoll>:// <host> der URL) |
responseBodyBytes | Größe in Bytes der Textkörpernutzlast der von Application Gateway für Container an den Client zurückgegebenen Antwort |
responseHeaderBytes | Größe in Bytes des Headers der von Application Gateway für Container an den Client zurückgegebenen Antwort |
timeTaken | Zeit in Millisekunden zwischen der von Application Gateway für Container empfangenen Client-Anforderung und dem letzten von Application Gateway für Container an den Client zurückgegebenen Byte |
tlsCipher | TLS-Verschlüsselungsverfahren-Suite, die zwischen dem Client und dem Application Gateway für Container-Frontend ausgehandelt wird |
tlsProtocol | TLS-Version, die zwischen dem Client und dem Application Gateway für Container-Frontend ausgehandelt wird |
trackingId | Von Application Gateway für Container generierte Anleitung, die bei der Nachverfolgung und Fehlersuche hilft. Dieser Wert entspricht dem x-request-id-Header, der von Application Gateway für Container an den Client zurückgegeben wird. |
userAgent | Benutzer-Agent-Header der Anforderung, die Application Gateway für Container vom Client erhält |
Hinweis
Abfragezeichenfolgen-Parameterwerte wie „secret“, „password“, „pwd“, „passwd“, „key“, „token“, „pat“, „accesskey“, „accesstoken“, „credential“, „sas“, „personalAccessToken“ und „personal.access.token“, die im Feld „requestUri“ protokolliert werden, werden durch den Wert <redacted> ersetzt, um zu verhindern, dass vertrauliche Informationen protokolliert werden. Dies ist nicht konfigurierbar.
Hier ein Beispiel für das Zugriffsprotokoll, das im JSON-Format an ein Speicherkonto ausgegeben wird.
{
"category": "TrafficControllerAccessLog",
"operationName": "ReqRespLogs",
"properties": {
"backendHost": "10.1.0.15:80",
"backendIp": "10.1.0.15",
"backendPort": "80",
"backendResponseLatency": "2",
"backendTimeTaken": "-",
"clientIp": "xxx.xxx.xxx.xxx:52526",
"frontendName": "frontend-primary",
"frontendPort": "443",
"frontendTLSFailureReason": "-",
"frontendTLSPeerFingerprint": "2c01bbc93009ad1fc977fe9115fae7ad298b665f",
"hostName": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.fzXX.alb.azure.com",
"httpMethod": "GET",
"httpStatusCode": "200",
"httpVersion": "HTTP\/1.1",
"referer": "-",
"requestBodyBytes": "0",
"requestHeaderBytes": "223",
"requestUri": "\/index.php",
"responseBodyBytes": "91",
"responseHeaderBytes": "190",
"timeTaken": "2",
"tlsCipher": "TLS_AES_256_GCM_SHA384",
"tlsProtocol": "-",
"trackingId": "0ef125db-7fb7-48a0-b3fe-03fe0ffed873",
"userAgent": "curl\/7.81.0"
},
"resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/YYYYYY/PROVIDERS/MICROSOFT.SERVICENETWORKING/TRAFFICCONTROLLERS/ZZZZZZZ",
"time": "2023-07-22T06:26:58.895Z",
"location": "northcentralus"
}