AWS re:Post을(를) 사용하면 다음에 동의하게 됩니다. AWS re:Post 이용 약관

Fargate에서 Amazon ECS 작업으로 Splunk 로그 드라이버를 사용하려면 어떻게 해야 하나요?

4분 분량
0

AWS Fargate에서 Amazon Elastic Container Service(Amazon ECS) 작업으로 Splunk 로그 드라이버를 사용하고 싶습니다.

간략한 설명

“로깅 드라이버”라고도 하는 Fargate의 Docker에서 Splunk 로그 드라이버를 사용하여 컨테이너 로그를 Enterprise Splunk 로그 수집기 또는 Splunk Cloud로 보낼 수 있습니다.

해결 방법

Fargate 로그를 수신하도록 Splunk Cloud 환경을 설정합니다.

  1. 무료 Splunk 옵션을 사용하여 Splunk Cloud 계정을 만들 수 있습니다. 이미 Splunk Cloud 계정이 있다면 2단계로 건너뛰세요. 자세한 내용을 알아보려면 Splunk 웹 사이트에서 무료 Splunk를 참조하세요.
  2. Splunk Cloud 계정에 로그인합니다.
    참고: 계정을 생성한 후 Splunk Cloud URL, 사용자 이름 및 암호를 사용하여 로그인합니다.
  3. 탐색 메뉴에서, 설정을 선택하세요.
  4. 데이터 섹션에서 데이터 입력을 선택합니다.
  5. 로컬 입력 섹션의 작업 열에서 새로 추가를 선택합니다.
    참고: HTTP 및 보안 HTTP(HTTPS) 프로토콜을 통해 데이터 및 애플리케이션 이벤트를 Splunk 배포에 전송할 수 있도록 HTTP Event Collector(HEC) 토큰을 생성합니다.
  6. 이름에서 토큰 이름을 입력한 후 다음을 선택합니다.
  7. 설치 마법사의 나머지 페이지를 단계별로 진행하고 제출을 선택하여 HEC 토큰을 생성합니다.
    참고: 기본값은 그대로 둘 수 있습니다.
  8. curl 또는 Docker를 사용하여 새 토큰을 테스트합니다.
    참고: 기본적으로 Splunk는 포트 8088에서 수신 대기하고 /services/collector 경로의 이벤트를 수락합니다.
    curl:
    curl -k  https://prd-p-9l79p.splunkcloud.com:8088/services/collector -H "Authorization: Splunk splunk-token" -d '{"event": "Put this message in Splunk"}'
    참고: splunk-token을 이전에 생성한 HEC 토큰으로 교체합니다.
    Docker:
    docker run --publish 80:80 --log-driver=splunk --log-opt splunk-token=splunk token --log-opt splunk-url=https://prd-p-u7z1u.splunkcloud.com:8088 --log-opt splunk-insecureskipverify=true --log-opt splunk-sourcetype=docker-test --log-opt splunk-index=main  nginx

참고: splunk-token을 이전에 생성한 HEC 토큰으로 교체합니다.

HEC 토큰을 사용하도록 AWS Secrets Manager를 구성합니다.

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

Fargate가 토큰을 안전하게 사용할 수 있도록 Secrets Manager에 HEC 토큰을 저장하려면 다음 명령을 실행합니다.

aws secretsmanager create-secret --name splunk-token --secret-string token-value

참고: splunk-token을 HEC 토큰으로 교체하세요. token-value를 해당 토큰 값으로 바꾸세요.

시크릿에 액세스할 수 있는 권한이 있는 작업 실행 역할 구성

  1. AWS Identity and Access Management(IAM) 콘솔을 엽니다.
  2. 탐색 창에서 역할을 선택합니다.
  3. 역할 목록에서 ecsTaskExecutionRole을 검색하고 선택합니다.
  4. 인라인 정책 추가를 선택합니다.
  5. 편집기의 JSON 탭을 선택한 후 다음 정책을 입력합니다.
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt"
          ],
          "Resource": [
            "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>",
            "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>"
          ]
        }
      ]
    }
    참고: 사용자 지정 AWS Key Management Service(AWS KMS) 키를 사용하여 암호를 암호화하는 경우 KMS 키에 kms:Decrypt 권한과 Amazon 리소스 이름(ARN)을 제공하세요.
  6. 정책 검토를 선택합니다.
  7. 이름에 해당 정책 이름을 입력합니다.
  8. 정책 생성을 선택합니다.

Fargate에서 Amazon ECS 작업에 대한 작업 정의를 구성하세요.

  1. Amazon ECS 콘솔을 엽니다.
  2. 탐색 창의 Amazon ECS 섹션에서 작업 정의를 선택합니다.
  3. 새 작업 정의 만들기를 선택합니다.
  4. Fargate를 선택한 후 다음 단계를 선택합니다.
  5. 작업 및 컨테이너 정의 구성 섹션에서 작업 정의 이름에 작업 정의의 이름을 입력합니다.
  6. 작업 역할에서 이전에 구성한 역할을 선택합니다.
  7. 작업 크기 섹션에서 작업 메모리(GB) 및 **작업 CPU(vCPU)**에 작업에 적합한 값을 입력합니다.
  8. 컨테이너 정의 섹션에서 컨테이너 추가를 선택합니다.
  9. 컨테이너 요구 사항에 적합한 옵션을 선택하세요.
  10. 드롭다운 메뉴의 로깅 섹션에서 Splunk로 로그 내보내기를 선택합니다.
  11. 로그 옵션의 키 및 값 옵션에 대해 다음을 입력합니다.
    키: splunk-url
    값: 해당 Splunk 엔드포인트(예: https://prd-p-9l79p.splunkcloud.com:8088/)
    키: splunk-insecureskipverify
    값: True
    **키: **splunk-token
    valueFrom: 이전에 생성한 Secret ARN
  12. 추가를 선택합니다.
    참고: Splunk의 코드 및 구성에 대한 자세한 내용을 알아보려면 GitHub의 [splunk.go 및 Docker 웹 사이트의 Splunk 옵션](https://docs.docker.com/config/containers/logging/splunk/#splunk-options)을 참조하세요.
  13. 작업 정의를 생성하려면 생성을 선택합니다.
  14. Amazon ECS 서비스를 생성하거나 이전에 생성한 작업 정의를 사용하는 작업을 실행합니다.

Splunk Cloud에서 로그를 확인하세요.

Splunk Cloud에서 로그를 확인하기 전에 작업이 실행 중인지 확인하세요.

참고: 로그 구성에서 splunk-index를 지정하지 않았기 때문에 로그는 기본적으로 기본 인덱스의 splunk-index로 이동합니다.

  1. Splunk Cloud 계정에 연결합니다.
  2. 탐색 메뉴에서 검색을 선택합니다.
  3. 검색 상자에 **index="main"**을 입력합니다.

참고: 이전 단계에 따라 Amazon ECS for an Amazon ElasticCompute Cloud(Amazon EC2) 시작 유형에 대한 작업 정의를 Amazon ECS에서 생성할 수 있습니다. 그런 다음 모든 ECS 작업에서 Splunk 로그 드라이버를 사용하여 로그를 Splunk 로그 컬렉터로 전송할 수 있습니다.

관련 정보

Amazon ECS 작업 실행 IAM 역할

AWS 공식
AWS 공식업데이트됨 7달 전