본문 바로가기

모니터링 도구/DataDog

Datadog 과 AWS 서비스 연동하기

728x90
반응형

# Datadog 과 AWS CloudWatch를 연동하여 모니터링 가능하도록 해봅시다.

- 일단 Datadog 사이트로 이동하여 아래와 같이 Intergration을 클릭 > AWS Install을 클릭하여 이동합니다.

- 아래와 같은 화면에서 Configuration > 하단에 Manually를 클릭하여 설정을 합니다.

- 아래의 AWS External ID 를 별도의 메모장에 기록을 해둡니다.

- AWS IAM으로 이동하여 Datadog이 AWS의 각종 자원들의 지표를 읽을수 있도록 설정 합니다.

- IAM > 역할 > 역할만들기 클릭 > 역할만들기 화면에서 다른 AWS 계정을 선택 후 Datadog's Account ID를 입력하여 진행 합니다. (Datadog의 Account ID : 464622532012 )

-옵션을 체크하면 아래와같이 외부ID를 넣을수 있습니다. 여기에 이전에 Datadog에서 복사한 External ID를 입력하여 다음으로 진행 합니다.

- 다음으로 화면이 넘어가면 정책 생성을 할 수 있는 창이 나옵니다. 여기서 정책 생성을 클릭 후 JSON 탭으로 이동 합니다.

- JSON 탭에서 아래의 All permissions 룰을 복사하여 붙여넣습니다. (Core permissions 도 설정 할 수 있습니다. 링크 확인 : https://docs.datadoghq.com/integrations/amazon_web_services/?tab=roledelegation#all-permissions)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "apigateway:GET",
                "autoscaling:Describe*",
                "budgets:ViewBudget",
                "cloudfront:GetDistributionConfig",
                "cloudfront:ListDistributions",
                "cloudtrail:DescribeTrails",
                "cloudtrail:GetTrailStatus",
                "cloudtrail:LookupEvents",
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "codedeploy:List*",
                "codedeploy:BatchGet*",
                "directconnect:Describe*",
                "dynamodb:List*",
                "dynamodb:Describe*",
                "ec2:Describe*",
                "ecs:Describe*",
                "ecs:List*",
                "elasticache:Describe*",
                "elasticache:List*",
                "elasticfilesystem:DescribeFileSystems",
                "elasticfilesystem:DescribeTags",
                "elasticfilesystem:DescribeAccessPoints",
                "elasticloadbalancing:Describe*",
                "elasticmapreduce:List*",
                "elasticmapreduce:Describe*",
                "es:ListTags",
                "es:ListDomainNames",
                "es:DescribeElasticsearchDomains",
                "fsx:DescribeFileSystems",
                "fsx:ListTagsForResource",
                "health:DescribeEvents",
                "health:DescribeEventDetails",
                "health:DescribeAffectedEntities",
                "kinesis:List*",
                "kinesis:Describe*",
                "lambda:GetPolicy",
                "lambda:List*",
                "logs:DeleteSubscriptionFilter",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:DescribeSubscriptionFilters",
                "logs:FilterLogEvents",
                "logs:PutSubscriptionFilter",
                "logs:TestMetricFilter",
                "organizations:DescribeOrganization",
                "rds:Describe*",
                "rds:List*",
                "redshift:DescribeClusters",
                "redshift:DescribeLoggingStatus",
                "route53:List*",
                "s3:GetBucketLogging",
                "s3:GetBucketLocation",
                "s3:GetBucketNotification",
                "s3:GetBucketTagging",
                "s3:ListAllMyBuckets",
                "s3:PutBucketNotification",
                "ses:Get*",
                "sns:List*",
                "sns:Publish",
                "sqs:ListQueues",
                "states:ListStateMachines",
                "states:DescribeStateMachine",
                "support:*",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

- 태그가 필요하면 추가 합니다. 태그 설정이 끝나면 다음으로 넘어 갑니다.

- 정책 이름을 정합니다. 여기서는 Datadog-Monitoring-TEST 라고 정하겠습니다. 정책 생성을 클릭하여 다음으로 넘어 가겠습니다.

- 생성한 정책을 확인, 정책이 정상적으로 생성된것을 볼 수 있습니다.

- 역할을 다시 한번 생성 합니다. 위의 Datadog의 Account ID 와 External ID를 이전과 같이 입력하고 다음으로 넘어 갑니다. 

- 권한 정책 연결에서 이전에 생성한 Datadog-Monitoring-TEST 정책과 연결을 합니다.

- 태그를 추가 합니다. (필요없으면 안해도 되며 추후에 추가해도 됩니다.)

- 역할이름, 설명, 정책 등 설정이 정상적으로 되어 있는지 확인 후 역할 만들기를 클릭합니다.

- 정상적으로 역할이 생성이 됐는지 확인 합니다.

- 이제 AWS에서의 작업은 완료 되었으며, 다시이전의 Datadog 설정 화면으로 이동합니다. (여기서 주의할 점은 이전의 설정 화면에서 바로 진행을 해야합니다. 이유는 AWS External ID가 현재 페이지에서 벗어나면 새로운 ID로 생성이 됩니다. 그렇게 되면 역할을 새로운 ID에 맞게 다시 생성을 해줘야하는 번거로움이 있습니다.)
- Intergrations > AWS > Install > Configuration > Manually 클릭하여 설정 화면으로 이동 합니다.
- 여기서 이제 AWS Account ID 와 방금 생성한 AWS Role name을 입력하여 설정을 적용 합니다.

- 인증이 정상적으로 되면 아래와 같은 정보로 표시 됩니다.

- 최종적으로 Install Intergration을 클릭하면 정상적으로 AWS에서 해당 계정에 대한 정보를 받아옵니다.

- 아래와 같이 DashBoard 리소스가 정상적으로 생성된것을 확인 할 수 있습니다.

- EC2 지표를 보기위해 클릭! 테스트라 리소스가 별로 없어서 많은정보는 노출이 안되어 있지만 모니터링 정보를 자동으로 생성해주는 것이 인상적 입니다.

- Infrastructure의 모습

- 결론 : 개인 테스트 계정으로 테스트를 하여 많은양의 리소르를 모니터링 할 수 없었으나, 모니터링 구현이 상당히 간단하고 AWS 계정단위의 모니터링 구현을 할 수 있으므로, 보다 쉬운 설정이 가능하다.

- 끝 -

728x90
반응형