Zbieranie dzienników tekstowych za pomocą agenta usługi Log Analytics w usłudze Azure Monitor

Źródło danych dzienników niestandardowych dla agenta usługi Log Analytics w usłudze Azure Monitor umożliwia zbieranie zdarzeń z plików tekstowych na komputerach z systemami Windows i Linux. Wiele aplikacji rejestruje informacje w plikach tekstowych zamiast w standardowych usługach rejestrowania, takich jak dziennik zdarzeń systemu Windows lub dziennik systemowy. Po zebraniu danych można je przeanalizować w poszczególnych polach w zapytaniach lub wyodrębnić je podczas zbierania do poszczególnych pól.

Ważne

W tym artykule opisano sposób zbierania dziennika tekstowego za pomocą agenta usługi Log Analytics. Jeśli używasz agenta usługi Azure Monitor, zobacz Zbieranie dzienników tekstowych za pomocą agenta usługi Azure Monitor.

Ważne

Starszy agentusługi Log Analytics zostanie wycofany do sierpnia 2024 r. Po tej dacie firma Microsoft nie będzie już zapewniać żadnej pomocy technicznej dla agenta usługi Log Analytics. Przeprowadź migrację do agenta usługi Azure Monitor przed sierpniem 2024 r., aby kontynuować pozyskiwanie danych.

Diagram that shows custom log collection.

Pliki dziennika do zebrania muszą być zgodne z następującymi kryteriami:

  • Dziennik musi mieć jeden wpis na wiersz lub użyć znacznika czasu zgodnego z jednym z następujących formatów na początku każdego wpisu:

    RRRR-MM-DD HH:MM:SS
    M/D/RRRR HH:MM:SS AM/PM
    Mon DD, RRRR HH:MM:SS
    yyMMdd HH:mm:ss
    ddMMyy HH:mm:ss
    MMM d hh:mm:ss
    dd/MMM/rrrr:HH:mm:ss zzz
    rrrr-MM-ddTHH:mm:ssK

  • Plik dziennika nie może zezwalać na rejestrowanie cykliczne. To zachowanie polega na rotacji dzienników, w której plik jest zastępowany nowymi wpisami lub zmieniono nazwę pliku, a ta sama nazwa pliku jest ponownie używana do dalszego rejestrowania.

  • Plik dziennika musi używać kodowania ASCII lub UTF-8. Inne formaty, takie jak UTF-16, nie są obsługiwane.

  • W przypadku systemu Linux konwersja strefy czasowej nie jest obsługiwana w przypadku sygnatur czasowych w dziennikach.

  • Najlepszym rozwiązaniem jest, aby plik dziennika zawierał datę i godzinę utworzenia, aby zapobiec zastępowaniu lub zmienianiu nazw rotacji dzienników.

Uwaga

Jeśli w pliku dziennika znajdują się zduplikowane wpisy, usługa Azure Monitor zbierze je. Wygenerowane wyniki zapytania będą niespójne. Wyniki filtru będą pokazywać więcej zdarzeń niż liczba wyników. Należy zweryfikować dziennik, aby ustalić, czy aplikacja, która ją tworzy, powoduje to zachowanie. Rozwiąż ten problem, jeśli to możliwe, przed utworzeniem niestandardowej definicji kolekcji dzienników.

Obszar roboczy usługi Log Analytics obsługuje następujące limity:

  • Można utworzyć tylko 500 dzienników niestandardowych.
  • Tabela obsługuje tylko 500 kolumn.
  • Maksymalna liczba znaków dla nazwy kolumny wynosi 500.

Ważne

Niestandardowa kolekcja dzienników wymaga okresowego opróżnienia zawartości dziennika przez aplikację zapisującą zawartość dziennika na dysk. Jest to spowodowane tym, że niestandardowa kolekcja dzienników opiera się na powiadomieniach o zmianie systemu plików dla śledzonego pliku dziennika.

Definiowanie niestandardowej tabeli dzienników

Użyj poniższej procedury, aby zdefiniować niestandardową tabelę dziennika. Przewiń do końca tego artykułu, aby zapoznać się z przewodnikiem dotyczącym dodawania dziennika niestandardowego.

Otwieranie kreatora dzienników niestandardowych

Kreator dzienników niestandardowych działa w witrynie Azure Portal i umożliwia zdefiniowanie nowego niestandardowego dziennika do zbierania.

  1. W witrynie Azure Portal wybierz pozycję Obszary robocze usługi Log Analytics w obszarze roboczym >Tabele>.

  2. Wybierz pozycję Utwórz , a następnie pozycję Nowy dziennik niestandardowy (oparty na MMA).

    Domyślnie wszystkie zmiany konfiguracji są automatycznie wypychane do wszystkich agentów. W przypadku agentów systemu Linux plik konfiguracji jest wysyłany do modułu zbierającego dane Fluentd.

