[DataDog] AWS ECS 로그 수집 구성

[원본 링크]

AWS ECS(Fargate) 환경에서 DataDog에 로그를 수집하도록 구성하는 방법을 기록한다.

관련 포스트
https://blog.naver.com/sssang97/224267416141




FireLens 드라이버 수정

기존 서비스의 작업정의를 수정해서 덧대는 식으로 진행한다.

컨테이너 정의 탭으로 이동해서

이걸 FireLens - 사용자 지정으로 변경한다.


그래서 이렇게 입력하고, apikey에는 DataDog Key를 넣으면 된다.

아래는 JSON 입력 풀버전

            "logConfiguration": {
                "logDriver": "awsfirelens",
                "options": {
                    "apikey": "...",
                    "provider": "ecs",
                    "dd_service": "chainshift-api",
                    "Host": "http-intake.logs.datadoghq.com",
                    "TLS": "on",
                    "dd_source": "go",
                    "dd_tags": "env:qa",
                    "Name": "datadog"
                }
            },



로그 라우팅 컨테이너 추가

그리고 추가 사이드카 컨테이너가 하나 필요하다.
이게 실제로 로그를 받아서 외부에 전송해주는 역할을 한다.

ECR에서 공식 이미지로 제공하는게 있으니, 그걸 대충 넣기만 하면 된다.

다음은 컨테이너 정의의 JSON 풀버전이다.

        {
            "name": "log_router",
            "image": "amazon/aws-for-fluent-bit:stable",
            "cpu": 0,
            "portMappings": [],
            "essential": true,
            "environment": [],
            "mountPoints": [],
            "volumesFrom": [],
            "user": "0",
            "systemControls": [],
            "firelensConfiguration": {
                "type": "fluentbit",
                "options": {
                    "enable-ecs-log-metadata": "true"
                }
            }
        }

그렇게 실행을 하고

오류 없이 잘 등록이 된다면


실제로 전송까지도 잘 될 것이다.