Wysyłanie danych dzienników do usługi Log Analytics przy użyciu interfejsu API modułu zbierającego dane HTTP

Interfejs API modułu zbierającego dane HTTP usługi Azure Log Analytics umożliwia wysyłanie danych JSON do obszaru roboczego usługi Log Analytics z dowolnego klienta, który może wywoływać interfejs API REST. Za pomocą tej metody można wysyłać dane z aplikacji innych firm lub skryptów, takich jak z elementu Runbook w Azure Automation

Identyfikator URI żądania

Aby określić obszar roboczy usługi Log Analytics, zastąp element {CustomerID} identyfikatorem obszaru roboczego.

Metoda Identyfikator URI żądania
Wpis https://{CustomerID}.ods.opinsights.azure.com/< Resource>?api-version=2016-04-01
Żądanie Parametry identyfikatora URI
Parametr Opis
CustomerID Unikatowy identyfikator obszaru roboczego usługi Log Analytics
Zasób Nazwa zasobu interfejsu API. /api/logs
Wersja interfejsu API Wersja interfejsu API do użycia z tym żądaniem. Obecnie 2016-04-01

Nagłówki żądań

Nagłówki żądania w poniższej tabeli są wymagane.

Nagłówek Opis
Autoryzacja Zobacz dodatkowe informacje poniżej dotyczące tworzenia nagłówka HMAC-SHA256
Content-Type Wymagane. Ustaw tę wartość na wartość application/json
Log-Type Umożliwia określenie nazwy przesyłanej wiadomości. Obecnie typ dziennika obsługuje tylko znaki alfa. Nie obsługuje liczb ani znaków specjalnych
x-ms-date Data przetworzenia żądania w formacie RFC 1123
pole wygenerowane czasowo Umożliwia określenie pola znacznika czasu komunikatu, które ma być używane jako pole TimeGenerated. Dzięki temu można skonfigurować funkcję TimeGenerated tak, aby odzwierciedlała rzeczywisty znacznik czasu z danych komunikatu. Jeśli to pole nie jest określone, wartość domyślna dla timeGenerated podczas pozyskiwania komunikatu. Określone pole komunikatu powinno być zgodne z normą ISO 8601 z RRRR-MM-DDThh:mm:ssZ

Nagłówek autoryzacji

Każde żądanie do interfejsu API modułu zbierającego dane HTTP usługi Log Analytics musi zawierać nagłówek Autoryzacja. Aby uwierzytelnić żądanie, musisz podpisać żądanie przy użyciu klucza podstawowego lub pomocniczego dla obszaru roboczego wysyłającego żądanie i przekazać ten podpis w ramach żądania.

Format nagłówka autoryzacji jest następujący:

Authorization: SharedKey <WorkspaceID>:<Signature>

WorkspaceID to unikatowy identyfikator obszaru roboczego usługi Log Analytics, a Signature to oparty na skrótach kod uwierzytelniania komunikatów (HMAC) utworzony na podstawie żądania i obliczany przy użyciu algorytmu SHA256, a następnie zakodowany przy użyciu kodowania Base64.

Konstruowanie ciągu podpisu

Aby zakodować ciąg sygnatury klucza współdzielonego, użyj następującego formatu:

	StringToSign = VERB + "\n" +
	Content-Length + "\n" +
	Content-Type + "\n" +
	x-ms-date + "\n" +
	"/api/logs";

W poniższym przykładzie pokazano ciąg podpisu:

POST \n1024\napplication/json\nx-ms-date:Mon, 04 Apr 2016 08:00:00 GMT\n/api/logs

Następnie zakoduj ten ciąg przy użyciu algorytmu HMAC-SHA256 za pośrednictwem ciągu podpisu zakodowanego w formacie UTF-8, skonstruuj nagłówek Authorization i dodaj nagłówek do żądania.

Kodowanie podpisu

Aby zakodować podpis, wywołaj algorytm HMAC-SHA256 w ciągu podpisu zakodowanym w formacie UTF-8 i zakoduj wynik jako Base64. Użyj następującego formatu (pokazanego jako pseudokod):

Signature=Base64(HMAC-SHA256(UTF8(StringToSign)))

Treść żądania

Treść komunikatu przesłanego do punktu końcowego.

	{
	  "key1": "value1",
	  "key2": "value2",
	  "key3": "value3",
	  "key4": "value4"
	}

Można podzielić wiele komunikatów tego samego typu na jedną treść żądania.

	[
	  {
	    "key1": "value1",
	    "key2": "value2",
	    "key3": "value3",
	    "key4": "value4"
	  },
	  {
	    "key1": "value5",
	    "key2": "value6",
	    "key3": "value7",
	    "key4": "value8"
	  }
	]

Limity danych

Istnieją pewne ograniczenia dotyczące danych publikowanych w interfejsie API zbierania danych usługi Log Analytics.

  • Maksymalnie 30 MB na wpis do interfejsu API modułu zbierającego dane usługi Log Analytics. Jest to limit rozmiaru pojedynczego wpisu. Jeśli dane z pojedynczego wpisu przekraczającego 30 MB, należy podzielić dane na fragmenty o mniejszym rozmiarze i wysłać je współbieżnie.
  • Maksymalny limit rozmiaru dla wartości pól to 32 KB. Jeśli wartość pola jest większa niż 32 KB, dane zostaną obcięte.
  • Zalecana maksymalna liczba pól dla danego typu to 50. Jest to praktyczny limit z perspektywy użyteczności i środowiska wyszukiwania.

Zobacz też