Udostępnij za pośrednictwem


Jak wykonywać zapytania dotyczące dzienników ze szczegółowych informacji o maszynie wirtualnej

Uwaga

W tym artykule odwołuje się do systemu CentOS — dystrybucji systemu Linux, która zbliża się do stanu zakończenia życia (EOL). Rozważ odpowiednie użycie i planowanie. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

Szczegółowe informacje o maszynie wirtualnej zbierają metryki wydajności i połączenia, komputer i przetwarzają dane spisu oraz informacje o stanie kondycji i przekazują je do obszaru roboczego usługi Log Analytics w usłudze Azure Monitor. Te dane są dostępne do wykonywania zapytań w usłudze Azure Monitor. Te dane można zastosować do scenariuszy obejmujących planowanie migracji, analizę pojemności, odnajdywanie i rozwiązywanie problemów z wydajnością na żądanie.

Mapuj rekordy

Ważne

Jeśli maszyna wirtualna korzysta ze szczegółowych informacji o maszynie wirtualnej z agentem usługi Azure Monitor, musisz mieć włączone procesy i zależności, aby te tabele zostały utworzone.

Jeden rekord jest generowany na godzinę dla każdego unikatowego komputera i procesu, oprócz rekordów generowanych podczas uruchamiania procesu lub komputera lub jest dodawany do szczegółowych informacji o maszynie wirtualnej. Pola i wartości w tabeli VMComputer są mapowanie na pola zasobu Maszyny w interfejsie API usługi Azure Resource Manager mapowania. Pola i wartości w tabeli VMProcess są mapowe na pola zasobu Proces w interfejsie API usługi Azure Resource Manager mapy usługi ServiceMap. Pole _ResourceId pasuje do pola nazwy w odpowiednim zasobie usługi Resource Manager.

Istnieją właściwości generowane wewnętrznie, których można użyć do identyfikowania unikatowych procesów i komputerów:

  • Komputer: użyj _ResourceId , aby jednoznacznie zidentyfikować komputer w obszarze roboczym usługi Log Analytics.
  • Proces: użyj _ResourceId , aby jednoznacznie zidentyfikować proces w obszarze roboczym usługi Log Analytics.

Ponieważ dla określonego procesu i komputera w określonym zakresie czasu może istnieć wiele rekordów, zapytania mogą zwracać więcej niż jeden rekord dla tego samego komputera lub procesu. Aby uwzględnić tylko najnowszy rekord, dodaj | summarize arg_max(TimeGenerated, *) by ResourceId go do zapytania.

Połączenie iony i porty

Funkcja metryk Połączenie ion wprowadza dwie nowe tabele w dziennikach usługi Azure Monitor — VM Połączenie ion i VMBoundPort. Te tabele zawierają informacje o połączeniach dla maszyny (przychodzącej i wychodzącej) oraz portów serwera, które są otwarte/aktywne na nich. Połączenie ionMetrics są również udostępniane za pośrednictwem interfejsów API, które zapewniają środki uzyskiwania określonej metryki w przedziale czasu. Połączenia TCP wynikające z akceptowaniagniazda nasłuchiwania są przychodzące, podczas gdy połączenia z danym adresem IP i portem są wychodzące. Kierunek połączenia jest reprezentowany przez właściwość Direction, którą można ustawić na przychodzące lub wychodzące.

Rekordy w tych tabelach są generowane na podstawie danych zgłaszanych przez agenta zależności. Każdy rekord reprezentuje obserwację w 1-minutowym przedziale czasu. Właściwość TimeGenerated wskazuje początek interwału czasu. Każdy rekord zawiera informacje umożliwiające zidentyfikowanie odpowiedniej jednostki, czyli połączenia lub portu, a także metryk skojarzonych z tą jednostką. Obecnie zgłaszane jest tylko działanie sieciowe, które występuje przy użyciu protokołu TCP za pośrednictwem protokołu IPv4.

Typowe pola i konwencje

