Stwórz niestandardowy parser

Important

Lakewatch jest w Private Preview. Aby poprosić o dostęp, skontaktuj się z zespołem konta Azure Databricks.

Lakewatch udostępnia wbudowane parsery dla typowych źródeł logów bezpieczeństwa. Napisz niestandardowy parser, gdy importujesz źródło, którego żaden wbudowany parser nie obsługuje, albo gdy chcesz dostosować kolumny, walidatory czy obserwale, które generuje wbudowany parser.

Parser to specyfikacja wersjonowana, która opisuje kolumny wyjściowe źródła loga. Budujesz go w edytorze parsera w trybie UI (prowadzony kreator typu wskaż i kliknij) lub w trybie YAML, i jest tworzony w twoim obecnym środowisku Lakewatch. Pełną składnię (atrybuty pól, typy, znaczniki czasu, walidatory i obserwable) można znaleźć w dokumentacji Parsera.

Otwórz edytor parsera

Z paska bocznego Lakewatch wybierz Parsery, a następnie wybierz Stwórz parser. Lista parserów pokazuje także każdy wbudowany i niestandardowy parser w twoim środowisku, z jego typem, przypisanymi źródłami danych i najnowszą wersją.

Aby zacząć od wbudowanego parsera zamiast pustego, znajdź go na liście, otwórz menu ⋮ akcji i wybierz Klonuj. Klonowanie kopiuje definicję do nowego, edytowalnego parsera niestandardowego (wersja 1) i pozostawia wbudowany parser bez zmian.

Zdefiniuj parser

Na stronie Dodaj nowy parser nadaj mu nazwę parsera oraz opcjonalny Opis. Nazwa jest nazwą wyświetlaną i może zawierać spacje.

Buduj kolumny wyjściowe w Fields & Observables, w trybie UI lub YAML . Możesz przełączać się między nimi w dowolnym momencie.

Wybierz dane próbne

Wybierz Wybierz przykładowe dane i wybierz surowe rekordy, dla których przeznaczony jest ten parser, więc pola pochodzą z rzeczywistych danych. Możesz próbkować z Źródła danych, Lokalizacji zewnętrznej, Woluminu lub Tabeli.

Po wybraniu przykładowych danych możesz opcjonalnie wybrać Build parser with Genie: Genie odczytuje próbkę i tworzy szkic czasu zdarzenia oraz pól, które możesz przejrzeć i dostosować.

Ustaw czas zdarzenia i pola

  • Czas wydarzenia (wymagany): znacznik czasu każdego wydarzenia. Każdy parser potrzebuje jednego, zanim będzie można go zapisać. W YAML jest to blok najwyższego poziomu time (a nie pole), ponieważ wpływa na wydajność klastrowania i zapytań. Zobacz czas wydarzenia.
  • Pola: kolumny przeanalizowanej tabeli oraz miejsce, z którego każda jest odczytywana. Dla każdego pola ustaw name, type oraz (gdy klucz źródłowy różni się od nazwy kolumny) path; zaznacz pola, które muszą być obecne, za pomocą required: true; dodaj validate, aby ograniczyć pole STRING, oraz observables, aby wyodrębnić wartości (takie jak ip lub email) do współdzielonej kolumny lw_observables. Wyrażamy zagnieżdżone obiekty jako VARIANT z wewnętrznym fields, a listy jako ARRAY z elementem element.

Starannie zdefiniuj swoje pola. Podczas klasyfikacji zdarzenie zostaje dopasowane tylko wtedy, gdy są dostępne wymagane pola, jego pola typowane dają się przekonwertować na zadeklarowane typy, a wszystkie walidatory przechodzą pomyślnie. Zdarzenie, które nie pasuje do żadnego dołączonego parsera, jest kierowane do sentinela dead-letter zamiast powodować awarię potoku, więc zbyt rygorystyczny parser po cichu odrzuca zdarzenia.

Wyświetl podgląd i zapisz

W panelu podglądu danych wybierz Podgląd, aby uruchomić parser na podstawie próbnych danych i potwierdzić, że kolumny, typy i wyodrębnione obserwacje są zgodne z oczekiwaniami. Gdy wygląda poprawnie, wybierz Zapisz. Zapisanie przechowuje definicję jako wersję 1, rejestruje cię jako jej właściciela i tworzy parser w twoim obecnym środowisku. Dokument analizatora składni ma maksymalnie 256 KB.

Dołącz parser do źródła danych

Dołącz własny parser do źródła danych w ten sam sposób, w jaki dołączasz wbudowany parser do źródła danych. Możesz przypisać więcej niż jeden parser do źródła danych; nadchodzące zdarzenia są dopasowywane w kolejności deklaracji i trafiają do pierwszego parsera, do którego pasują. Zobacz Parsery dołączania.

Testuj i wprowadzaj poprawki

Po uruchomieniu źródła danych potwierdź, że parser zachowuje się zgodnie z oczekiwaniami:

  • Wykonaj zapytanie na sparsowanej tabeli, aby sprawdzić, czy kolumny, typy i wyodrębnione obserwable zgadzają się z tym, co zdefiniowałeś.
  • Sprawdź zdarzenia w dead-letter sentinel. Zdarzenia lądują tam, gdy nie pasują do żadnego dołączonego parsera: zwykle dlatego, że brakuje required pola, wartość nie konwertuje się do zadeklarowanego typu lub walidator zawodzi.

Aby dopracować parser, edytuj go i zapisz. Edycja dodaje nową, niezmienną wersję; wcześniejsze wersje nigdy nie są zmieniane, a numery wersji nigdy nie są ponownie używane. Nowa wersja zachowuje nazwę parsera i zmienia jedynie definicję. Źródło danych przypina konkretną wersję, więc zaktualizuj źródło danych, aby pobrać nową wersję: zobacz Zmień wersję parsera. Istniejące dane parsowane nie są przetwarzane ponownie; nowa wersja dotyczy zdarzeń pozyskanych po zapisaniu zmiany.

Dodatkowe zasoby