예제 로깅 옵션 작업 정의 - Amazon Elastic Container Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

예제 로깅 옵션 작업 정의

다음은 일반적인 사용자 지정 로그 라우팅 옵션을 보여주는 몇 가지 태스크 정의 예시입니다. 더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

참고

이 예제에 표시된 다음 logConfiguration 작업 정의 파라미터는 Fluent AWS Bit용 로그를 전송하는 데 사용됩니다. CloudWatch AWS Fluent Bit 문제를 해결하는 CloudWatch AWS 데 필요한 추가 정보를 얻을 수 있도록 이 구성을 권장합니다.

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } },

로그를 Logs로 전달 CloudWatch

참고

더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

다음 작업 정의 예제는 로그를 로그 로그 그룹에 전달하는 로그 구성을 지정하는 방법을 보여줍니다. CloudWatch 자세한 내용은 Amazon CloudWatch Logs란 무엇입니까? 를 참조하십시오. Amazon CloudWatch Logs 사용 설명서에서 확인할 수 있습니다.

로그 구성 옵션에서 로그 그룹 이름과 이 그룹이 속한 AWS 리전 을 지정합니다. Fluent Bit에서 사용자를 대신하여 로그 그룹을 생성하도록 하려면 fluentd-buffer-limit 사용을 log-driver-buffer-limit 설정하도록 "auto_create_group":"true" 지정하십시오. 또한 필터링을 지원하는 로그 스트림 접두사로 태스크 ID를 지정할 수도 있습니다. 자세한 내용은 로그용 Fluent Bit 플러그인을 참조하십시오. CloudWatch

{ "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 } ] }

Amazon Data Firehose 전송 스트림으로 로그 전달

참고

더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

다음 작업 정의 예제는 Amazon Data Firehose 전송 스트림으로 로그를 전달하는 로그 구성을 지정하는 방법을 보여줍니다. Firehose 전송 스트림이 이미 존재해야 합니다. 자세한 내용은 Amazon Data Firehose 개발자 안내서의 Amazon Data Firehose 전송 스트림 생성을 참조하십시오.

로그 구성 옵션에서 전송 스트림 이름과 이 스트림이 속한 지역을 지정합니다. 자세한 정보는 Fluent Bit Plugin for 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 } ] }

Amazon OpenSearch 서비스 도메인으로 로그 전달

참고

더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

다음 작업 정의 예제는 Amazon OpenSearch Service; 도메인으로 로그를 전달하는 로그 구성을 지정하는 방법을 보여줍니다. Amazon OpenSearch 서비스 도메인이 이미 존재해야 합니다. 자세한 내용은 Amazon OpenSearch OpenSearch 서비스 개발자 안내서의 Amazon Service란 무엇입니까? 를 참조하십시오.

로그 구성 옵션에서 OpenSearch 서비스 통합에 필요한 로그 옵션을 지정합니다. 자세한 내용은 아마존 OpenSearch 서비스용 Fluent Bit를 참조하십시오.

{ "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 } ] }

직렬화된 JSON인 컨테이너 로그 구문 분석

참고

더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

플루언트 비트 버전 1.3부터 플루언트 AWS 비트용 이미지에 포함된 JSON 파서가 있습니다. AWS 다음 예제는 작업 정의 구성에서 JSON 파서를 참조하는 방법을 보여줍니다. FireLens

"firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/fluent-bit/configs/parse-json.conf" } },

Fluent Bit 구성 파일은 JSON에 있는 로그를 구문 분석합니다(예를 들어, JSON 구문 분석없이 대상의 로그가 다음과 같은 경우).

{ "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" }

JSON 파싱을 사용하면 다음과 같은 로그가 작성됩니다.

{ "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" } }

직렬화된 JSON은 최종 JSON 출력의 최상위 필드로 확장됩니다. JSON 구문 분석에 대한 자세한 정보는 Fluent Bit 문서의 분석기를 참조하세요.

External Fluentd 또는 Fluent Bit로 전달

참고

더 많은 예를 보려면 에서 Amazon ECS FireLens 예제를 참조하십시오. GitHub

다음 태스크 정의 예시에서는 외부 Fluentd 또는 Fluent Bit 호스트에 로그를 전달하는 로그 구성을 지정하는 방법을 보여줍니다. 사용자 환경에 porthost를 지정합니다.

{ "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 } ] }