Następujące pola i konwencje dotyczą maszyn wirtualnych Połączenie ion i VMBoundPort:

  • Komputer: w pełni kwalifikowana nazwa domeny maszyny raportowania
  • AgentId: unikatowy identyfikator maszyny z uruchomionym agentem usługi Azure Monitor lub agentem usługi Log Analytics
  • Maszyna: nazwa zasobu usługi Azure Resource Manager dla maszyny uwidocznionej przez usługę ServiceMap. Jest to postać m-{GUID}, gdzie identyfikator GUID jest tym samym identyfikatorem GUID co Identyfikator agenta
  • Proces: nazwa zasobu usługi Azure Resource Manager dla procesu uwidocznionego przez usługę ServiceMap. Jest to postać p-{ciąg szesnastkowy}. Proces jest unikatowy w zakresie maszyny i w celu wygenerowania unikatowego identyfikatora procesu między maszynami, połącz pola Maszyny i Proces.
  • ProcessName: nazwa wykonywalna procesu raportowania.
  • Wszystkie adresy IP są ciągami w formacie kanonicznym IPv4, na przykład 13.107.3.160

Aby zarządzać kosztami i złożonością, rekordy połączeń nie reprezentują pojedynczych połączeń sieci fizycznych. Wiele połączeń sieci fizycznych jest pogrupowanych w połączenie logiczne, które zostanie następnie odzwierciedlone w odpowiedniej tabeli. Oznacza to, że rekordy w tabeli vm Połączenie ion reprezentują grupowanie logiczne, a nie poszczególne połączenia fizyczne, które są obserwowane. Połączenie sieci fizycznej współużytkuje tę samą wartość dla następujących atrybutów w danym interwale jednominutowym, które są agregowane w jeden rekord logiczny na maszynie wirtualnej Połączenie ion.

Właściwości opis
Kierunek Kierunek połączenia, wartość jest przychodząca lub wychodząca
Maszyna Nazwa FQDN komputera
Przetwarzaj Tożsamość procesu lub grup procesów, inicjowanie/akceptowanie połączenia
SourceIp Adres IP źródła
DestinationIp Adres IP miejsca docelowego
DestinationPort Numer portu miejsca docelowego
Protokół Protokół używany do połączenia. Wartości to tcp.

Aby uwzględnić wpływ grupowania, informacje o liczbie zgrupowanych połączeń fizycznych znajdują się w następujących właściwościach rekordu:

Właściwości opis
LinkiEstablished Liczba połączeń sieci fizycznych, które zostały ustanowione w przedziale czasu raportowania
ŁączaTerminowane Liczba połączeń sieci fizycznych, które zostały zakończone w przedziale czasu raportowania
LinksFailed Liczba połączeń sieci fizycznych, które zakończyły się niepowodzeniem w przedziale czasu raportowania. Te informacje są obecnie dostępne tylko dla połączeń wychodzących.
LinksLive Liczba otwartych połączeń sieci fizycznych na końcu okna czasu raportowania

Metryki

Oprócz metryk liczby połączeń informacje o ilości danych wysłanych i odebranych na danym połączeniu logicznym lub porcie sieciowym są również zawarte w następujących właściwościach rekordu:

Właściwości opis
Bajty Łączna liczba bajtów wysłanych w przedziale czasu raportowania
Bytesreceived Łączna liczba bajtów, które zostały odebrane w przedziale czasu raportowania
Odpowiedzi Liczba odpowiedzi zaobserwowanych w przedziale czasu raportowania.
ResponseTimeMax Największy czas odpowiedzi (milisekund) zaobserwowany w przedziale czasu raportowania. Jeśli wartość nie jest pusta, właściwość jest pusta.
ResponseTimeMin Najmniejszy czas odpowiedzi (milisekund) zaobserwowany w przedziale czasu raportowania. Jeśli wartość nie jest pusta, właściwość jest pusta.
ResponseTimeSum Suma wszystkich czasów odpowiedzi (milisekund) zaobserwowanych w przedziale czasu raportowania. Jeśli wartość nie jest pusta, właściwość jest pusta.

