HTTP 데이터 수집기 API를 사용하여 Log Analytics에 로그 데이터 보내기
Azure Log Analytics HTTP 데이터 수집기 API를 사용하면 REST API를 호출할 수 있는 모든 클라이언트에서 Log Analytics 작업 영역에 JSON 데이터를 POST할 수 있습니다. 이 메서드를 사용하면 타사 애플리케이션 또는 스크립트(예: Azure Automation Runbook에서)에서 데이터를 보낼 수 있습니다.
요청 URI
Log Analytics 작업 영역을 지정하려면 {CustomerID} 를 작업 영역의 ID로 대체합니다.
메서드 | 요청 URI |
---|---|
게시 | https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01 |
요청 | URI 매개 변수 |
---|---|
매개 변수 | Description |
CustomerID | Log Analytics 작업 영역에 대한 고유 식별자 |
리소스 | API 리소스 이름입니다. /api/logs |
API 버전 | 이 요청과 함께 사용할 API의 버전입니다. 현재 2016-04-01 |
요청 헤더
다음 표의 요청 헤더는 필수 사항입니다.
헤더 | Description |
---|---|
권한 부여 | HMAC-SHA256 헤더 만들기에 대한 자세한 내용은 아래를 참조하세요. |
콘텐츠 형식 | 필수 사항입니다. 애플리케이션/json으로 설정 |
Log-Type | 제출할 메시지의 이름을 지정할 수 있습니다. 현재 로그 형식은 알파 문자만 지원합니다. 숫자 또는 특수 문자를 지원하지 않습니다. |
x-ms-date | 요청이 RFC 1123 형식으로 처리된 날짜 |
time-generated-field | TimeGenerated 필드로 사용할 메시지의 타임스탬프 필드를 지정할 수 있습니다. 이렇게 하면 메시지 데이터의 실제 타임스탬프를 반영하도록 TimeGenerated를 구성할 수 있습니다. 이 필드를 지정하지 않으면 메시지가 수집될 때 TimeGenerated의 기본값입니다. 지정된 메시지 필드는 YYYY-MM-DDThh:mm:ssZ의 ISO 8601을 따라야 합니다. |
권한 부여 헤더
Log Analytics HTTP 데이터 수집기 API에 대한 모든 요청에는 권한 부여 헤더가 포함되어야 합니다. 요청을 인증하려면 요청을 만드는 작업 영역에 대한 기본 또는 보조 키로 요청에 서명하고 요청의 일부로 해당 서명을 전달해야 합니다.
권한 부여 헤더의 형식은 다음과 같습니다.
Authorization: SharedKey <WorkspaceID>:<Signature>
WorkspaceID 는 Log Analytics 작업 영역에 대한 고유한 식별 자이며 서명 은 요청에서 생성되고 SHA256 알고리즘을 사용하여 계산된 다음 Base64 인코딩을 사용하여 인코딩된 해시 기반 HMAC(메시지 인증 코드)입니다.
서명 문자열 생성
공유 키 서명 문자열을 인코딩하려면 다음 형식을 사용합니다.
StringToSign = VERB + "\n" +
Content-Length + "\n" +
Content-Type + "\n" +
x-ms-date + "\n" +
"/api/logs";
다음 예제에서는 서명 문자열을 보여줍니다.
POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs
다음으로, UTF-8로 인코딩된 서명 문자열을 통해 HMAC-SHA256 알고리즘을 사용하여 이 문자열을 인코딩하고, 권한 부여 헤더를 생성하고, 헤더를 요청에 추가합니다.
서명 인코딩
서명을 인코딩하려면 UTF-8로 인코딩된 서명 문자열에서 HMAC-SHA256 알고리즘을 호출하고 결과를 Base64로 인코딩합니다. 다음 형식을 사용합니다(의사 코드로 표시됨).
Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))
요청 본문
엔드포인트에 제출된 메시지의 본문입니다.
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
}
동일한 유형의 여러 메시지를 단일 요청 본문에 일괄 처리할 수 있습니다.
[
{
"key1": "value1",
"key2": "value2",
"key3": "value3",
"key4": "value4"
},
{
"key1": "value5",
"key2": "value6",
"key3": "value7",
"key4": "value8"
}
]
데이터 제한
Log Analytics 데이터 수집 API에 게시된 데이터에 대한 몇 가지 제약 조건이 있습니다.
- Log Analytics 데이터 수집기 API의 게시물당 최대 30MB. 이는 단일 게시물에 대한 크기 제한입니다. 단일 게시물의 데이터가 30MB를 초과하는 경우 보다 작은 크기의 청크로 분할하여 동시에 보내야 합니다.
- 최대 32KB의 필드 값 제한. 필드 값이 32KB보다 크면 데이터가 잘립니다.
- 지정된 형식의 권장되는 최대 필드 수는 50개입니다. 이는 사용 편의성 및 검색 환경 관점에서의 실용적인 제한입니다.