Samouczek: Pozyskiwanie danych monitorowania i wykonywanie zapytań względem tych danych w usłudze Azure Data Explorer
W tym samouczku nauczymy Cię, jak pozyskiwać dane z dzienników diagnostycznych i dzienników aktywności do klastra usługi Azure Data Explorer bez pisania kodu. Ta prosta metoda pozyskiwania pozwala na szybkie rozpoczęcie tworzenia zapytań w usłudze Azure Data Explorer na potrzeby analizy danych.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie tabel i mapowania pozyskiwania w bazie danych usługi Azure Data Explorer.
- Formatowanie pozyskanych danych za pomocą zasad aktualizacji.
- Tworzenie centrum zdarzeń i łączenie go z usługą Azure Data Explorer.
- Przesyłanie strumieniowe danych do centrum zdarzeń z metryk diagnostycznych i dzienników aktywności usługi Azure Monitor.
- Tworzenie zapytań dotyczących pozyskiwanych danych za pomocą usługi Azure Data Explorer.
Uwaga
Tworzenie wszystkich zasobów w tej samej lokalizacji lub regionie platformy Azure.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz bezpłatne konto platformy Azure.
- Baza danych i klaster usługi Azure Data Explorer. Utwórz klaster i bazę danych. Nazwa bazy danych używanej w tym samouczku to TestDatabase.
Dostawca danych usługi Azure Monitor: metryki diagnostyczne i dzienniki oraz dzienniki aktywności
Wyświetl i zapoznaj się z danymi dostarczonymi przez poniższe metryki diagnostyczne i dzienniki oraz dzienniki i dzienniki aktywności usługi Azure Monitor. Utworzysz potok pozyskiwania na podstawie tych schematów danych. Należy pamiętać, że każde zdarzenie w dzienniku ma tablicę rekordów. Ta tablica rekordów zostanie podzielona w dalszej części tego samouczka.
Przykłady metryk diagnostycznych i dzienników aktywności oraz dzienników aktywności
Metryki diagnostyczne platformy Azure oraz dzienniki i dzienniki aktywności są emitowane przez usługę platformy Azure i dostarczają dane dotyczące działania tej usługi.
Przykład metryk diagnostycznych
Metryki diagnostyczne są agregowane z ziarnem czasu 1 minuty. Poniżej przedstawiono przykład schematu zdarzenia metryki usługi Azure Data Explorer w czasie trwania zapytania:
{
"records": [
{
"count": 14,
"total": 0,
"minimum": 0,
"maximum": 0,
"average": 0,
"resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
"time": "2018-12-20T17:00:00.0000000Z",
"metricName": "QueryDuration",
"timeGrain": "PT1M"
},
{
"count": 12,
"total": 0,
"minimum": 0,
"maximum": 0,
"average": 0,
"resourceId": "/SUBSCRIPTIONS/<subscriptionID>/RESOURCEGROUPS/<resource-group>/PROVIDERS/MICROSOFT.KUSTO/CLUSTERS/<cluster-name>",
"time": "2018-12-21T17:00:00.0000000Z",
"metricName": "QueryDuration",
"timeGrain": "PT1M"
}
]
}
Konfigurowanie potoku pozyskiwania w usłudze Azure Data Explorer
Konfigurowanie potoku w usłudze Azure Data Explorer obejmuje kilka kroków, takich jak tworzenie tabeli i pozyskiwanie danych. Można również modyfikować, mapować i aktualizować dane.
Nawiązywanie połączenia z internetowym interfejsem użytkownika usługi Azure Data Explorer
W bazie danych Usługi Azure Data Explorer TestDatabase wybierz pozycję Zapytanie , aby otworzyć internetowy interfejs użytkownika usługi Azure Data Explorer.
Tworzenie tabel docelowych
Struktura dzienników usługi Azure Monitor nie jest tabelaryczna. Zmanipulujesz dane i rozszerzysz każde zdarzenie do co najmniej jednego rekordu. Nieprzetworzone dane zostaną pozyskane do tabeli pośredniej o nazwie ActivityLogsRawRecords dla dzienników aktywności i diagnosticRawRecords dla metryk diagnostycznych i dzienników. W tym momencie dane będą modyfikowane i rozwijane. Korzystając z zasad aktualizacji, rozwinięte dane zostaną następnie pozyskane do tabeli ActivityLogs dla dzienników aktywności, DiagnosticMetrics dla metryk diagnostycznych i dzienników diagnostycznych dla dzienników diagnostycznych. Oznacza to, że należy utworzyć dwie oddzielne tabele na potrzeby pozyskiwania dzienników aktywności i trzech oddzielnych tabel na potrzeby pozyskiwania metryk diagnostycznych i dzienników.
Użyj internetowego interfejsu użytkownika usługi Azure Data Explorer, aby utworzyć tabele docelowe w bazie danych usługi Azure Data Explorer.
Tworzenie tabel dla metryk diagnostycznych
W bazie danych TestDatabase utwórz tabelę o nazwie DiagnosticMetrics w celu przechowywania rekordów metryk diagnostycznych. Użyj następującego
.create table
polecenia zarządzania:.create table DiagnosticMetrics (Timestamp:datetime, ResourceId:string, MetricName:string, Count:int, Total:double, Minimum:double, Maximum:double, Average:double, TimeGrain:string)
Wybierz pozycję Uruchom, aby utworzyć tabelę.
Utwórz tabelę danych pośrednich o nazwie DiagnosticRawRecords w bazie danych TestDatabase na potrzeby manipulowania danymi przy użyciu następującego zapytania. Wybierz pozycję Uruchom, aby utworzyć tabelę.
.create table DiagnosticRawRecords (Records:dynamic)
Ustaw zasady przechowywania zerowego dla tabeli pośredniej:
.alter-merge table DiagnosticRawRecords policy retention softdelete = 0d
Tworzenie mapowań tabel
Format danych to json
, dlatego wymagane jest mapowanie danych. Mapowanie json
mapuje każdą ścieżkę JSON na nazwę kolumny tabeli. Ścieżki JSON zawierające znaki specjalne powinny zostać uniknięte jako ['Nazwa właściwości']. Aby uzyskać więcej informacji, zobacz Składnia JSONPath.
Mapuj metryki diagnostyczne i dzienniki na tabelę
Aby zamapować metryki diagnostyczne i dane dziennika na tabelę, użyj następującego zapytania:
.create table DiagnosticRawRecords ingestion json mapping 'DiagnosticRawRecordsMapping' '[{"column":"Records","Properties":{"path":"$.records"}}]'
Tworzenie zasad aktualizacji dla danych metryk i dzienników
Tworzenie zasad aktualizacji danych dla metryk diagnostycznych
Utwórz funkcję, która rozszerza kolekcję rekordów metryk diagnostycznych, aby każda wartość w kolekcji otrzymała oddzielny wiersz. Użyj operatora
mv-expand
:.create function DiagnosticMetricsExpand() { DiagnosticRawRecords | mv-expand events = Records | where isnotempty(events.metricName) | project Timestamp = todatetime(events['time']), ResourceId = tostring(events.resourceId), MetricName = tostring(events.metricName), Count = toint(events['count']), Total = todouble(events.total), Minimum = todouble(events.minimum), Maximum = todouble(events.maximum), Average = todouble(events.average), TimeGrain = tostring(events.timeGrain) }
Dodaj zasady aktualizacji do tabeli docelowej. Te zasady automatycznie uruchamiają zapytanie dotyczące wszystkich nowo pozyskanych danych w tabeli danych pośrednich DiagnosticRawRecords i pozyskują wyniki w tabeli DiagnosticMetrics :
.alter table DiagnosticMetrics policy update @'[{"Source": "DiagnosticRawRecords", "Query": "DiagnosticMetricsExpand()", "IsEnabled": "True", "IsTransactional": true}]'
Tworzenie przestrzeni nazw usługi Azure Event Hubs
Ustawienia diagnostyczne platformy Azure umożliwiają eksportowanie metryk i dzienników na konto magazynu lub do centrum zdarzeń. W tym samouczku będziemy kierować metryki i dzienniki za pośrednictwem centrum zdarzeń. W poniższych krokach utworzysz przestrzeń nazw centrum zdarzeń i centrum zdarzeń dla metryk diagnostycznych i dzienników. Usługa Azure Monitor utworzy centrum zdarzeń insights-operational-logs na potrzeby dzienników aktywności.
Utwórz centrum zdarzeń przy użyciu szablonu usługi Azure Resource Manager w witrynie Azure Portal. Aby wykonać pozostałe kroki w tym artykule, kliknij prawym przyciskiem myszy przycisk Wdróż na platformie Azure i wybierz pozycję Otwórz w nowym oknie. Przycisk Wdróż na platformie Azure powoduje przejście do witryny Azure Portal.
Utwórz przestrzeń nazw usługi Event Hubs i centrum zdarzeń dla dzienników diagnostycznych. Dowiedz się, jak utworzyć przestrzeń nazw usługi Event Hubs.
Wypełnij formularz, używając poniższych informacji. W przypadku wszystkich ustawień, które nie są wymienione w poniższej tabeli, użyj wartości domyślnych.
Ustawienie Sugerowana wartość Opis Subskrypcja Twoja subskrypcja Wybierz subskrypcję platformy Azure, która ma być używana dla centrum zdarzeń. Grupa zasobów: test-resource-group Tworzenie nowej grupy zasobów Lokalizacja Wybierz region, który najlepiej odpowiada Twoim potrzebom. Utwórz przestrzeń nazw centrum zdarzeń w tej samej lokalizacji co inne zasoby. Nazwa przestrzeni nazw AzureMonitoringData Wybierz unikatową nazwę, która identyfikuje Twoją przestrzeń nazw. Nazwa centrum zdarzeń DiagnosticData Centrum zdarzeń znajduje się w przestrzeni nazw, która zapewnia unikatowy kontener określania zakresu. Nazwa grupy konsumentów adxpipeline Utwórz nazwę grupy użytkowników. Dzięki grupom konsumentów każda z wielu aplikacji korzystających z danych może mieć osobny widok strumienia zdarzeń.
Łączenie metryk i dzienników usługi Azure Monitor z centrum zdarzeń
Teraz musisz połączyć metryki diagnostyczne i dzienniki oraz dzienniki aktywności z centrum zdarzeń.
Łączenie metryk diagnostycznych i dzienników z centrum zdarzeń
Wybierz zasób, z którego chcesz eksportować metryki. Kilka typów zasobów obsługuje eksportowanie danych diagnostycznych, w tym przestrzeni nazw centrów zdarzeń, usługi Azure Key Vault, usługi Azure IoT Hub i klastrów usługi Azure Data Explorer. W tym samouczku użyjemy klastra usługi Azure Data Explorer jako naszego zasobu, zapoznamy się z metrykami wydajności zapytań i dziennikami wyników pozyskiwania.
Wybierz klaster usługi Kusto w witrynie Azure Portal.
Wybierz pozycję Ustawienia diagnostyczne, a następnie wybierz link Włącz diagnostykę.
Zostanie otwarte okienko Ustawienia diagnostyczne. Wykonaj następujące czynności:
Nadaj danym z dziennika diagnostycznego nazwę ADXExportedData.
W obszarze DZIENNIK zaznacz pola wyboru SucceededIngestion i FailedIngestion.
W obszarze METRYKA zaznacz pole wyboru Wydajność zapytań.
Zaznacz pole wyboru Przesyłaj strumieniowo do centrum zdarzeń.
Wybierz Konfiguruj.
W okienku Wybieranie centrum zdarzeń skonfiguruj sposób eksportowania danych z dzienników diagnostycznych do utworzonego centrum zdarzeń:
- Z listy Wybierz przestrzeń nazw centrum zdarzeń wybierz pozycję AzureMonitoringData.
- Na liście Wybierz nazwę centrum zdarzeń wybierz pozycję DiagnosticData.
- Z listy Wybierz nazwę zasad centrum zdarzeń wybierz pozycję RootManagerSharedAccessKey.
- Wybierz przycisk OK.
Wybierz pozycję Zapisz.
Wyświetlanie danych przepływających do centrum zdarzeń
Poczekaj kilka minut, aż połączenie zostanie zdefiniowane i zakończy się eksport dziennika aktywności do centrum zdarzeń. Przejdź do przestrzeni nazw usługi Event Hubs, aby wyświetlić utworzone centra zdarzeń.
Zapoznaj się z danymi przepływającymi do centrum zdarzeń:
Łączenie centrum zdarzeń z usługą Azure Data Explorer
Teraz musisz utworzyć połączenia danych dla metryk diagnostycznych oraz dzienników i dzienników aktywności.
Tworzenie połączenia danych dla metryk diagnostycznych i dzienników aktywności
W klastrze usługi Azure Data Explorer o nazwie kustodocs wybierz pozycję Bazy danych w menu po lewej stronie.
W oknie Bazy danych wybierz nazwę bazy danych TestDatabase.
W menu po lewej stronie wybierz pozycję Pozyskiwanie danych.
W oknie Pozyskiwanie danych wybierz pozycję + Dodaj połączenie danych.
W oknie Połączenie danych wprowadź następujące informacje:
Użyj następujących ustawień w oknie Połączenie danych:
Źródło danych:
Ustawienie Sugerowana wartość Opis pola Nazwa połączenia danych DiagnosticsLogsConnection Nazwa połączenia, które chcesz utworzyć w usłudze Azure Data Explorer. Przestrzeń nazw centrum zdarzeń AzureMonitoringData Wybrana wcześniej nazwa, która identyfikuje Twoją przestrzeń nazw. Centrum zdarzeń DiagnosticData Utworzone przez Ciebie centrum zdarzeń. Grupa konsumentów adxpipeline Grupa konsumentów zdefiniowana w utworzonym przez Ciebie centrum zdarzeń. Tabela docelowa:
Dostępne są dwie opcje routingu: statyczny i dynamiczny. W tym samouczku będziesz używać routingu statycznego (opcja domyślna), w którym określisz nazwę tabeli, format danych i mapowanie. Pozostaw pole Moje dane zawierają informacje o routingu niezaznaczone.
Ustawienie Sugerowana wartość Opis pola Tabela DiagnosticRawRecords Tabela utworzona w bazie danych TestDatabase. Format danych JSON Format używany w tabeli. Mapowanie kolumn DiagnosticRawRecordsMapping Mapowanie utworzone w bazie danych TestDatabase , które mapuje przychodzące dane JSON na nazwy kolumn i typy danych tabeli DiagnosticRawRecords . Wybierz pozycję Utwórz.
Tworzenie zapytań dotyczących nowych tabel
Masz teraz potok z przepływającymi danymi. Pozyskiwanie za pośrednictwem klastra trwa domyślnie 5 minut, co pozwala na przepływ danych przez kilka minut przed rozpoczęciem tworzenia zapytania.
Wykonywanie zapytań względem tabeli metryk diagnostycznych
Następujące zapytanie analizuje dane czasu trwania zapytania z rekordów metryk diagnostycznych w usłudze Azure Data Explorer:
DiagnosticMetrics
| where Timestamp > ago(15m) and MetricName == 'QueryDuration'
| summarize avg(Average)
Wyniki zapytania:
avg_Average |
---|
00:06,156 |