Trzeci typ zgłaszanych danych to czas odpowiedzi — jak długo obiekt wywołujący spędza oczekiwanie na żądanie wysłane przez połączenie do przetworzenia i odpowiedzi przez zdalny punkt końcowy. Zgłoszony czas odpowiedzi to szacowanie rzeczywistego czasu odpowiedzi podstawowego protokołu aplikacji. Jest obliczana przy użyciu heurystyki na podstawie obserwacji przepływu danych między źródłem a docelowym końcem połączenia sieciowego fizycznego. Koncepcyjnie jest to różnica między czasem ostatniego bajtu żądania opuszcza nadawcę, a czasem powrotu do niego ostatniego bajtu odpowiedzi. Te dwa znaczniki czasu służą do oznaczania zdarzeń żądania i odpowiedzi na danym połączeniu fizycznym. Różnica między nimi reprezentuje czas odpowiedzi pojedynczego żądania.

W tej pierwszej wersji tej funkcji algorytm jest przybliżeniem, które może działać z różnym stopniem sukcesu w zależności od rzeczywistego protokołu aplikacji używanego dla danego połączenia sieciowego. Na przykład bieżące podejście działa dobrze w przypadku protokołów opartych na żądaniach, takich jak HTTP(S), ale nie działa z protokołami jednokierunkowymi ani opartymi na kolejkach komunikatów.

Oto kilka ważnych kwestii, które należy wziąć pod uwagę:

  1. Jeśli proces akceptuje połączenia na tym samym adresie IP, ale za pośrednictwem wielu interfejsów sieciowych, zostanie zgłoszony oddzielny rekord dla każdego interfejsu.
  2. Rekordy z wieloznacznymi adresami IP nie będą zawierać żadnych działań. Są one dołączone do reprezentowania faktu, że port na maszynie jest otwarty dla ruchu przychodzącego.
  3. Aby zmniejszyć szczegółowość i ilość danych, rekordy z wieloznacznym adresem IP zostaną pominięte, gdy istnieje pasujący rekord (dla tego samego procesu, portu i protokołu) z określonym adresem IP. Po pominięciu rekordu IP z symbolem wieloznacznymi właściwość rekordu IsWildcardBind z określonym adresem IP zostanie ustawiona na wartość "True", aby wskazać, że port jest uwidoczniony w każdym interfejsie maszyny raportowania.
  4. Porty powiązane tylko z określonym interfejsem mają wartość IsWildcardBind ustawioną na wartość False.

Nazewnictwo i klasyfikacja

Dla wygody adres IP zdalnego zakończenia połączenia jest zawarty we właściwości RemoteIp. W przypadku połączeń przychodzących funkcja RemoteIp jest taka sama jak SourceIp, natomiast w przypadku połączeń wychodzących jest taka sama jak DestinationIp. Właściwość RemoteDnsCanonicalNames reprezentuje nazwy kanoniczne DNS zgłaszane przez maszynę dla usługi RemoteIp. Właściwość RemoteDnsQuestions reprezentuje pytania DNS zgłaszane przez maszynę dla usługi RemoteIp. Właściwość RemoveClassification jest zarezerwowana do użytku w przyszłości.

Geolokalizacja

Maszyna wirtualna Połączenie ion zawiera również informacje o geolokalizacji dla zdalnego końca każdego rekordu połączenia w następujących właściwościach rekordu:

Właściwości opis
RemoteCountry Nazwa kraju/regionu hostowania usługi RemoteIp. Na przykład Stany Zjednoczone
RemoteLatitude Szerokość geograficzna lokalizacji geograficznej. Na przykład 47.68
RemoteLongitude Długość geograficzna lokalizacji geograficznej. Na przykład -122.12

Złośliwy adres IP

Każda właściwość RemoteIp na maszynie wirtualnej Połączenie ion jest sprawdzana względem zestawu adresów IP ze znanymi złośliwymi działaniami. Jeśli remoteIp zostanie zidentyfikowany jako złośliwy, następujące właściwości zostaną wypełnione (są puste, gdy adres IP nie jest uważany za złośliwy) w następujących właściwościach rekordu:

