View a markdown version of this page

HLC 엔드포인트를 사용하여 로그 전송(HLC 로그) - Amazon CloudWatch Logs

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

HLC 엔드포인트를 사용하여 로그 전송(HLC 로그)

HLC Logs 엔드포인트(/services/collector/event)는 HTTP Log Collector(HLC) 형식을 기반으로 합니다.

보유자 토큰 인증을 사용하는 경우 계속하기 보유자 토큰 인증 설정 전에의 설정 단계를 완료합니다.

입력 모드

각 이벤트는 필수 "event" 필드가 있는 JSON 객체입니다. 선택적 메타데이터 필드: "time", "host", "source", "sourcetype", "index".

단일 이벤트:

{"event":"Hello world!","time":1486683865.0}

이벤트의 JSON 배열:

[ {"event":"msg1","time":1486683865.0}, {"event":"msg2","time":1486683866.0} ]

연결된/배치된 이벤트(어레이 래퍼 없음):

{"event":"msg1","time":1486683865.0}{"event":"msg2","time":1486683866.0}

이벤트 필드(필수)

"event" 필드는 필수입니다. 값은 모든 JSON 유형일 수 있습니다.

{"event":"a string message"} {"event":{"message":"structured data","severity":"INFO"}} {"event":42} {"event":true}

"event" 필드가 없는 객체는 자동으로 건너뜁니다.

{"message":"this is skipped — no event field"}

시간 필드(선택 사항)

"time" 필드는 에포크 초(밀리초 아님) 단위이며, 10진수는 1초 미만의 정밀도에 대한 선택적 10진수입니다.

형식 예제 다음으로 해석됨
Float "time":1486683865.500 1486683865500ms
Integer "time":1486683865 1486683865000ms
문자열(부동 소수점) "time":"1486683865.500" 1486683865500ms
문자열(정수) "time":"1486683865" 1486683865000ms
누락됨 (시간 필드 없음) 서버 현재 시간
잘못됨 "time":"invalid" 서버 현재 시간

Content-Type

application/json 허용됩니다.

허용되는 JSON 값 유형

최상위 유형 동작
가 있는 객체 "event" 수락됨
가 없는 객체 "event" 건너뜀
객체 배열 개별적으로 처리되는 각 요소
연결된 객체 개별적으로 처리되는 각 객체
프리미티브(문자열, 숫자, 부울, null) 건너뜀

엔드포인트 형식

HLC 엔드포인트 URL은 다음 형식을 따릅니다.

https://logs.<region>.amazonaws.com/services/collector/event?logGroup=<name>&logStream=<name>[&entityName=<name>&entityEnvironment=<environment>]

필수 파라미터:

  • <region> – AWS 리전(예: , us-east-1eu-west-1)

  • logGroup - URL로 인코딩된 로그 그룹 이름

  • logStream - URL로 인코딩된 로그 스트림 이름

선택적 파라미터:

필요에 따라 다음 쿼리 파라미터를 포함하여 로그 이벤트를 Service엔터티와 연결할 수 있습니다. HLC 엔드포인트를 통해 전송된 로그는 사용자 지정 원격 측정이므로 엔터티와 자동으로 연결되지 않습니다. CloudWatch Logs는 이러한 파라미터를 제공하여가 로 KeyAttributes.Type 설정된 개체를 생성하고 이를 로그 이벤트와 Service 연결합니다. 이를 통해 CloudWatch의 관련 기능 탐색은 이러한 로그를 동일한 서비스의 다른 원격 측정(지표, 추적 및 로그)과 상호 연관시킬 수 있으므로 다양한 신호 유형에서 애플리케이션의 문제를 더 쉽게 해결하고 모니터링할 수 있습니다. 개체 및 관련 원격 측정에 대한 자세한 내용은 사용자 지정 원격 측정에 관련 정보 추가를 참조하세요.

  • entityName - 로그 이벤트와 연결할 서비스 엔터티의 이름입니다. 이 값은 엔터티KeyAttributes.Name(예: my-application 또는 api.myservice.com)로 저장됩니다.

  • entityEnvironment - 서비스가 호스팅되는 환경 또는 서비스가 속한 환경입니다. 이 값은 개체KeyAttributes.Environment(예: , production ec2:default또는 eks:my-cluster/default)로 저장됩니다.

요청 형식

다음 헤더 및 본문과 함께 HTTP POST를 사용하여 로그를 전송합니다.

헤더:

  • Authorization: Bearer <your-bearer-token>

  • Content-Type: application/json

본문 형식:

요청 본문은 이벤트 배열과 함께 JSON 형식이어야 합니다.

{ "event": [ { "time": 1730141374.001, "event": "Application started successfully", "host": "web-server-1", "source": "application.log", "severity": "info" }, { "time": 1730141374.457, "event": "User login successful", "host": "web-server-1", "source": "auth.log", "user": "john.doe" } ] }

필드 설명:

  • time - Unix epoch 타임스탬프, 1초 미만의 정밀도에 대한 선택적 10진수(선택 사항)

  • event - 로그 메시지 또는 이벤트 데이터(필수)

  • host - 소스 호스트 이름 또는 식별자(선택 사항)

  • source - 로그 소스 식별자(선택 사항)

필요에 따라 추가 사용자 지정 필드를 포함할 수 있습니다.

요청 예제

curl -X POST "https://logs.<region>.amazonaws.com/services/collector/event?logGroup=MyLogGroup&logStream=MyStream" \ -H "Authorization: Bearer ACWL<token>" \ -H "Content-Type: application/json" \ -d '{"event":{"message":"User logged in","user_id":"u-123"},"time":1486683865.0,"host":"web-01","source":"auth-service"}'

모범 사례

이벤트 일괄 처리

성능 및 효율성 향상을 위해:

  • 가능한 경우 단일 요청으로 여러 이벤트 배치

  • 권장 배치 크기: 요청당 이벤트 10~100개

  • 최대 요청 크기: 1MB

오류 처리

애플리케이션에서 적절한 오류 처리를 구현합니다. 일반적인 HTTP 상태 코드:

  • 200 OK - 로그가 성공적으로 수집됨

  • 400 Bad Request - 잘못된 요청 형식 또는 파라미터

  • 401 Unauthorized - 유효하지 않거나 만료된 보유자 토큰

  • 403 Forbidden - 권한 부족

  • 404 Not Found - 로그 그룹 또는 스트림이 존재하지 않음

  • 429 Too Many Requests - 속도 제한 초과

  • 500 Internal Server Error - 서비스 오류(지수 백오프로 재시도)

제한 사항

  • 최대 이벤트 크기: 이벤트당 256KB

  • 최대 요청 크기: 1MB

  • 요청당 최대 이벤트 수: 10,000

  • 로그 그룹 이름은 CloudWatch Logs 명명 규칙을 따라야 합니다.

  • 보유자 토큰 인증을 사용하는 경우 로그 그룹에서 보유자 토큰 인증을 활성화해야 합니다.