Udostępnij za pośrednictwem


Przykładowe przekształcenia w usłudze Azure Monitor

Przekształcenia w usłudze Azure Monitor umożliwiają filtrowanie lub modyfikowanie danych przychodzących przed wysłaniem ich do obszaru roboczego usługi Log Analytics. Ten artykuł zawiera przykładowe zapytania dotyczące typowych scenariuszy, których można użyć do rozpoczęcia tworzenia własnych przekształceń. Zobacz Tworzenie przekształcenia w usłudze Azure Monitor , aby uzyskać szczegółowe informacje na temat testowania tych przekształceń i dodawania ich do reguły zbierania danych (DCR).

Obniżanie kosztów danych

Ponieważ opłaty są naliczane za pozyskiwanie danych wysyłanych do obszaru roboczego usługi Log Analytics, chcesz odfiltrować wszystkie dane, których nie potrzebujesz, aby zmniejszyć koszty.

Filtrowanie wierszy danych

where Użyj instrukcji , aby filtrować dane przychodzące zgodne z określonymi wymaganiami. Jeśli rekord przychodzący nie jest zgodny z instrukcją, rekord nie jest wysyłany do miejsca docelowego. W poniższym przykładzie zbierane są tylko rekordy o ważności Critical .

source | where severity == "Critical" 

Filtrowanie kolumn danych

Usuń kolumny ze źródła danych, które nie są wymagane, aby zaoszczędzić na kosztach pozyskiwania danych. project Użyj instrukcji , aby określić kolumny w danych wyjściowych lub użyć project-away polecenia , aby określić tylko kolumny do usunięcia. W poniższym przykładzie kolumna zostanie usunięta RawData z danych wyjściowych.

source | project-away RawData

Analizowanie ważnych danych z kolumny

Być może masz kolumnę z ważnymi danymi pochowanymi w nadmiernym tekście. Zachowaj tylko cenne dane i usuń tekst, który nie jest potrzebny. Użyj funkcji ciągów, takich jak substring i extract , aby przeanalizować żądane dane. Możesz również przeanalizować dane przy użyciu parse metody lub split podzielić pojedynczą kolumnę na wiele wartości i wybrać odpowiednią kolumnę. Następnie użyj polecenia extend , aby utworzyć nową kolumnę z przeanalizowanymi danymi i project-away usunąć oryginalną kolumnę.

Ostrzeżenie

Zobacz Podział dużych poleceń analizy, aby uzyskać porady dotyczące używania złożonych poleceń analizy.

W poniższym przykładzie kolumna RequestContext zawiera kod JSON z identyfikatorem ResourceId obszaru roboczego. Funkcje parse_json i split służą do wyodrębniania prostej nazwy obszaru roboczego. Dla tej wartości zostanie utworzona nowa kolumna, a pozostałe kolumny zostaną usunięte.

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

Wysyłanie wierszy do podstawowych dzienników

Wysyłaj wiersze w danych, które wymagają podstawowych możliwości zapytań, aby uzyskać podstawowe tabele dzienników w celu uzyskania niższych kosztów pozyskiwania. Aby uzyskać szczegółowe informacje na temat wysyłania danych do wielu tabel, zobacz Wysyłanie danych do wielu tabel.

Usuwanie poufnych danych

Być może masz źródło danych, które wysyła informacje, których nie chcesz przechowywać ze względów prywatności lub zgodności.

Filtrowanie poufnych informacji

Użyj tych samych strategii opisanych w temacie Zmniejszenie kosztów danych, aby odfiltrować całe wiersze lub określone kolumny zawierające poufne informacje. W poniższym przykładzie kolumna zostanie usunięta ClientIP z danych wyjściowych.

source | project-away ClientIP

Zaciemnianie poufnych informacji

Użyj funkcji ciągów, aby zastąpić informacje, takie jak cyfry w adresie IP lub numerze telefonu wspólnym znakiem. Poniższy przykład zastępuje nazwę użytkownika w adresie e-mail ciągiem "*****".

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

Wysyłanie do tabeli alternatywnej

Wysyłanie poufnych rekordów do alternatywnej tabeli z inną konfiguracją kontroli dostępu na podstawie ról. Aby uzyskać szczegółowe informacje na temat wysyłania danych do wielu tabel, zobacz Wysyłanie danych do wielu tabel.

Wzbogacanie danych

Użyj przekształcenia, aby dodać informacje do danych, które udostępniają kontekst biznesowy lub upraszczają wykonywanie zapytań dotyczących danych później. Użyj funkcji ciągów, aby wyodrębnić informacje krytyczne z kolumny, a następnie użyć extend instrukcji , aby dodać nową kolumnę do źródła danych. Poniższy przykład dodaje kolumnę identyfikującą, czy adres IP w innej kolumnie jest wewnętrzny, czy zewnętrzny.

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

Formatowanie danych dla miejsca docelowego

Być może masz źródło danych, które wysyła dane w formacie, który nie jest zgodny ze strukturą tabeli docelowej. Użyj przekształcenia, aby ponownie sformatować dane w wymaganym schemacie.

Modyfikowanie schematu

Użyj poleceń, takich jak extend i project , aby zmodyfikować schemat danych przychodzących w celu dopasowania do tabeli docelowej. W poniższym przykładzie nowa kolumna o nazwie TimeGenerated jest dodawana do danych wychodzących przy użyciu funkcji KQL w celu zwrócenia bieżącej godziny.

source | extend TimeGenerated = now()

Analizowanie danych

split Użyj operatora orparse, aby przeanalizować dane w wielu kolumnach w tabeli docelowej. W poniższym przykładzie dane przychodzące mają kolumnę rozdzielaną przecinkami o nazwie RawData podzielonej na poszczególne kolumny dla tabeli docelowej.

source 
| project d = split(RawData,",") 
| project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

Ostrzeżenie

Zobacz Podział dużych poleceń analizy, aby uzyskać porady dotyczące używania złożonych poleceń analizy.

Następne kroki