Przekazywanie i analizowanie przykładowego dziennika

Aby rozpocząć, przekaż przykład dziennika niestandardowego. Kreator przeanalizuje i wyświetli wpisy w tym pliku w celu zweryfikowania. Usługa Azure Monitor będzie używać ogranicznika określonego do identyfikowania każdego rekordu.

Nowy wiersz jest domyślnym ogranicznikiem i jest używany w przypadku plików dziennika, które mają pojedynczy wpis na wiersz. Jeśli wiersz zaczyna się od daty i godziny w jednym z dostępnych formatów, możesz określić ogranicznik znacznika czasu, który obsługuje wpisy obejmujące więcej niż jeden wiersz.

Jeśli jest używany ogranicznik znacznika czasu, właściwość TimeGenerated każdego rekordu przechowywanego w usłudze Azure Monitor zostanie wypełniona datą i godziną określoną dla tego wpisu w pliku dziennika. Jeśli jest używany nowy ogranicznik wiersza, funkcja TimeGenerated jest wypełniana datą i godziną zbierania wpisu przez usługę Azure Monitor.

  1. Wybierz pozycję Przeglądaj i przejdź do przykładowego pliku. Ten przycisk może być oznaczony etykietą Wybierz plik w niektórych przeglądarkach.

  2. Wybierz pozycję Dalej.

    Kreator dzienników niestandardowych przekazuje plik i wyświetla listę rekordów, które identyfikuje.

  3. Zmień ogranicznik używany do identyfikowania nowego rekordu. Wybierz ogranicznik, który najlepiej identyfikuje rekordy w pliku dziennika.

  4. Wybierz pozycję Dalej.

Dodawanie ścieżek zbierania dzienników

Musisz zdefiniować co najmniej jedną ścieżkę na agencie, w której może zlokalizować dziennik niestandardowy. Możesz podać określoną ścieżkę i nazwę pliku dziennika lub określić ścieżkę z symbolem wieloznacznymi dla nazwy. Ten krok obsługuje aplikacje, które tworzą nowy plik każdego dnia lub gdy jeden plik osiągnie określony rozmiar. Można również podać wiele ścieżek dla pojedynczego pliku dziennika.

Na przykład aplikacja może utworzyć plik dziennika każdego dnia z datą dołączona do nazwy, jak w pliku log20100316.txt. Wzorzec takiego dziennika może być log*.txt, który ma zastosowanie do dowolnego pliku dziennika po schemacie nazewnictwa aplikacji.

Poniższa tabela zawiera przykłady prawidłowych wzorców określających różne pliki dziennika.

