Tworzenie przekształcenia w usłudze Azure Monitor
Przekształcenia w usłudze Azure Monitor umożliwiają filtrowanie lub modyfikowanie danych przychodzących przed ich zapisaniem w obszarze roboczym usługi Log Analytics. Są one implementowane jako instrukcja język zapytań Kusto (KQL) w regule zbierania danych (DCR). Ten artykuł zawiera wskazówki dotyczące tworzenia i testowania zapytania przekształcenia oraz dodawania go do kontrolera DOMENY.
Uwaga
Jeśli nie znasz języka KQL ani nie tworzysz zapytań dziennika dotyczących danych usługi Azure Monitor, zacznij od artykułu Omówienie usługi Log Analytics w usłudze Azure Monitor i zapytań dzienników w usłudze Azure Monitor.
Podstawowa struktura zapytań
Wszystkie zapytania przekształcania zaczynają się od source
, czyli tabeli wirtualnej reprezentującej strumień wejściowy. Następnie możesz użyć dowolnych obsługiwanych operatorów KQL do filtrowania, modyfikowania lub dodawania kolumn do danych, tak jak w przypadku dowolnej innej tabeli. Zapytanie jest stosowane indywidualnie do każdego wpisu wysyłanego przez źródło danych.
Dane wyjściowe zapytania muszą być zgodne ze schematem tabeli docelowej z następującymi zagadnieniami:
- Możesz pominąć wszystkie kolumny, które nie powinny być wypełniane. Kolumna będzie pusta dla rekordu w tabeli docelowej.
- Pamiętaj, aby wykluczyć wszystkie kolumny, które nie są uwzględnione w tabeli wyjściowej. Dane zostaną zaakceptowane bez błędu, ale zostanie naliczona opłata za pozyskiwanie dodatkowych danych, mimo że nie są przechowywane.
- Dane wyjściowe każdej transformacji muszą zawierać prawidłowy znacznik czasu w kolumnie o nazwie
TimeGenerated
typudatetime
. Jeśli źródło danych nie zawiera tej właściwości, możesz dodać ją do przekształcenia za pomocąextend
polecenia lubproject
.
Poniżej przedstawiono przykład przekształcenia, który wykonuje kilka funkcji:
- Filtruje dane przychodzące za pomocą instrukcji
where
. - Dodaje nową kolumnę
extend
przy użyciu operatora . - Formatuje dane wyjściowe w celu dopasowania kolumn tabeli docelowej przy użyciu
project
operatora .
source
| where severity == "Critical"
| extend Properties = parse_json(properties)
| project
TimeGenerated = todatetime(["time"]),
Category = category,
StatusDescription = StatusDescription,
EventName = name,
EventId = tostring(Properties.EventId)
Uwaga
Zobacz Przykłady i scenariusze reguły zbierania danych (DCR) w usłudze Azure Monitor , aby zapoznać się z różnymi przykładami dla różnych scenariuszy.
Tworzenie zapytania przekształcenia
Przed utworzeniem lub edytowaniem modelu DCR, który będzie zawierać transformację, należy utworzyć i przetestować zapytanie przekształcenia. Zazwyczaj można to zrobić, uruchamiając zapytania testowe względem istniejących danych lub danych testowych. Gdy uzyskasz żądane wyniki, możesz zamienić nazwę tabeli na i source
wkleić ją do kontrolera DCR, jak wyjaśniono poniżej w temacie Dodawanie przekształcenia do kontrolera domeny.
Ważne
Przekształcenia nie obsługują wszystkich funkcji języka KQL. Zobacz Obsługiwane funkcje KQL w przekształceniach usługi Azure Monitor, aby zapoznać się z obsługiwanymi funkcjami i ograniczeniami.
Jeśli na przykład tworzysz przekształcenie w celu filtrowania zdarzeń dziennika systemowego, możesz rozpocząć od następującego zapytania, które można uruchomić w usłudze Log Analytics.
Syslog | where SeverityLevel != 'info'
Możesz wkleić to zapytanie do kontrolera DOMENY, a następnie zmienić nazwę tabeli na source
.
source | where SeverityLevel != 'info'
Użyj jednej z poniższych strategii, aby użyć danych do przetestowania zapytania.
- Jeśli już zbierasz dane, które chcesz przekształcić, możesz użyć usługi Log Analytics do zapisania zapytania, które filtruje lub modyfikuje dane zgodnie z potrzebami. Skopiuj tekst zapytania i wklej go do kontrolera DOMENY.
- Użyj usługi Log Analytics, aby napisać zapytanie przy użyciu operatora ,
datatable
aby utworzyć przykładowy zestaw danych reprezentujący dane przychodzące. Skopiuj tekst zapytania bezdatatable
operatora i wklej go do kontrolera DOMENY. - Użyj tego procesu, aby utworzyć nową tabelę w witrynie Azure Portal i udostępnić przykładowe dane. Użyj dołączonego interfejsu, aby utworzyć i przetestować zapytanie przekształcenia. Skopiuj tekst zapytania i wklej go do dcR lub ukończ proces, a następnie edytuj kontroler domeny, aby skopiować zapytanie przekształcenia. Możesz usunąć nową tabelę, jeśli jej nie potrzebujesz.
Dodawanie przekształcenia do usługi DCR
Po utworzeniu zapytania przekształcenia możesz dodać je do kontrolera DOMENY. Skorzystaj ze wskazówek w artykule Tworzenie i edytowanie reguł zbierania danych (DCR) w usłudze Azure Monitor , aby utworzyć lub edytować kontroler domeny przy użyciu informacji w tej sekcji, aby uwzględnić zapytanie przekształcenia w definicji kontrolera domeny.
Uwaga
Niektóre źródła danych udostępniają metodę przy użyciu witryny Azure Portal w celu dodania przekształcenia do kontrolera domeny. Na przykład zbieranie tekstu z maszyny wirtualnej umożliwia określenie zapytania przekształcenia w witrynie Azure Portal. Większość scenariuszy zbierania danych wymaga jednak obecnie bezpośredniej pracy z definicją dcR w celu dodania przekształcenia. Jest to proces opisany w tej sekcji.
Zapytanie przekształcenia jest określone we transformKql
właściwości w sekcji Przepływ danych s kontrolera domeny. Jest to sekcja, która łączy źródło danych z miejscem docelowym. Przekształcenie jest stosowane do przychodzącego strumienia przepływu danych przed wysłaniem go do miejsca docelowego. Dotyczy to tylko tego przepływu danych, nawet jeśli ten sam strumień lub miejsce docelowe jest używane w innych przepływach danych.
transformKql
Jeśli właściwość zostanie pominięta lub jej wartość to po prostu source
, nie zostanie zastosowana żadna transformacja, a dane przychodzące są wysyłane do miejsca docelowego bez modyfikacji.
Ważne
Zapytanie przekształcenia musi znajdować się w jednym wierszu kontrolera domeny. Jeśli tworzysz przekształcenie w witrynie Azure Portal, możesz użyć wielu wierszy do czytelności i \n
zostanie uwzględnionych w zapytaniu dla każdego nowego wiersza.
W poniższym przykładzie nie transformKql
ma właściwości, więc dane przychodzące są wysyłane do miejsca docelowego bez modyfikacji.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"centralWorkspace"
]
}
]
W poniższym przykładzie transformKql
istnieje proste zapytanie source
, więc dane przychodzące są wysyłane do miejsca docelowego bez modyfikacji. Jego funkcjonalność jest identyczna z poprzednim przykładem.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source",
"destinations": [
"centralWorkspace"
]
}
]
W poniższym przykładzie transformKql
istnieje zapytanie, które filtruje dane, więc do miejsca docelowego są wysyłane tylko komunikaty o błędach.
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"transformKql": "source | where message has 'error'",
"destinations": [
"centralWorkspace"
]
}
]
Tworzenie przekształcenia obszaru roboczego DCR
Reguła zbierania danych przekształcania obszaru roboczego (DCR) to specjalny kontroler domeny stosowany bezpośrednio do obszaru roboczego usługi Log Analytics. Dla każdego obszaru roboczego może istnieć tylko jedna transformacja obszaru roboczego, ale może zawierać przekształcenia dla dowolnej liczby tabel.
Użyj jednej z poniższych metod, aby utworzyć przekształcenie obszaru roboczego DCR dla obszaru roboczego i dodać do niego co najmniej jedną transformację.
Przekształcenie obszaru roboczego można utworzyć w witrynie Azure Portal, dodając przekształcenie do obsługiwanej tabeli.
W menu Obszary robocze usługi Log Analytics w witrynie Azure Portal wybierz pozycję Tabele. Kliknij prawym przyciskiem myszy odpowiednią tabelę i wybierz pozycję Utwórz przekształcenie.
Jeśli przekształcenie dcR obszaru roboczego nie zostało jeszcze utworzone dla tego obszaru roboczego, wybierz opcję, aby ją utworzyć. Jeśli została już utworzona, zostanie ona już wybrana. Każdy obszar roboczy może mieć tylko jedną transformację obszaru roboczego DCR.
Wybierz pozycję Dalej, aby wyświetlić przykładowe dane z tabeli. Kliknij pozycję Edytor przekształceń, aby zdefiniować zapytanie przekształcenia.
Następnie możesz edytować i uruchomić zapytanie przekształcenia, aby wyświetlić wyniki względem rzeczywistych danych z tabeli. Kontynuuj modyfikowanie i testowanie zapytania, dopóki nie uzyskasz żądanych wyników.
Jeśli zapytanie jest zadowalające, kliknij przycisk Zastosuj , a następnie przycisk Dalej i Utwórz , aby zapisać kontroler domeny przy użyciu nowej transformacji.
Optymalizowanie i monitorowanie przekształceń
Przekształcenia uruchamiają zapytanie KQL względem każdego rekordu zebranego przy użyciu kontrolera domeny, dlatego ważne jest, aby były one uruchamiane wydajnie. Czas wykonywania transformacji przyczynia się do ogólnego opóźnienia pozyskiwania danych, a przekształcenia, które zajmują zbyt dużo czasu do uruchomienia, mogą mieć wpływ na wydajność potoku zbierania danych i spowodować utratę danych. Optymalne przekształcenia powinny potrwać nie więcej niż 1 sekundę do uruchomienia. Zobacz Optymalizowanie zapytań dzienników w usłudze Azure Monitor , aby uzyskać wskazówki dotyczące testowania zapytania przed wdrożeniem go jako przekształcenia i zalecenia dotyczące optymalizowania zapytań, które nie działają wydajnie.
Ważne
Utrata danych może wystąpić, jeśli transformacja trwa dłużej niż 20 sekund.
Ponieważ przekształcenia nie są uruchamiane interaktywnie, ważne jest, aby stale je monitorować, aby upewnić się, że działają prawidłowo i nie poświęcają zbyt dużo czasu na przetwarzanie danych. Aby uzyskać szczegółowe informacje na temat dzienników i metryk monitorujących kondycję i wydajność przekształceń, zobacz Monitorowanie i rozwiązywanie problemów z zbieraniem danych DCR w usłudze Azure Monitor . Obejmuje to identyfikowanie wszelkich błędów występujących w języku KQL i metrykach w celu śledzenia ich czasu trwania.
Następujące metryki są automatycznie zbierane dla przekształceń i powinny być regularnie przeglądane, aby sprawdzić, czy przekształcenia są nadal uruchomione zgodnie z oczekiwaniami. Utwórz reguły alertów dotyczących metryk, które mają być automatycznie powiadamiane, gdy jedna z tych metryk przekroczy próg.
- Czas trwania przekształcania dzienników na minutę
- Błędy przekształcania dzienników na minutę
Włącz dzienniki błędów dcR, aby śledzić wszelkie błędy występujące w przekształceniach lub innych zapytaniach. Utwórz regułę alertu dziennika, która ma być automatycznie powiadamiana, gdy wpis zostanie zapisany w tej tabeli.
Wskazówki
Istnieje wiele metod tworzenia przekształceń w zależności od metody zbierania danych. W poniższej tabeli wymieniono wskazówki dotyczące różnych metod tworzenia przekształceń.
Zbieranie danych | Odwołanie |
---|---|
Interfejs API pozyskiwania dzienników | Wysyłanie danych do dzienników usługi Azure Monitor przy użyciu interfejsu API REST (Azure Portal) Wysyłanie danych do dzienników usługi Azure Monitor przy użyciu interfejsu API REST (szablony usługi Azure Resource Manager) |
Maszyna wirtualna z agentem usługi Azure Monitor | Dodawanie przekształcenia do dziennika usługi Azure Monitor |
Klaster Kubernetes ze szczegółowymi informacjami o kontenerze | Przekształcenia danych w usłudze Container Insights |
Azure Event Hubs | Samouczek: pozyskiwanie zdarzeń z usługi Azure Event Hubs do dzienników usługi Azure Monitor (publiczna wersja zapoznawcza) |
Następne kroki
- Utwórz regułę zbierania danych i skojarzenie z nią z maszyny wirtualnej przy użyciu agenta usługi Azure Monitor.