Właściwości opis
Złośliwy adresIp Adres RemoteIp
IndicatorThreadType Wykryto zagrożenie jest jedną z następujących wartości: Botnet, C2, CryptoMining, Darknet, DDos, MaliciousUrl, Malware, Phishing, Proxy, PUA, Watchlist.
opis Opis zaobserwowanego zagrożenia.
TLPLevel Poziom protokołu Traffic Light Protocol (TLP) jest jedną z zdefiniowanych wartości, White, Green, Amber, Red.
Ufność Wartości to 0– 100.
Ważność Wartości to 0– 5, gdzie 5 jest najpoważniejsze, a 0 w ogóle nie jest poważne. Wartość domyślna to 3.
FirstReportedDateTime Przy pierwszym zgłoszeniu wskaźnika przez dostawcę.
LastReportedDateTime Ostatni raz wskaźnik był widoczny przez Interflow.
Isactive Wskazuje, że wskaźniki są dezaktywowane z wartością True lub False .
ReportReferenceLink Linki do raportów związanych z danym obserwowalnym. Aby zgłosić fałszywy alert lub uzyskać więcej szczegółów dotyczących złośliwego adresu IP, otwórz zgłoszenie do pomocy technicznej i podaj ten link.
AdditionalInformation Udostępnia dodatkowe informacje, jeśli ma to zastosowanie, dotyczące zaobserwowanego zagrożenia.

Porty

Porty na maszynie, która aktywnie akceptują ruch przychodzący lub mogą potencjalnie akceptować ruch, ale są bezczynne w oknie czasu raportowania, są zapisywane w tabeli VMBoundPort.

Każdy rekord w usłudze VMBoundPort jest identyfikowany przez następujące pola:

Właściwości opis
Przetwarzaj Tożsamość procesu (lub grup procesów), z którymi jest skojarzony port.
Ip Adres IP portu (może to być adres IP z symbolami wieloznacznymi, 0.0.0.0)
Port Numer portu
Protokół Protokół. Na przykład tcp lub udp (obecnie obsługiwany jest tylko tcp).

Tożsamość portu pochodzi z powyższych pięciu pól i jest przechowywana we właściwości PortId. Ta właściwość może służyć do szybkiego znajdowania rekordów dla określonego portu w czasie.

Metryki

Rekordy portów obejmują metryki reprezentujące skojarzone z nimi połączenia. Obecnie są zgłaszane następujące metryki (szczegóły każdej metryki opisano w poprzedniej sekcji):

  • BytesSent i BytesReceived
  • LinksEstablished, LinksTerminated, LinksLive
  • ResposeTime, ResponseTimeMin, ResponseTimeMax, ResponseTimeSum

Oto kilka ważnych kwestii, które należy wziąć pod uwagę:

  • Jeśli proces akceptuje połączenia na tym samym adresie IP, ale za pośrednictwem wielu interfejsów sieciowych, zostanie zgłoszony oddzielny rekord dla każdego interfejsu.
  • Rekordy z wieloznacznymi adresami IP nie będą zawierać żadnych działań. Są one dołączone do reprezentowania faktu, że port na maszynie jest otwarty dla ruchu przychodzącego.
  • Aby zmniejszyć szczegółowość i ilość danych, rekordy z wieloznacznym adresem IP zostaną pominięte, gdy istnieje pasujący rekord (dla tego samego procesu, portu i protokołu) z określonym adresem IP. Po pominięciu rekordu IP z symbolami wieloznacznymi właściwość IsWildcardBind dla rekordu z określonym adresem IP zostanie ustawiona na wartość True. Oznacza to, że port jest uwidaczniany za pośrednictwem każdego interfejsu maszyny raportowania.
  • Porty powiązane tylko z określonym interfejsem mają wartość IsWildcardBind ustawioną na wartość False.

Rekordy maszyny wirtualnejKomputera

Rekordy o typie maszyny wirtualnejKomputer mają dane spisu dla serwerów z agentem zależności. Te rekordy mają właściwości w poniższej tabeli:

