Azure Log Analytics HTTP 데이터 수집기 API를 사용하면 REST API를 호출할 수 있는 모든 클라이언트에서 JSON 데이터를 Log Analytics 작업 영역에 POST할 수 있습니다. 이 방법을 사용하면 타사 애플리케이션 또는 스크립트(예: Azure Automation의 Runbook)에서 데이터를 보낼 수 있습니다
URI 요청
Log Analytics 작업 영역을 지정하려면 {CustomerID} 를 작업 영역의 ID로 바꿉니다.
| 메서드 | URI 요청 |
|---|---|
| 올리기 | https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01 |
| 요청 | URI 매개 변수 |
|---|---|
| 매개 변수 | 설명 |
| 고객ID | Log Analytics 작업 영역의 고유 식별자 |
| 리소스 | API 리소스 이름. /api/로그 |
| API 버전 | 이 요청에 사용할 API의 버전입니다. 현재 2016-04-01 |
요청 헤더
다음 표의 요청 헤더는 필수입니다.
| 헤더 | 설명 |
|---|---|
| 승인 | HMAC-SHA256 헤더 만들기에 대한 아래의 추가 정보를 참조하십시오. |
| 콘텐츠 유형 (Content-Type) | 필수 사항입니다. 이것을 application/json으로 설정하십시오. |
| 로그 유형 | 제출 중인 메시지의 이름을 지정할 수 있습니다. 현재 로그 유형은 알파벳 문자만 지원합니다. 숫자나 특수 문자는 지원하지 않습니다 |
| x-ms-날짜 | 요청이 RFC 1123 형식으로 처리된 날짜 |
| 생성된 시간 필드 | TimeGenerated 필드로 사용할 메시지의 타임스탬프 필드를 지정할 수 있습니다. 이렇게 하면 메시지 데이터의 실제 타임스탬프를 반영하도록 TimeGeneratened를 구성할 수 있습니다. 이 필드를 지정하지 않으면 메시지가 수집될 때 TimeGeneraten의 기본값입니다. 지정된 메시지 필드는 YYYY-MM-DDThh:mm:ssZ의 ISO 8601을 따라야 합니다. |
권한 부여 헤더
Log Analytics HTTP Data Collector API에 대한 모든 요청에는 Authorization 헤더가 포함되어야 합니다. 요청을 인증하려면 요청을 수행하는 작업 영역의 기본 또는 보조 키를 사용하여 요청에 서명하고 해당 서명을 요청의 일부로 전달해야 합니다.
Authorization 헤더의 형식은 다음과 같습니다.
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 알고리즘을 사용하여 이 문자열을 인코딩하고, Authorization 헤더를 구성하고, 요청에 헤더를 추가합니다.
서명 인코딩
서명을 인코딩하려면 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 Data Collector API에 대한 게시물당 최대 30MB입니다. 이는 단일 게시물에 대한 크기 제한입니다. 단일 게시물의 데이터가 30MB를 초과하는 경우 데이터를 더 작은 크기의 청크로 분할하여 동시에 보내야 합니다.
- 최대 32KB의 필드 값 제한. 필드 값이 32KB보다 크면 데이터가 잘립니다.
- 지정된 형식의 권장되는 최대 필드 수는 50개입니다. 이는 사용 편의성 및 검색 환경 관점에서의 실용적인 제한입니다.