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.