

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon ECS Service Connect-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs"></a>

Amazon ECS Service Connect unterstützt Zugriffsprotokolle, um detaillierte Telemetriedaten zu einzelnen Anfragen bereitzustellen, die vom Service Connect-Proxy verarbeitet werden. Zugriffsprotokolle ergänzen bestehende Anwendungsprotokolle, indem sie Verkehrsmetadaten pro Anfrage wie HTTP-Methoden, Pfade, Antwortcodes, Flags und Zeitinformationen erfassen. Dies ermöglicht eine tiefere Beobachtung von Verkehrsmustern und Serviceinteraktionen auf Anforderungsebene für eine effektive Fehlerbehebung und Überwachung.

Um Zugriffsprotokolle zu aktivieren, geben Sie sowohl die als auch die `logConfiguration` `accessLogConfiguration` Objekte im Objekt an. `serviceConnectConfiguration` Sie können das Format der Protokolle konfigurieren und festlegen, ob die Protokolle Abfrageparameter in der enthalten sollen`accessLogConfiguration`. Die Protokolle werden von dem im angegebenen Protokolltreiber an die Zielprotokollgruppe übermittelt. `logConfiguration`

```
{
    "serviceConnectConfiguration": {
        "enabled": true,
        "namespace": "myapp.namespace",
        "services": [
            ...
        ],
        "logConfiguration": {
            "logDriver": "awslogs",
            "options": {
                "awslogs-group": "my-envoy-log-group",
                "awslogs-region": "us-west-2",
                "awslogs-stream-prefix": "myapp-envoy-logs"
            }
        },
         "accessLogConfiguration": {
            "format": "TEXT",
            "includeQueryParameters": "ENABLED" 
        }
    }
}
```

## Überlegungen
<a name="service-connect-envoy-access-logs-considerations"></a>

Beachten Sie Folgendes, wenn Sie den Zugriff auf Zugriffsprotokolle aktivieren
+ Sowohl Zugriffs- als auch Anwendungsprotokolle werden geschrieben`/dev/stdout`. Um Zugriffsprotokolle von Anwendungsprotokollen zu trennen, empfehlen wir, den `awsfirelens` Protokolltreiber mit einer benutzerdefinierten Fluent Bit Fluentd Konfiguration zu verwenden.
+  Wir empfehlen, den `awslogs` Protokolltreiber zu verwenden, um Anwendungs- und Zugriffsprotokolle an dasselbe CloudWatch Ziel zu senden.
+ Zugriffsprotokolle werden auf Fargate-Diensten unterstützt, die eine Plattformversion `1.4.0` und höher verwenden.
+ Abfrageparameter wie Anforderungs-IDs und Token sind standardmäßig aus den Zugriffsprotokollen ausgeschlossen. Um Abfrageparameter in Zugriffsprotokolle aufzunehmen, legen Sie `includeQueryParameters` den Wert auf fest`"ENABLED"`.

## Formate für Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats"></a>

Zugriffsprotokolle können entweder in Wörterbüchern im JSON-Format oder in Zeichenketten im Textformat formatiert werden, wobei sich die unterstützten Befehlsoperatoren für verschiedene Arten von Zugriffsprotokollen unterscheiden.

### HTTP-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-http"></a>

Die folgenden Befehlsoperatoren sind standardmäßig für HTTP-Logs enthalten:

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration_ms": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%"
}
```

------

### HTTP2 Zugriffs-Logs
<a name="service-connect-envoy-access-logs-formats-http2"></a>

Zusätzlich zu den Befehlsoperatoren, die für HTTP-Logs enthalten sind, enthalten HTTP2 Logs standardmäßig den `%STREAM_ID%` Operator.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### gRPC-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-grpc"></a>

Zusätzlich zu den Befehlsoperatoren, die für HTTP-Protokolle enthalten sind gRPC gRPC-Zugriffsprotokolle standardmäßig den `%GRPC_STATUS()%` Operator `%STREAM_ID%` and.

------
#### [ Text ]

```
[%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%"
%RESPONSE_CODE% %GRPC_STATUS()% %BYTES_RECEIVED% %BYTES_SENT% %DURATION%
%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% "%REQ(X-FORWARDED-FOR)%" "%REQ(USER-AGENT)%"
"%REQ(X-REQUEST-ID)%" "%REQ(:AUTHORITY)%" "%UPSTREAM_HOST%" "%STREAM_ID%"\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "method": "%REQ(:METHOD)%",
  "path": "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%",
  "protocol": "%PROTOCOL%",
  "response_code": "%RESPONSE_CODE%",
  "grpc_status": "%GRPC_STATUS()%",
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "upstream_service_time": "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%",
  "forwarded_for": "%REQ(X-FORWARDED-FOR)%",
  "user_agent": "%REQ(USER-AGENT)%",
  "request_id": "%REQ(X-REQUEST-ID)%",
  "authority": "%REQ(:AUTHORITY)%",
  "upstream_host": "%UPSTREAM_HOST%",
  "stream_id": "%STREAM_ID%"
}
```

------

### TCP-Zugriffsprotokolle
<a name="service-connect-envoy-access-logs-formats-tcp"></a>

Die folgenden Befehlsoperatoren sind standardmäßig in TCP-Zugriffsprotokollen enthalten:

------
#### [ Text ]

```
[%START_TIME%] %DOWNSTREAM_REMOTE_ADDRESS% %DOWNSTREAM_REMOTE_PORT% 
%BYTES_RECEIVED% %BYTES_SENT% %DURATION%  
%CONNECTION_TERMINATION_DETAILS% %CONNECTION_ID%\n
```

------
#### [ JSON ]

```
{
  "start_time": "%START_TIME%",
  "downstream_remote_address": "%DOWNSTREAM_REMOTE_ADDRESS%",
  "downstream_remote_port": "%DOWNSTREAM_REMOTE_PORT%",s
  "bytes_received": "%BYTES_RECEIVED%",
  "bytes_sent": "%BYTES_SENT%",
  "duration": "%DURATION%",
  "connection_termination_details": "%CONNECTION_TERMINATION_DETAILS%",
  "connection_id": %CONNECTION_ID%
}
```

------

Weitere Informationen zu diesen Befehlsoperatoren finden Sie unter [Befehlsoperatoren](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) in der Envoy-Dokumentation.