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 jest stanem End Of Life (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łączenia i porty
Funkcja Metryk połączeń wprowadza dwie nowe tabele w dziennikach usługi Azure Monitor — VMConnection 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. Metryki połączeń są również udostępniane za pośrednictwem interfejsów API, które zapewniają środki uzyskania 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
Do połączeń VMConnection i VMBoundPort mają zastosowanie następujące pola i konwencje:
- 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 VMConnection reprezentują grupowanie logiczne, a nie poszczególne obserwowane połączenia fizyczne. 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 jednym rekordzie logicznym w programie VMConnection.
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ę:
- 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 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.
- 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
VmConnection 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 w tabeli VMConnection 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 | błękit |
_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
Bajty wysłane i odebrane trendy
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
Trendy stanu połączenia
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 niepowodzeń połączeń
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 InsightsMetrics 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 | InsightsMetrics |
ResourceId | Identyfikator zasobu maszyny wirtualnej |
Liczniki wydajności zbierane obecnie w tabeli InsightsMetrics 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
Jeśli dopiero zaczynasz pisać zapytania dzienników w usłudze Azure Monitor, zapoznaj się ze sposobem pisania zapytań dzienników przy użyciu usługi Log Analytics w witrynie Azure Portal.
Dowiedz się więcej o pisaniu zapytań wyszukiwania.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla