0Pricing
Cloud & IT Cert Prep · Lekcja

Podstawy Log Analytics i KQL

Pozyskuj dzienniki diagnostyczne do obszaru roboczego Log Analytics i pisz zapytania w języku Kusto Query Language, aby filtrować, agregować i wizualizować dane operacyjne.

Podstawy Log Analytics i KQL to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Czym jest obszar roboczy usługi Log Analytics?

Obszar roboczy usługi Log Analytics to centralny magazyn danych w usłudze Azure Monitor, przeznaczony na dane dzienników i dane telemetryczne. Po skonfigurowaniu ustawień diagnostycznych zasobu platformy Azure ustrukturyzowane dzienniki i metryki są przesyłane do obszaru roboczego. Następnie można wykonywać zapytania dotyczące tych danych za pomocą języka zapytań Kusto (KQL). Obszar roboczy ma własne zasady przechowywania danych (domyślnie 30 dni, maksymalnie 730 dni) oraz mechanizmy kontroli dostępu.

# Create a Log Analytics workspace
az monitor log-analytics workspace create \
  --resource-group myRG \
  --workspace-name myWorkspace \
  --location eastus \
  --retention-time 90

Wysyłanie dzienników diagnostycznych do obszaru roboczego

Każdy zasób platformy Azure może generować dzienniki diagnostyczne — szczegółowe rekordy operacji, takich jak wywołania interfejsu API, zdarzenia uwierzytelniania i wykonywanie zapytań. Włącza się je za pomocą opcji Diagnostic Settings dostępnej dla zasobu, wskazując obszar roboczy usługi Log Analytics jako miejsce docelowe. Typowe kategorie dzienników to między innymi AuditEvent dla usługi Key Vault, AppServiceHTTPLogs dla usługi App Service oraz NetworkSecurityGroupFlowEvent dla grup zabezpieczeń sieci (NSG).

# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
  --name 'KVLogs' \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
  --workspace myWorkspace \
  --logs '[{"category":"AuditEvent","enabled":true}]'

Wprowadzenie do składni KQL

Język zapytań Kusto (KQL) to język zapytań tylko do odczytu, służący do analizowania danych dzienników. Zapytanie KQL odczytuje się od lewej do prawej jako potok: zaczyna się od nazwy tabeli, a następnie przekazuje dane operatorem potoku (|) przez kolejne operatory. Typowe operatory to where do filtrowania, project do wybierania kolumn, summarize do agregowania oraz order by do sortowania. W języku KQL nazwy kolumn uwzględniają wielkość liter, natomiast słowa kluczowe — nie.

// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated desc

Filtrowanie za pomocą operatora Where

Operator where filtruje wiersze za pomocą wyrażeń logicznych. Warunki można łączyć za pomocą operatorów and, or i not. Operator has wykonuje w ciągach znaków wyszukiwanie niewrażliwe na wielkość liter, uwzględniające granice słów, natomiast contains wyszukuje podciąg. Operator in sprawdza przynależność do listy. Funkcja ago() służy do wyrażania względnych przedziałów czasu, takich jak ago(1h) lub ago(7d).

// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs desc

Agregowanie danych za pomocą operatora Summarize

Operator summarize oblicza agregacje dla wierszy. Typowe funkcje agregujące to count(), sum(), avg(), max(), min() oraz dcount(), służąca do zliczania wartości unikatowych. Grupowanie można wykonywać według jednej lub większej liczby kolumn za pomocą klauzuli by. Funkcja bin() zaokrągla znaczniki czasu do określonych przedziałów na potrzeby agregowania szeregów czasowych.

// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount desc

Łączenie tabel w języku KQL

Język KQL obsługuje operator join, który umożliwia korelowanie danych z wielu tabel. Domyślny rodzaj złączenia to innerunique, ale można określić także inner, leftouter, rightouter lub fullouter. Typowym wzorcem jest łączenie tabel AzureActivity i AzureMetrics w celu skorelowania zmian administracyjnych ze spadkami wydajności. Operator lookup jest lżejszą alternatywą, używaną do wzbogacania wierszy danymi z małej tabeli referencyjnej.

// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
    AzureMetrics
    | where MetricName == 'Percentage CPU'
    | where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Average

Wizualizowanie wyników KQL

