Beispiel für Aufgabendefinitionen
Im Folgenden finden Sie einige Beispiele für Aufgabendefinitionen, die allgemeine benutzerdefinierte Optionen für das Protokoll-Routing veranschaulichen. Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Themen
- Weiterleiten von Protokollen an CloudWatch Logs
- Weiterleiten von Protokollen an einen Amazon Kinesis Data Firehose Delivery-Stream
- Weiterleiten von Protokollen an eine Domäne von Amazon OpenSearch Service
- Parsing von Container-Protokollen, die serialisiert JSON sind
- Weiterleitung an ein externes Fluentd oder Fluent Bit
Weiterleiten von Protokollen an CloudWatch Logs
Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Das folgende Aufgabendefinitionsbeispiel veranschaulicht, wie eine Protokollkonfiguration angegeben wird, die Protokolle an eine CloudWatch Logs-Protokollgruppe weiterleitet. Weitere Informationen finden Sie unter Was ist Amazon CloudWatch Logs? im Amazon CloudWatch Logs-Benutzerhandbuch.
Geben Sie in den Protokollkonfigurationsoptionen den Namen der Protokollgruppe und die AWS-Region an, in der sie vorhanden ist. Damit Fluent Bit die Protokollgruppe in Ihrem Namen erstellt, geben Sie "auto_create_group":"true"
an, um das fluentd-buffer-limit festzulegen, verwenden Sie log-driver-buffer-limit
. Sie können auch die Aufgaben-ID als ein Protokoll-Stream-Präfix angeben, das beim Filtern unterstützt. Weitere Informationen finden Sie unter Fluent Bit-Plugin für CloudWatch Logs
{ "family": "firelens-example-cloudwatch", "taskRoleArn": "arn:aws:iam::
123456789012
:role/ecs_task_iam_role
", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2
.amazonaws.com/aws-for-fluent-bit:latest", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "cloudwatch", "region": "us-west-2", "log_group_name": "firelens-blog", "auto_create_group": "true", "log_stream_prefix": "from-fluent-bit", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }
Weiterleiten von Protokollen an einen Amazon Kinesis Data Firehose Delivery-Stream
Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Das folgende Aufgabendefinitionsbeispiel veranschaulicht, wie eine Protokollkonfiguration angegeben wird, die Protokolle an einen Amazon Kinesis Data Firehose-Bereitstellungs-Stream weiterleitet. Der Name Ihres Kinesis Data Firehose-Bereitstellungs-Streams muss bereits bestehen. Weitere Informationen finden Sie unter Erstellen eines Amazon Kinesis Data Firehose-Bereitstellungs-Streams im Amazon Kinesis Data Firehose-Entwicklerhandbuch.
Geben Sie in den Protokollkonfigurationsoptionen den Namen des Bereitstellungs-Streams und die Region an, in der er vorhanden ist. Weitere Informationen finden Sie unter Fluent Bit-Plugin für Amazon Kinesis Firehose
{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::
123456789012
:role/ecs_task_iam_role
", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container
", "awslogs-region": "us-west-2
", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens
" } }, "memoryReservation":50
}, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "firehose", "region": "us-west-2
", "delivery_stream": "my-stream
" } }, "memoryReservation":100
} ] }
Weiterleiten von Protokollen an eine Domäne von Amazon OpenSearch Service
Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Das folgende Bespiel einer Aufgabendefinition veranschaulicht, wie eine Protokollkonfiguration angegeben wird, die Protokolle an eine Domäne von Amazon OpenSearch Service weiterleitet. Die Domäne von Amazon OpenSearch Service muss bereits vorhanden sein. Weitere Informationen finden Sie unter Was ist Amazon OpenSearch Service? im Entwicklerhandbuch zu Amazon OpenSearch Service.
Geben Sie in den Protokoll-Konfigurationsoptionen die Protokolloptionen an, die für die OpenSearch-Service-Integration benötigt werden. Weitere Informationen finden Sie unter Fluent Bit für Amazon OpenSearch Service.
{ "family": "firelens-example-opensearch", "taskRoleArn": "arn:aws:iam::
123456789012
:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2
", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "es", "Host": "vpc-fake-domain-ke7thhzo07jawrhmz6mb7ite7y.us-west-2.es.amazonaws.com
", "Port": "443", "Index": "my_index
", "Type": "my_type
", "AWS_Auth": "On", "AWS_Region": "us-west-2
", "tls": "On" } }, "memoryReservation": 100 } ] }
Parsing von Container-Protokollen, die serialisiert JSON sind
Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Beginnend mit AWS für Fluent Bit Version 1.3 gibt es einen JSON-Parser, der im AWS für Fluent Bit-Image eingeschlossen ist. Das folgende Beispiel zeigt, wie Sie den JSON-Parser in der FireLens-Konfiguration Ihrer Aufgabendefinition referenzieren.
"firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/fluent-bit/configs/parse-json.conf" } },
Die Fluent Bit-Konfigurationsdatei analysiert alle Protokolle, die im JSON-Format vorliegen (wenn die Protokolle an Ihrem Ziel beispielsweise ohne JSON-Parsing wie folgt ausgesehen haben).
{ "source": "stdout", "log": "{\"requestID\": \"b5d716fca19a4252ad90e7b8ec7cc8d2\", \"requestInfo\": {\"ipAddress\": \"204.16.5.19\", \"path\": \"/activate\", \"user\": \"TheDoctor\"}}", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" }
Bei der JSON-Parsing sieht das Protokoll wie folgt aus:
{ "source": "stdout", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" "requestID": "b5d716fca19a4252ad90e7b8ec7cc8d2", "requestInfo": { "ipAddress": "204.16.5.19", "path": "/activate", "user": "TheDoctor" } }
Der serialisierte JSON wird in der endgültigen JSON-Ausgabe in oberste Felder erweitert. Weitere Informationen zum JSON-Parsing finden Sie unter Parser
Weiterleitung an ein externes Fluentd oder Fluent Bit
Weitere Beispiele finden Sie unter Amazon ECS FireLens-Beispiele
Das folgende Aufgabendefinitionsbeispiel veranschaulicht, wie eine Protokollkonfiguration angegeben wird, die Protokolle an einen externen Fluentd- oder Fluent Bit-Host weiterleitet. Geben Sie den host
und port
für Ihre Umgebung an.
{ "family": "firelens-example-forward", "taskRoleArn": "arn:aws:iam::
123456789012
:role/ecs_task_iam_role
", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2
.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2
", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens
" } }, "memoryReservation":50
}, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "forward", "Host": "fluentdhost
", "Port": "24224
" } }, "memoryReservation":100
} ] }