Monitorowanie i rozwiązywanie problemów z zbieraniem danych DCR w usłudze Azure Monitor
Ten artykuł zawiera szczegółowe metryki i dzienniki, których można użyć do monitorowania wydajności i rozwiązywania problemów związanych z zbieraniem danych w usłudze Azure Monitor. Ta telemetria jest obecnie dostępna dla scenariuszy zbierania danych zdefiniowanych przez reguły zbierania danych (DCR), takie jak agent usługi Azure Monitor i interfejs API pozyskiwania dzienników.
Ważne
W tym artykule odwołuje się tylko do scenariuszy zbierania danych korzystających z kontrolerów domeny, w tym następujących:
- Dzienniki zbierane przy użyciu agenta usługi Azure Monitor (AMA)
- Dzienniki pozyskane przy użyciu interfejsu API pozyskiwania dzienników
- Dzienniki zbierane przez inne metody korzystające z przekształcenia obszaru roboczego DCR
Zapoznaj się z dokumentacją innych scenariuszy, aby uzyskać informacje dotyczące monitorowania i rozwiązywania problemów, które mogą być dostępne.
Funkcje diagnostyczne dcR obejmują metryki i dzienniki błędów emitowane podczas przetwarzania dziennika. Metryki dcR zawierają informacje o ilości pozyskiwanych danych, liczbie i charakterze błędów przetwarzania oraz statystyk związanych z przekształcaniem danych. Dzienniki błędów dcR są generowane za każdym razem, gdy przetwarzanie danych nie powiedzie się, a dane nie docierają do miejsca docelowego.
Dzienniki błędów kontrolera domeny
Dzienniki błędów są generowane, gdy dane docierają do potoku pozyskiwania usługi Azure Monitor, ale nie docierają do miejsca docelowego. Przykładowe warunki błędów obejmują:
- Błędy dostarczania dzienników
- Błędy przekształcania , w których struktura dzienników sprawia, że przekształcenie KQL jest nieprawidłowe
- Wywołania interfejsu API pozyskiwania dzienników:
- z dowolną odpowiedzią HTTP inną niż 200/202
- z ładunkiem zawierającym źle sformułowane dane
- z ładunkiem na wszelkie limity pozyskiwania
- ograniczanie z powodu nadwyżki limitów wywołań interfejsu API
Aby uniknąć nadmiernego rejestrowania trwałych błędów związanych z tym samym przepływem danych, niektóre błędy będą rejestrowane tylko przez ograniczoną liczbę godzin, po których następuje komunikat o błędzie podsumowania. Błąd jest następnie wyciszany do końca godziny. Liczba rejestrowanych błędów może się różnić w zależności od regionu, w którym jest wdrażana usługa DCR.
Niektóre błędy pozyskiwania dzienników nie zostaną zarejestrowane, ponieważ nie można ich skojarzyć z kontrolerem domeny. Nie można zarejestrować następujących błędów:
- Błędy spowodowane źle sformułowanym identyfikatorem URI wywołania (kod odpowiedzi HTTP 404)
- Niektóre wewnętrzne błędy serwera (kod odpowiedzi HTTP 500)
Włączanie dzienników błędów dcR
Dzienniki błędów dcR są implementowane jako dzienniki zasobów w usłudze Azure Monitor. Włącz zbieranie dzienników, tworząc ustawienie diagnostyczne dla kontrolera domeny. Każde dcR będzie wymagać własnego ustawienia diagnostycznego. Aby uzyskać szczegółowe informacje, zobacz Tworzenie ustawień diagnostycznych w usłudze Azure Monitor . Wybierz kategorię Błędy dziennika i Wyślij do obszaru roboczego usługi Log Analytics. Możesz wybrać ten sam obszar roboczy, który jest używany przez kontroler domeny, lub chcesz skonsolidować wszystkie dzienniki błędów w jednym obszarze roboczym.
Pobieranie dzienników błędów dcR
Dzienniki błędów są zapisywane w tabeli DCRLogErrors w obszarze roboczym usługi Log Analytics określonym w ustawieniu diagnostycznym. Poniżej przedstawiono przykładowe zapytania, których można użyć w usłudze Log Analytics , aby pobrać te dzienniki.
Pobieranie wszystkich dzienników błędów dla określonego kontrolera domeny
DCRLogErrors
| where _ResourceId == "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
Pobieranie wszystkich dzienników błędów dla określonego strumienia wejściowego w określonym kontrolerze domeny
DCRLogErrors
| where _ResourceId == "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.insights/datacollectionrules/my-dcr"
| where InputStreamId == "Custom-MyTable_CL"
Metryki DCR
Metryki dcR są zbierane automatycznie dla wszystkich kontrolerów domeny i można je analizować przy użyciu eksploratora metryk, takiego jak metryki platformy dla innych zasobów platformy Azure. Strumień wejściowy jest dołączany jako wymiar, więc jeśli masz kontroler domeny z wieloma strumieniami wejściowymi, możesz przeanalizować je, filtrując lub dzieląc. Niektóre metryki obejmują inne wymiary, jak pokazano w poniższej tabeli.
Metric | Wymiary | opis |
---|---|---|
Rejestruje bajty pozyskiwania na minutę | Strumień wejściowy | Łączna liczba bajtów odebranych na minutę. |
Rejestruje żądania pozyskiwania na minutę | Strumień wejściowy Kod odpowiedzi HTTP |
Liczba odebranych połączeń na minutę |
Pomijane dzienniki wierszy na minutę | Strumień wejściowy | Liczba wierszy dziennika pomijanych podczas przetwarzania na minutę. Obejmuje to wiersze pomijane zarówno z powodu kryteriów filtrowania w transformacji KQL, jak i wiersze pomijane z powodu błędów. |
Rejestruje wiersze odbierane na minutę | Strumień wejściowy | Liczba wierszy dziennika odbieranych do przetwarzania na minutę. |
Czas trwania przekształcania dzienników na minutę | Strumień wejściowy | Średnie środowisko uruchomieniowe transformacji KQL na minutę. Reprezentuje wydajność kodu transformacji KQL. W przepływach danych z dłuższym czasem wykonywania transformacji mogą wystąpić opóźnienia przetwarzania danych i większe opóźnienie danych. |
Błędy przekształcania dzienników na minutę | Strumień wejściowy Typ błędu |
Liczba napotkanych błędów przetwarzania na minutę |
Rozwiązywanie typowych problemów
Jeśli brakuje oczekiwanych danych w obszarze roboczym usługi Log Analytics, wykonaj następujące podstawowe kroki, aby rozwiązać ten problem. Przyjęto założenie, że włączono rejestrowanie DCR zgodnie z powyższym opisem.
- Sprawdź metryki, takie jak
Logs Ingestion Bytes per Min
iLogs Rows Received per Min
, aby upewnić się, że dane docierają do usługi Azure Monitor. Jeśli nie, sprawdź źródło danych, aby upewnić się, że wysyła ona dane zgodnie z oczekiwaniami. - Sprawdź
Logs Rows Dropped per Min
, czy jakiekolwiek wiersze są porzucane. Może to nie oznaczać błędu, ponieważ wiersze mogą zostać porzucone przez przekształcenie. Jeśli porzucone wiersze są takie same,Logs Rows Dropped per Min
nie zostaną pozyskane żadne dane w obszarze roboczym. Sprawdź,Logs Transformation Errors per Min
czy występują błędy przekształcania. - Sprawdź
Logs Transformation Errors per Min
, czy istnieją błędy z przekształceń zastosowanych do danych przychodzących. Może to być spowodowane zmianami w strukturze danych lub samym przekształceniem. - Sprawdź
DCRLogErrors
błędy pozyskiwania, które mogły zostać zarejestrowane. Może to zawierać dodatkowe szczegóły dotyczące identyfikowania głównej przyczyny problemu.
Monitorowanie pozyskiwania dzienników
Poniższe sygnały mogą być przydatne do monitorowania kondycji kolekcji dzienników przy użyciu kontrolerów domeny. Utwórz reguły alertów, aby zidentyfikować te warunki.
Sygnał | Możliwe przyczyny i akcje |
---|---|
Nowe wpisy w DCRErrorLogs pliku lub nagłe zmiany w pliku Log Transform Errors . |
— Problemy z konfiguracją interfejsu API pozyskiwania dzienników, takimi jak uwierzytelnianie, dostęp do dcR lub DCE, problemy z ładunkiem wywołań. - Zmiany w strukturze danych powodujące błędy przekształcania KQL. — Zmiany w konfiguracji docelowej danych powodujące niepowodzenia dostarczania danych. |
Nagłe zmiany w Logs Ingestion Bytes per Min |
- Zmiany w konfiguracji pozyskiwania dzienników na kliencie, w tym ustawienia usługi AMA. - Zmiany w strukturze wysłanych dzienników. |
Nagłe zmiany proporcji między Logs Ingestion Bytes per Min i Logs Rows Received per Min |
- Zmiany w strukturze wysłanych dzienników. Sprawdź zmiany, aby upewnić się, że dane są prawidłowo przetwarzane przy użyciu przekształcenia KQL. |
Nagłe zmiany w Logs Transformation Duration per Min |
- Zmiany w strukturze dzienników wpływające na wydajność kryteriów filtrowania dzienników ustawionych w transformacji KQL. Sprawdź zmiany, aby upewnić się, że dane są prawidłowo przetwarzane przy użyciu przekształcenia KQL. |
Logs Ingestion Requests per Min lub Logs Ingestion Bytes per Min zbliża się do limitów usługi interfejsu API pozyskiwania dzienników. |
— Sprawdź i zoptymalizuj konfigurację kontrolera domeny, aby uniknąć ograniczania przepustowości. |
Alerty
Zamiast reaktywnie rozwiązywać problemy, utwórz reguły alertów, aby otrzymywać proaktywne powiadomienia, gdy wystąpi potencjalny warunek błędu. Poniższa tabela zawiera przykłady reguł alertów, które można utworzyć w celu monitorowania pozyskiwania dzienników.
Stan | Szczegóły alertu |
---|---|
Nagłe zmiany wierszy porzucone | Reguła alertu metryki używająca progu dynamicznego dla elementu Logs Rows Dropped per Min . |
Liczba wywołań interfejsu API zbliżających się do limitów usługi | Reguła alertu metryki używająca statycznego progu dla elementu Logs Ingestion Requests per Min . Ustaw próg zbliżony do 12 000, czyli limit usługi dla maksymalnej liczby żądań/minut na dcR. |
Dzienniki błędów | Alert zapytania dziennika przy użyciu polecenia DCRLogErrors . Użyj miary wierszy tabeli i wartości progowej 1, aby otrzymywać alerty za każdym razem, gdy zostaną zarejestrowane błędy. |