opis Ścieżka
Wszystkie pliki w folderze C:\Logs z rozszerzeniem txt w agencie systemu Windows C:\Logs\*.txt
Wszystkie pliki w folderze C:\Logs o nazwie rozpoczynającej się od dziennika i rozszerzenia txt w agencie systemu Windows C:\Logs\log*.txt
Wszystkie pliki w pliku /var/log/audit z rozszerzeniem txt w agencie systemu Linux /var/log/audit/*.txt
Wszystkie pliki w pliku /var/log/audit o nazwie rozpoczynającej się od dziennika i rozszerzenia txt w agencie systemu Linux /var/log/audit/log*.txt
  1. Wybierz pozycję Windows lub Linux, aby określić format ścieżki, który dodajesz.
  2. Wprowadź ścieżkę i wybierz + przycisk .
  3. Powtórz ten proces, aby uzyskać więcej ścieżek.

Podaj nazwę i opis dziennika

Określona nazwa będzie używana dla typu dziennika zgodnie z opisem. Zawsze będzie ona kończyć się _CL, aby odróżnić go jako dziennik niestandardowy.

  1. Wprowadź nazwę dziennika. Sufiks _CL jest automatycznie udostępniany.
  2. Dodaj opcjonalny opis.
  3. Wybierz przycisk Dalej , aby zapisać niestandardową definicję dziennika.

Sprawdź, czy dzienniki niestandardowe są zbierane

Wyświetlenie danych początkowych z nowego dziennika niestandardowego w usłudze Azure Monitor może potrwać do godziny. Usługa Azure Monitor rozpocznie zbieranie wpisów z dzienników znalezionych w ścieżce określonej od momentu, w którym zdefiniowano dziennik niestandardowy. Nie zachowa on wpisów przekazanych podczas tworzenia dziennika niestandardowego. Będzie on zbierał już istniejące wpisy w plikach dziennika, które znajduje.

Po rozpoczęciu zbierania danych z dziennika niestandardowego usługa Azure Monitor będzie dostępna za pomocą zapytania dziennika. Użyj nazwy, która dała dziennik niestandardowy jako typ zapytania.

Uwaga

Jeśli w zapytaniu brakuje właściwości RawData, może być konieczne zamknięcie i ponowne otwarcie przeglądarki.

Analizowanie niestandardowych wpisów dziennika

Cały wpis dziennika będzie przechowywany w jednej właściwości o nazwie RawData. Najprawdopodobniej chcesz oddzielić poszczególne elementy informacji w każdym wpisie do poszczególnych właściwości dla każdego rekordu. Aby uzyskać opcje analizowania danych RawData do wielu właściwości, zobacz Analizowanie danych tekstowych w usłudze Azure Monitor.

Usuwanie niestandardowej tabeli dzienników

Zobacz Usuwanie tabeli.

Zbieranie danych

Usługa Azure Monitor zbiera nowe wpisy z każdego dziennika niestandardowego co około 5 minut. Agent rejestruje swoje miejsce w każdym pliku dziennika, z którego zbiera. Jeśli agent przejdzie w tryb offline przez pewien czas, usługa Azure Monitor zbiera wpisy, z których ostatnio została przerwana, nawet jeśli te wpisy zostały utworzone, gdy agent był w trybie offline.

Cała zawartość wpisu dziennika jest zapisywana w jednej właściwości o nazwie RawData. Aby przeanalizować każdy zaimportowany wpis dziennika do wielu właściwości, zobacz Analizowanie danych tekstowych w usłudze Azure Monitor.

Niestandardowe właściwości rekordu dziennika

Niestandardowe rekordy dzienników mają typ z podaną nazwą dziennika i właściwościami w poniższej tabeli.

Właściwości opis
TimeGenerated Data i godzina zbierania rekordu przez usługę Azure Monitor. Jeśli dziennik używa ogranicznika opartego na czasie, jest to czas zebrany z wpisu.
SourceSystem Typ agenta, z którego został zebrany rekord.
OpsManager — agent systemu Windows, połączenie bezpośrednie lub program System Center Operations Manager
Linux — wszyscy agenci systemu Linux
RawData Pełny tekst zebranego wpisu. Najprawdopodobniej chcesz przeanalizować te dane w poszczególnych właściwościach.
ManagementGroupName Nazwa grupy zarządzania dla agentów programu System Center Operations Manager. W przypadku innych agentów ta nazwa to AOI-workspace< ID>.

Przykładowy przewodnik dotyczący dodawania dziennika niestandardowego

W poniższej sekcji przedstawiono przykład tworzenia dziennika niestandardowego. Zbierany przykładowy dziennik zawiera pojedynczy wpis w każdym wierszu rozpoczynającym się od daty i godziny, a następnie pola rozdzielane przecinkami dla kodu, stanu i komunikatu. Pokazano kilka przykładowych wpisów.

2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database

Przekazywanie i analizowanie przykładowego dziennika

Udostępniamy jeden z plików dziennika i możemy zobaczyć zdarzenia, które będą zbierane. W tym przypadku nowy wiersz jest wystarczającą ogranicznikiem. Jeśli jednak pojedynczy wpis w dzienniku może obejmować wiele wierszy, należy użyć ogranicznika znacznika czasu.

Screenshot that shows uploading and parsing a sample log.

Dodawanie ścieżek zbierania dzienników

Pliki dziennika będą znajdować się w folderze C:\MyApp\Logs. Nowy plik zostanie utworzony każdego dnia z nazwą zawierającą datę w wzorcu appYYYYMMDDD.log. Wystarczający wzorzec dla tego dziennika to C:\MyApp\Logs\*.log.

Screenshot that shows adding a log collection path.

Podaj nazwę i opis dziennika

Używamy nazwy MyApp_CL i wpisywania w opisie.

Screenshot that shows adding a log name.

Sprawdź, czy dzienniki niestandardowe są zbierane

Używamy prostego zapytania MyApp_CL , aby zwrócić wszystkie rekordy z zebranego dziennika.

Screenshot that shows a log query with no custom fields.

Alternatywy dla dzienników niestandardowych

Dzienniki niestandardowe są przydatne, jeśli dane pasują do wymienionych kryteriów, ale istnieją przypadki, w których potrzebujesz innej strategii:

  • Dane nie pasują do wymaganej struktury, takiej jak znacznik czasu w innym formacie.
  • Plik dziennika nie spełnia wymagań, takich jak kodowanie plików lub nieobsługiwana struktura folderów.
  • Dane wymagają wstępnego przetwarzania lub filtrowania przed kolekcją.

W przypadkach, w których nie można zbierać danych za pomocą dzienników niestandardowych, należy wziąć pod uwagę następujące alternatywne strategie:

  • Użyj niestandardowego skryptu lub innej metody, aby zapisywać dane w zdarzeniach systemu Windows lub dzienniku systemowym, które są zbierane przez usługę Azure Monitor.
  • Wysyłanie danych bezpośrednio do usługi Azure Monitor przy użyciu interfejsu API modułu zbierającego dane HTTP.

Następne kroki