Po napisaniu zapytania w portalu Log Analytics można wyświetlić wyniki jako wykres czasowy, wykres słupkowy, wykres kołowy lub tabelę, używając operatora render. Wynik dowolnego zapytania można także przypiąć do pulpitu nawigacyjnego platformy Azure lub zapisać jako skoroszyt. Polecenie render timechart przekształca zapytanie agregujące szereg czasowy w gotowy wykres liniowy do analizy trendów.

// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechart

Alerty wyszukiwania w dziennikach

Alerty wyszukiwania w dziennikach wykonują zapytanie KQL zgodnie z harmonogramem i uruchamiają się, gdy wynik spełnia określony warunek, na przykład gdy liczba wyników jest większa od zera lub kolumna liczbowa przekracza próg. Są bardziej elastyczne niż alerty metryk, ponieważ umożliwiają wykonywanie zapytań dotyczących dowolnych danych dzienników z wielu tabel. Częstotliwość oceny i okno czasowe można konfigurować niezależnie — na przykład uruchamiać zapytanie co 5 minut dla ostatnich 15 minut.

// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5

Informacje o typowych tabelach dzienników

Azure Monitor przechowuje dzienniki w dobrze znanych tabelach. Tabela AzureActivity rejestruje operacje na poziomie subskrypcji. Tabela SecurityEvent zawiera dzienniki zabezpieczeń systemu Windows z maszyn wirtualnych wyposażonych w agenta Log Analytics. Tabela Heartbeat pokazuje łączność agenta (jeden wiersz na minutę dla każdej połączonej maszyny wirtualnej). Tabele AppRequests, AppExceptions i AppDependencies pochodzą z usługi Application Insights. Znajomość tych nazw tabel jest niezbędna do tworzenia skutecznych zapytań operacyjnych.

Przechowywanie danych w obszarze roboczym i koszty

Cennik usługi Log Analytics obejmuje dwa elementy: pozyskiwanie danych (opłata za każdy pozyskany GB) oraz przechowywanie danych (pierwsze 30 dni jest bezpłatne, a następnie naliczana jest opłata za każdy GB miesięcznie powyżej domyślnego okresu). Koszty można ograniczyć, filtrując zaszumione kategorie dzienników przed pozyskaniem, używając Basic Logs dla dużych ilości danych o niewielkiej wartości po obniżonej cenie oraz archiwizując starsze dane w usłudze Azure Data Explorer lub w magazynie zimnym na potrzeby długoterminowego przechowywania zgodnego z wymaganiami.

Modele kontroli dostępu do obszaru roboczego

Obszary robocze usługi Log Analytics obsługują dwa modele kontroli dostępu. W trybie workspace-context użytkownik mający uprawnienie Read do obszaru roboczego może wykonywać zapytania dotyczące wszystkich tabel. W trybie resource-context użytkownik może wykonywać zapytania tylko dotyczące dzienników generowanych przez zasoby, do których odczytu ma uprawnienia RBAC — nawet bez jawnego dostępu do obszaru roboczego. Tryb resource-context jest zalecany w dużych organizacjach, w których różne zespoły są właścicielami różnych zasobów.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.

Podsumowanie lekcji

W tej lekcji nauczyli się Państwo, że: obszary robocze usługi Log Analytics centralizują dane dzienników diagnostycznych z zasobów platformy Azure, operatory KQL, takie jak where, summarize i render, umożliwiają filtrowanie, agregowanie i wizualizowanie dzienników, a alerty wyszukiwania w dziennikach uruchamiają automatyczne reakcje, gdy wynik zapytania KQL spełnia określony warunek. W następnej części omówimy usługę Application Insights i dane telemetryczne na poziomie aplikacji.

Często zadawane pytania

Czy lekcja „Podstawy Log Analytics i KQL” jest bezpłatna?

Tak — pełny tekst „Podstawy Log Analytics i KQL” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy Log Analytics i KQL”?

Pozyskuj dzienniki diagnostyczne do obszaru roboczego Log Analytics i pisz zapytania w języku Kusto Query Language, aby filtrować, agregować i wizualizować dane operacyjne. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?

Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Podstawy Log Analytics i KQL”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?

Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Metryki i alerty usługi Azure Monitor
  2. Podstawy Log Analytics i KQL
  3. Application Insights
  4. Pulpity nawigacyjne i skoroszyty Azure
← Powrót do Cloud & IT Cert Prep