Właściwości opis
TenantId Unikatowy identyfikator obszaru roboczego
SourceSystem Wyniki analiz
TimeGenerated Sygnatura czasowa rekordu (UTC)
Komputer Nazwa FQDN komputera
AgentId Unikatowy identyfikator maszyny z uruchomionym agentem usługi Azure Monitor lub agentem usługi Log Analytics
Maszyna Nazwa zasobu usługi Azure Resource Manager dla maszyny uwidocznionej przez usługę ServiceMap. Jest to postać m-{GUID}, gdzie identyfikator GUID jest tym samym identyfikatorem GUID co Identyfikator agenta.
DisplayName Display name
FullDisplayName Pełna nazwa wyświetlana
HostName Nazwa maszyny bez nazwy domeny
BootTime Czas rozruchu maszyny (UTC)
Strefa czasowa Znormalizowana strefa czasowa
VirtualizationState wirtualne, hypervisor, fizyczne
Ipv4Addresses Tablica adresów IPv4
Maski Ipv4Subnet Tablica masek podsieci IPv4 (w tej samej kolejności co Ipv4Addresses).
Ipv4DefaultGateways Tablica bram IPv4
Ipv6Addresses Tablica adresów IPv6
MacAddresses Tablica adresów MAC
Nazwy DNS Tablica nazw DNS skojarzonych z maszyną.
DependencyAgentVersion Wersja agenta zależności uruchomionego na maszynie.
OperatingSystemFamily Linux, Windows
OperatingSystemFullName Pełna nazwa systemu operacyjnego
PhysicalMemoryMB Pamięć fizyczna w megabajtach
Procesorów Liczba procesorów
Procesor CpuSpeed Szybkość procesora CPU w MHz
VirtualMachineType hyperv, vmware, xen
VirtualMachineNativeId Identyfikator maszyny wirtualnej przypisany przez funkcję hypervisor
VirtualMachineNativeName Nazwa maszyny wirtualnej
VirtualMachineHypervisorId Unikatowy identyfikator funkcji hypervisor hostująca maszynę wirtualną
HypervisorType hyperv
HypervisorId Unikatowy identyfikator funkcji hypervisor
Dostawca hostingu Azure
_ResourceId Unikatowy identyfikator zasobu platformy Azure
AzureSubscriptionId Unikatowy identyfikator globalny identyfikujący twoją subskrypcję
AzureResourceGroup Nazwa grupy zasobów platformy Azure, do których należy maszyna.
AzureResourceName Nazwa zasobu platformy Azure
AzureLocation Lokalizacja zasobu platformy Azure
AzureUpdateDomain Nazwa domeny aktualizacji platformy Azure
AzureFaultDomain Nazwa domeny błędów platformy Azure
AzureVmId Unikatowy identyfikator maszyny wirtualnej platformy Azure
AzureSize Rozmiar maszyny wirtualnej platformy Azure
AzureImagePublisher Nazwa wydawcy maszyny wirtualnej platformy Azure
AzureImageOffering Nazwa typu oferty maszyny wirtualnej platformy Azure
AzureImageSku Jednostka SKU obrazu maszyny wirtualnej platformy Azure
AzureImageVersion Wersja obrazu maszyny wirtualnej platformy Azure
AzureCloudServiceName Nazwa usługi w chmurze platformy Azure
AzureCloudServiceDeployment Identyfikator wdrożenia dla usługi w chmurze
AzureCloudServiceRoleName Nazwa roli usługi w chmurze
AzureCloudServiceRoleType Typ roli usługi w chmurze: proces roboczy lub internetowy
AzureCloudServiceInstanceId Identyfikator wystąpienia roli usługi w chmurze
AzureVmScaleSetName Nazwa zestawu skalowania maszyn wirtualnych
AzureVmScaleSetDeployment Identyfikator wdrożenia zestawu skalowania maszyn wirtualnych
AzureVmScaleSetResourceId Unikatowy identyfikator zasobu zestawu skalowania maszyn wirtualnych.
AzureVmScaleSetInstanceId Unikatowy identyfikator zestawu skalowania maszyn wirtualnych
AzureServiceFabricClusterId Unikatowy identyfikator klastra usługi Azure Service Fabric
AzureServiceFabricClusterName Nazwa klastra usługi Azure Service Fabric

Rekordy vmProcess

