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.
  • Utwórz centrum zdarzeń i połącz 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

Dostawca danych usługi Azure Monitor: metryki diagnostyczne i dzienniki i dzienniki aktywności

Wyświetl i zapoznaj się z danymi dostarczonymi przez metryki diagnostyczne usługi Azure Monitor oraz dzienniki i dzienniki aktywności poniżej. 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 samouczka.

Przykłady metryk diagnostycznych i dzienników aktywności oraz dzienników aktywności

Metryki diagnostyczne platformy Azure 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 zdarzeń metryk platformy Azure Data Explorer czasu 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.

Strona zapytania.

Tworzenie tabel docelowych

Struktura dzienników usługi Azure Monitor nie jest tabelaryczna. Będziesz manipulować danymi i rozszerzać każde zdarzenie do co najmniej jednego rekordu. Dane pierwotne 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. Przy użyciu zasad aktualizacji rozwinięte dane zostaną następnie pozyskane do tabeli ActivityLogs dla dzienników aktywności, diagnostyki 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

  1. W bazie danych TestDatabase utwórz tabelę o nazwie DiagnosticMetrics , aby przechowywać rekordy 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)
    
  2. Wybierz pozycję Uruchom, aby utworzyć tabelę.

    Uruchom zapytanie.

  3. 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)
    
  4. 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, które zawierają znaki specjalne, powinny być ucieczki 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 do tabeli, 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

  1. Utwórz funkcję , która rozszerza kolekcję rekordów metryk diagnostycznych, aby każda wartość w kolekcji odbierała oddzielny wiersz. mv-expand Użyj operatora:

    .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)
    }
    
  2. Dodaj zasady aktualizacji do tabeli docelowej. Te zasady będą automatycznie uruchamiać zapytanie na wszystkich nowo pozyskanych danych w tabeli danych pośrednich DiagnosticRawRecords i pozyskiwać wyniki do 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.

  1. 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.

    Przycisk Wdróż na platformie Azure.

  2. 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.

  3. 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-grupa zasobów 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, Azure IoT Hub i klastrów usługi Azure Data Explorer. W tym samouczku jako zasób użyjemy klastra usługi Azure Data Explorer. Przejrzymy metryki wydajności zapytań i dzienniki wyników pozyskiwania.

  1. Wybierz klaster usługi Kusto w witrynie Azure Portal.

  2. Wybierz pozycję Ustawienia diagnostyczne, a następnie wybierz link Włącz diagnostykę.

    Ustawienia diagnostyczne.

  3. Zostanie otwarte okienko Ustawienia diagnostyczne. Wykonaj następujące czynności:

    1. Nadaj danym z dziennika diagnostycznego nazwę ADXExportedData.

    2. W obszarze DZIENNIK zaznacz pola wyboru SucceededIngestion i FailedIngestion .

    3. W obszarze METRYKA zaznacz pole wyboru Wydajność zapytań .

    4. Zaznacz pole wyboru Przesyłaj strumieniowo do centrum zdarzeń.

    5. Wybierz pozycję Konfiguruj.

      Okienko ustawień diagnostycznych.

  4. W okienku Wybieranie centrum zdarzeń skonfiguruj sposób eksportowania danych z dzienników diagnostycznych do utworzonego centrum zdarzeń:

    1. Z listy Wybierz przestrzeń nazw centrum zdarzeń wybierz pozycję AzureMonitoringData.
    2. Na liście Wybierz nazwę centrum zdarzeń wybierz pozycję DiagnosticData.
    3. Z listy Wybierz nazwę zasad centrum zdarzeń wybierz pozycję RootManagerSharedAccessKey.
    4. Wybierz przycisk OK.
  5. Wybierz pozycję Zapisz.

Wyświetlanie danych przepływających do centrum zdarzeń

  1. 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ń.

    Utworzone centra zdarzeń.

  2. Zapoznaj się z danymi przepływającymi do centrum zdarzeń:

    Dane 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 oraz dzienników aktywności

  1. W klastrze usługi Azure Data Explorer o nazwie kustodocs wybierz pozycję Bazy danych w menu po lewej stronie.

  2. W oknie Bazy danych wybierz nazwę bazy danych TestDatabase.

  3. W menu po lewej stronie wybierz pozycję Pozyskiwanie danych.

  4. W oknie Pozyskiwanie danych wybierz pozycję + Dodaj połączenie danych.

  5. W oknie Połączenie danych wprowadź następujące informacje:

    Połączenie danych centrum zdarzeń.

  1. 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 odbiorcó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 .
  2. Wybierz przycisk 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