Rekordy o typie maszyny wirtualnejProcess zawierają dane spisu dla procesów połączonych z protokołem TCP na serwerach z agentem zależności. Te rekordy mają właściwości w poniższej tabeli:

Właściwości opis
TenantId Unikatowy identyfikator obszaru roboczego
SourceSystem Wyniki analiz
TimeGenerated Sygnatura czasowa rekordu (UTC)
Komputer Nazwa FQDN komputera
AgentId Unikatowy identyfikator maszyny z uruchomionym agentem usługi Azure Monitor lub agentem usługi Log Analytics
Maszyna Nazwa zasobu usługi Azure Resource Manager dla maszyny uwidocznionej przez usługę ServiceMap. Jest to postać m-{GUID}, gdzie identyfikator GUID jest tym samym identyfikatorem GUID co Identyfikator agenta.
Przetwarzaj Unikatowy identyfikator procesu Service Map. Ma postać p-{GUID}.
Nazwa pliku wykonywalnego Nazwa pliku wykonywalnego procesu
DisplayName Nazwa wyświetlana procesu
Rola Rola procesu: webserver, appServer, databaseServer, ldapServer, smbServer
Grupuj Nazwa grupy procesów. Procesy w tej samej grupie są logicznie powiązane, np. część tego samego produktu lub składnika systemu.
StartTime Godzina rozpoczęcia puli procesów
FirstPid Pierwszy identyfikator PID w puli procesów
opis Opis procesu
CompanyName Nazwa firmy
Nazwa wewnętrzna Nazwa wewnętrzna
ProductName Nazwa produktu
Productversion Wersja produktu
FileVersion Wersja pliku
Ścieżka wykonywalna Ścieżka pliku wykonywalnego
CommandLine Wiersz polecenia
WorkingDirectory Katalog roboczy
Usługi Tablica usług, w ramach których jest wykonywany proces
UserName Konto, na którym jest wykonywany proces
UserDomain Domena, w której jest wykonywany proces
_ResourceId Unikatowy identyfikator procesu w obszarze roboczym

Przykładowe zapytania mapy

Wyświetl listę wszystkich znanych maszyn

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId

Kiedy maszyna wirtualna została ostatnio uruchomiona ponownie

let Today = now(); VMComputer | extend DaysSinceBoot = Today - BootTime | summarize by Computer, DaysSinceBoot, BootTime | sort by BootTime asc

Podsumowanie maszyn wirtualnych platformy Azure według obrazu, lokalizacji i jednostki SKU

VMComputer | where AzureLocation != "" | summarize by Computer, AzureImageOffering, AzureLocation, AzureImageSku

Wyświetlanie listy pojemności pamięci fizycznej wszystkich zarządzanych komputerów

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project PhysicalMemoryMB, Computer

Wyświetlanie listy nazw komputerów, DNS, IP i systemu operacyjnego

VMComputer | summarize arg_max(TimeGenerated, *) by _ResourceId | project Computer, OperatingSystemFullName, DnsNames, Ipv4Addresses

Znajdowanie wszystkich procesów za pomocą polecenia "sql" w wierszu polecenia

VMProcess | where CommandLine contains_cs "sql" | summarize arg_max(TimeGenerated, *) by _ResourceId

Znajdowanie maszyny (najnowszego rekordu) według nazwy zasobu

search in (VMComputer) "m-4b9c93f9-bc37-46df-b43c-899ba829e07b" | summarize arg_max(TimeGenerated, *) by _ResourceId

Znajdowanie maszyny (najnowszego rekordu) według adresu IP

search in (VMComputer) "10.229.243.232" | summarize arg_max(TimeGenerated, *) by _ResourceId

Wyświetlanie listy wszystkich znanych procesów na określonej maszynie

VMProcess | where Machine == "m-559dbcd8-3130-454d-8d1d-f624e57961bc" | summarize arg_max(TimeGenerated, *) by _ResourceId

Wyświetl listę wszystkich komputerów z uruchomionym programem SQL Server

VMComputer | where AzureResourceName in ((search in (VMProcess) "*sql*" | distinct Machine)) | distinct Computer

Wyświetl listę wszystkich unikatowych wersji produktu curl w moim centrum danych

VMProcess | where ExecutableName == "curl" | distinct ProductVersion

Tworzenie grupy komputerów wszystkich komputerów z systemem CentOS

VMComputer | where OperatingSystemFullName contains_cs "CentOS" | distinct Computer
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart

Które maszyny wirtualne platformy Azure przesyłają najwięcej bajtów

VMConnection | join kind=fullouter(VMComputer) on $left.Computer == $right.Computer | summarize count(BytesSent) by Computer, AzureVMSize | sort by count_BytesSent desc
VMConnection | where TimeGenerated >= ago(24hr) | where Computer == "acme-demo" | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart

trend błędów Połączenie ion

VMConnection | where Computer == "acme-demo" | extend bythehour = datetime_part("hour", TimeGenerated) | project bythehour, LinksFailed | summarize failCount = count() by bythehour | sort by bythehour asc | render timechart

Powiązane porty

VMBoundPort
| where TimeGenerated >= ago(24hr)
| where Computer == 'admdemo-appsvr'
| distinct Port, ProcessName

Liczba otwartych portów na maszynach

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by Computer, Machine, Port, Protocol
| summarize OpenPorts=count() by Computer, Machine
| order by OpenPorts desc

Ocenianie procesów w obszarze roboczym według liczby otwartych portów

VMBoundPort
| where Ip != "127.0.0.1"
| summarize by ProcessName, Port, Protocol
| summarize OpenPorts=count() by ProcessName
| order by OpenPorts desc

Zachowanie agregacji dla każdego portu

To zapytanie może następnie służyć do oceniania portów według aktywności, np. portów z większością ruchu przychodzącego/wychodzącego, portów z większością połączeń

// 
VMBoundPort
| where Ip != "127.0.0.1"
| summarize BytesSent=sum(BytesSent), BytesReceived=sum(BytesReceived), LinksEstablished=sum(LinksEstablished), LinksTerminated=sum(LinksTerminated), arg_max(TimeGenerated, LinksLive) by Machine, Computer, ProcessName, Ip, Port, IsWildcardBind
| project-away TimeGenerated
| order by Machine, Computer, Port, Ip, ProcessName

Podsumowywanie połączeń wychodzących z grupy maszyn

// the machines of interest
let machines = datatable(m: string) ["m-82412a7a-6a32-45a9-a8d6-538354224a25"];
// map of ip to monitored machine in the environment
let ips=materialize(VMComputer
| summarize ips=makeset(todynamic(Ipv4Addresses)) by MonitoredMachine=AzureResourceName
| mvexpand ips to typeof(string));
// all connections to/from the machines of interest
let out=materialize(VMConnection
| where Machine in (machines)
| summarize arg_max(TimeGenerated, *) by ConnectionId);
// connections to localhost augmented with RemoteMachine
let local=out
| where RemoteIp startswith "127."
| project ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=Machine;
// connections not to localhost augmented with RemoteMachine
let remote=materialize(out
| where RemoteIp !startswith "127."
| join kind=leftouter (ips) on $left.RemoteIp == $right.ips
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine=MonitoredMachine);
// the remote machines to/from which we have connections
let remoteMachines = remote | summarize by RemoteMachine;
// all augmented connections
(local)
| union (remote)
//Take all outbound records but only inbound records that come from either //unmonitored machines or monitored machines not in the set for which we are computing dependencies.
| where Direction == 'outbound' or (Direction == 'inbound' and RemoteMachine !in (machines))
| summarize by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol, RemoteIp, RemoteMachine
// identify the remote port
| extend RemotePort=iff(Direction == 'outbound', DestinationPort, 0)
// construct the join key we'll use to find a matching port
| extend JoinKey=strcat_delim(':', RemoteMachine, RemoteIp, RemotePort, Protocol)
// find a matching port
| join kind=leftouter (VMBoundPort 
| where Machine in (remoteMachines) 
| summarize arg_max(TimeGenerated, *) by PortId 
| extend JoinKey=strcat_delim(':', Machine, Ip, Port, Protocol)) on JoinKey
// aggregate the remote information
| summarize Remote=makeset(iff(isempty(RemoteMachine), todynamic('{}'), pack('Machine', RemoteMachine, 'Process', Process1, 'ProcessName', ProcessName1))) by ConnectionId, Direction, Machine, Process, ProcessName, SourceIp, DestinationIp, DestinationPort, Protocol

Rekordy wydajności

Rekordy z typem Szczegółowe informacje Metrics mają dane wydajności z systemu operacyjnego gościa maszyny wirtualnej. Te rekordy są zbierane w 60 sekundach i mają właściwości w poniższej tabeli:

Właściwości opis
TenantId Unikatowy identyfikator obszaru roboczego
SourceSystem Wyniki analiz
TimeGenerated Czas zbierania wartości (UTC)
Komputer Nazwa FQDN komputera
Pochodzenie vm.azm.ms
Przestrzeń nazw Kategoria licznika wydajności
Nazwisko Nazwa licznika wydajności
Val Zebrana wartość
Tagi Powiązane szczegóły dotyczące rekordu. Poniższa tabela zawiera tagi używane z różnymi typami rekordów.
AgentId Unikatowy identyfikator agenta każdego komputera
Typ Szczegółowe informacje Metrics
ResourceId Identyfikator zasobu maszyny wirtualnej

Liczniki wydajności obecnie zbierane w tabeli Szczegółowe informacje Metrics są wymienione w poniższej tabeli:

Przestrzeń nazw Nazwa/nazwisko opis Jednostka Tagi
Komputer Puls Puls komputera
Pamięć Dostępny mb/s Ilość dostępnej pamięci bajtów Megabajtów memorySizeMB — całkowity rozmiar pamięci
Sieć WriteBytesPerSecond Liczba bajtów zapisu w sieci na sekundę BytesPerSecond NetworkDeviceId — identyfikator urządzenia
bajty — łączna liczba wysłanych bajtów
Sieć ReadBytesPerSecond Liczba bajtów odczytu w sieci na sekundę BytesPerSecond networkDeviceId — identyfikator urządzenia
bajty — łączna liczba odebranych bajtów
Procesor WykorzystaniePercentage Procent wykorzystania procesora Procent totalCpus — łączna liczba procesorów CPU
Dysk_logiczny WritesPerSecond Zapisy dysku logicznego na sekundę CountPerSecond mountId — identyfikator instalacji urządzenia
Dysk_logiczny WriteLatencyMs Opóźnienie zapisu dysku logicznego w milisekundach Milisekund mountId — identyfikator instalacji urządzenia
Dysk_logiczny WriteBytesPerSecond Bajty zapisu dysku logicznego na sekundę BytesPerSecond mountId — identyfikator instalacji urządzenia
Dysk_logiczny TransferyPerSecond Transfery dysków logicznych na sekundę CountPerSecond mountId — identyfikator instalacji urządzenia
Dysk_logiczny TransferLatencyMs Opóźnienie transferu dysku logicznego w milisekundach Milisekund mountId — identyfikator instalacji urządzenia
Dysk_logiczny ReadsPerSecond Odczyty dysku logicznego na sekundę CountPerSecond mountId — identyfikator instalacji urządzenia
Dysk_logiczny ReadLatencyMs Opóźnienie odczytu dysku logicznego w milisekundach Milisekund mountId — identyfikator instalacji urządzenia
Dysk_logiczny ReadBytesPerSecond Bajty odczytu dysku logicznego na sekundę BytesPerSecond mountId — identyfikator instalacji urządzenia
Dysk_logiczny FreeSpacePercentage Procent wolnego miejsca na dysku logicznym Procent mountId — identyfikator instalacji urządzenia
Dysk_logiczny FreeSpaceMB Bajty wolnego miejsca na dysku logicznym Megabajtów mountId — identyfikator instalacji urządzenia
diskSizeMB — całkowity rozmiar dysku
Dysk_logiczny BytesPerSecond Bajty dysku logicznego na sekundę BytesPerSecond mountId — identyfikator instalacji urządzenia

Następne kroki