Övervaka virtuella datorer med Azure Monitor: Samla in data
Den här artikeln är en del av guiden Övervaka virtuella datorer och deras arbetsbelastningar i Azure Monitor. Den beskriver hur du konfigurerar insamling av data när du har distribuerat Azure Monitor Agent till dina virtuella Azure- och hybriddatorer i Azure Monitor.
Den här artikeln innehåller vägledning om hur du samlar in de vanligaste typerna av telemetri från virtuella datorer. Den exakta konfiguration som du väljer beror på de arbetsbelastningar som du kör på dina datorer. I varje avsnitt ingår exempelloggsökningsaviseringar som du kan använda med dessa data.
- Mer information om hur du analyserar telemetri som samlas in från dina virtuella datorer finns i Övervaka virtuella datorer med Azure Monitor: Analysera övervakningsdata.
- Mer information om hur du använder telemetri som samlas in från dina virtuella datorer för att skapa aviseringar i Azure Monitor finns i Övervaka virtuella datorer med Azure Monitor: Aviseringar.
Kommentar
Det här scenariot beskriver hur du implementerar fullständig övervakning av din azure- och hybridmiljö för virtuella datorer. Information om hur du kommer igång med att övervaka din första virtuella Azure-dator finns i Övervaka virtuella Azure-datorer.
Regler för datainsamling
Datainsamling från Azure Monitor Agent definieras av en eller flera regler för datainsamling (DCR) som lagras i din Azure-prenumeration och är associerade med dina virtuella datorer.
För virtuella datorer definierar DCR-enheter data, till exempel händelser och prestandaräknare, för att samla in och ange de Log Analytics-arbetsytor där data ska skickas. DCR kan också använda transformeringar för att filtrera bort oönskade data och lägga till beräknade kolumner. En enskild dator kan associeras med flera DCR och en enda DCR kan associeras med flera datorer. DCR levereras till alla datorer som de är associerade med där Azure Monitor Agent bearbetar dem.
Visa regler för datainsamling
Du kan visa domänkontrollanterna i din Azure-prenumeration från datainsamlingsregler på menyn Övervaka i Azure Portal. DCR stöder andra datainsamlingsscenarier i Azure Monitor, så alla dina domänkontrollanter är inte nödvändigtvis för virtuella datorer.
Skapa regler för datainsamling
Det finns flera metoder för att skapa domänkontrollanter beroende på scenariot för datainsamling. I vissa fall vägleder Azure Portal dig genom konfigurationen. Andra scenarier kräver att du redigerar en DCR direkt. När du konfigurerar VM-insikter skapas en förkonfigurerad DCR åt dig automatiskt. I följande avsnitt identifieras vanliga data som ska samlas in och hur du konfigurerar datainsamling.
I vissa fall kan du behöva redigera en befintlig DCR för att lägga till funktioner. Du kan till exempel använda Azure Portal för att skapa en domänkontrollant som samlar in Windows- eller Syslog-händelser. Sedan vill du lägga till en transformering till den domänkontrollanten för att filtrera bort kolumner i de händelser som du inte vill samla in.
När din miljö mognar och växer i komplexitet bör du implementera en strategi för att organisera dina dcrs för att hjälpa deras hantering. Vägledning om olika strategier finns i Metodtips för skapande och hantering av datainsamlingsregel i Azure Monitor.
Kontrollera kostnader
Eftersom din Azure Monitor-kostnad är beroende av hur mycket data du samlar in kontrollerar du att du inte samlar in mer än du behöver för att uppfylla dina övervakningskrav. Konfigurationen är en balans mellan din budget och hur mycket insikt du vill ha i driften av dina virtuella datorer.
Dricks
Strategier för att minska dina Azure Monitor-kostnader finns i Kostnadsoptimering och Azure Monitor.
En typisk virtuell dator genererar mellan 1 GB och 3 GB data per månad. Den här datastorleken beror på datorns konfiguration, de arbetsbelastningar som körs på den och konfigurationen av dina domänkontrollanter. Innan du konfigurerar datainsamling i hela miljön för virtuella datorer ska du börja samla in på vissa representativa datorer för att bättre förutsäga dina förväntade kostnader när de distribueras i din miljö. Använd Log Analytics-arbetsyteinsikter eller loggfrågor i Datavolym per dator för att fastställa mängden fakturerbara data som samlas in för varje dator och justera därefter.
Utvärdera insamlade data och filtrera bort alla som uppfyller följande kriterier för att minska dina kostnader. Varje datakälla som du samlar in kan ha en annan metod för att filtrera bort oönskade data. Se avsnitten nedan för information om var och en av de gemensamma datakällorna.
- Används inte för aviseringar.
- Inget känt kriminaltekniskt eller diagnostiskt värde.
- Krävs inte av tillsynsmyndigheter.
- Används inte i några instrumentpaneler eller arbetsböcker.
Du kan också använda transformeringar för att implementera mer detaljerad filtrering och även för att filtrera data från kolumner som ger lite värde. Du kan till exempel ha en Windows-händelse som är värdefull för aviseringar, men den innehåller kolumner med redundanta eller överdrivna data. Du kan skapa en transformering som gör att händelsen kan samlas in men tar bort dessa överdrivna data.
Filtrera data så mycket som möjligt innan de skickas till Azure Monitor för att undvika en potentiell avgift för att filtrera för mycket data med transformeringar. Använd transformeringar för postfiltrering med komplex logik och för att filtrera kolumner med data som du inte behöver.
Standarddatainsamling
Azure Monitor utför automatiskt följande datainsamling utan att kräva någon annan konfiguration.
Plattformsmått
Plattformsmått för virtuella Azure-datorer innehåller viktiga värdmått som processor-, nätverks- och diskanvändning. De kan vara:
- Visas på sidan Översikt.
- Analyseras med metrics explorer för datorn i Azure Portal.
- Används för måttaviseringar.
Aktivitetslogg
Aktivitetsloggen samlas in automatiskt. Den innehåller den senaste aktiviteten på datorn, till exempel eventuella konfigurationsändringar och när den stoppades och startades. Du kan visa plattformsmått och aktivitetsloggar som samlats in för varje virtuell datorvärd i Azure Portal.
Du kan visa aktivitetsloggen för en enskild dator eller för alla resurser i en prenumeration. Skapa en diagnostikinställning för att skicka dessa data till samma Log Analytics-arbetsyta som används av Azure Monitor Agent för att analysera dem med andra övervakningsdata som samlats in för den virtuella datorn. Det kostar ingenting för inmatning eller kvarhållning av aktivitetsloggdata.
Information om VM-tillgänglighet i Azure Resource Graph
Med Azure Resource Graph kan du använda samma Kusto-frågespråk som används i loggfrågor för att köra frågor mot dina Azure-resurser i stor skala med komplex filtrering, gruppering och sortering efter resursegenskaper. Du kan använda hälsokommentarer för virtuella datorer till Resource Graph för detaljerad analys av felattribution och stilleståndstid.
Information om vilka data som samlas in och hur du visar dem finns i Övervaka virtuella datorer med Azure Monitor: Analysera övervakningsdata.
VM-insikter
När du aktiverar VM-insikter skapas en DCR med MSVMI-prefixet som samlar in följande information. Du kan använda samma DCR med andra datorer i stället för att skapa en ny för varje virtuell dator.
Vanliga prestandaräknare för klientoperativsystemet skickas till tabellen InsightsMetrics på Log Analytics-arbetsytan. Räknarnamn normaliseras för att använda samma gemensamma namn oavsett operativsystemtyp.
Om du har angett processer och beroenden som ska samlas in fylls följande tabeller i:
- VMBoundPort: Trafik för öppna serverportar på datorn
- VMComputer: Inventeringsdata för datorn
- VMConnection: Trafik för inkommande och utgående anslutningar till och från datorn
- VMProcess: Processer som körs på datorn
Som standard möjliggör vm-insikter inte insamling av processer och beroenden för att spara kostnader för datainmatning. Dessa data krävs för map-funktionen och distribuerar även beroendeagenten till datorn. Aktivera den här samlingen om du vill använda den här funktionen.
Samla in Windows- och Syslog-händelser
Operativsystemet och programmen på virtuella datorer skriver ofta till Windows-händelseloggen eller Syslog. Du kan skapa en avisering så snart en enskild händelse hittas eller vänta på en serie matchande händelser inom en viss tidsperiod. Du kan också samla in händelser för senare analys, till exempel identifiera specifika trender över tid eller för att utföra felsökning när ett problem inträffar.
Information om hur du skapar en DCR för att samla in Windows- och Syslog-händelser finns i Samla in data med Azure Monitor Agent. Du kan snabbt skapa en DCR med hjälp av de vanligaste Windows-händelseloggarna och Syslog-anläggningarnas filtrering efter händelsenivå.
Om du vill ha mer detaljerad filtrering efter kriterier, till exempel händelse-ID, kan du skapa ett anpassat filter med hjälp av XPath-frågor. Du kan filtrera insamlade data ytterligare genom att redigera DCR för att lägga till en transformering.
Använd följande vägledning som en rekommenderad startpunkt för händelseinsamling. Ändra DCR-inställningarna för att filtrera onödiga händelser och lägga till andra händelser beroende på dina krav.
Källa | Strategi |
---|---|
Windows-händelser | Samla in minst kritiska händelser, fel- och varningshändelser för system- och programloggarna för att stödja aviseringar. Lägg till informationshändelser för att analysera trender och stödja felsökning. Utförliga händelser är sällan användbara och bör vanligtvis inte samlas in. |
Syslog-händelser | Samla in minst LOG_WARNING händelser för varje anläggning för att stödja aviseringar. Lägg till informationshändelser för att analysera trender och stödja felsökning. LOG_DEBUG händelser är sällan användbara och bör vanligtvis inte samlas in. |
Exempelloggfrågor: Windows-händelser
Fråga | beskrivning |
---|---|
Event |
Alla Windows-händelser |
Event | where EventLevelName == "Error" |
Alla Windows-händelser med allvarlighetsgrad för fel |
Event | summarize count() by Source |
Antal Windows-händelser per källa |
Event | where EventLevelName == "Error" | summarize count() by Source |
Antal Windows-felhändelser per källa |
Exempelloggfrågor: Syslog-händelser
Fråga | beskrivning |
---|---|
Syslog |
Alla Syslogs |
Syslog | where SeverityLevel == "error" |
Alla Syslog-poster med allvarlighetsgrad för fel |
Syslog | summarize AggregatedValue = count() by Computer |
Antal Syslog-poster per dator |
Syslog | summarize AggregatedValue = count() by Facility |
Antal Syslog-poster per anläggning |
Samla in prestandaräknare
Prestandadata från klienten kan skickas till antingen Azure Monitor Metrics eller Azure Monitor-loggar och du skickar dem vanligtvis till båda målen. Om du har aktiverat VM-insikter samlas en gemensam uppsättning prestandaräknare in i Loggar för att stödja dess prestandadiagram. Du kan inte ändra den här uppsättningen räknare, men du kan skapa andra domänkontrollanter för att samla in fler räknare och skicka dem till olika mål.
Det finns flera orsaker till varför du vill skapa en DCR för att samla in gästprestanda:
- Du använder inte VM-insikter, så klientprestandadata samlas inte redan in.
- Samla in andra prestandaräknare som VM-insikter inte samlar in.
- Samla in prestandaräknare från andra arbetsbelastningar som körs på klienten.
- Skicka prestandadata till Azure Monitor Metrics där du kan använda dem med måttutforskaren och måttaviseringar.
Information om hur du skapar en DCR för att samla in prestandaräknare finns i Samla in händelser och prestandaräknare från virtuella datorer med Azure Monitor Agent. Du kan snabbt skapa en DCR med hjälp av de vanligaste räknarna. Om du vill ha mer detaljerad filtrering efter kriterier, till exempel händelse-ID, kan du skapa ett anpassat filter med hjälp av XPath-frågor.
Kommentar
Du kan välja att kombinera prestanda och händelsesamling i samma DCR.
Mål | beskrivning |
---|---|
Mått | Värdmått skickas automatiskt till Azure Monitor-mått. Du kan använda en DCR för att samla in klientmått så att de kan analyseras tillsammans med Metrics Explorer eller användas med måttaviseringar. Dessa data lagras i 93 dagar. |
Loggar | Prestandadata som lagras i Azure Monitor-loggar kan lagras under längre perioder. Data kan analyseras tillsammans med dina händelsedata med hjälp av loggfrågor med Log Analytics eller loggsökningsaviseringar. Du kan också korrelera data med hjälp av komplex logik mellan flera datorer, regioner och prenumerationer. Prestandadata skickas till följande tabeller: – VM-insikter: InsightsMetrics – Andra prestandadata: Perf |
Exempelloggfrågor
Följande exempel använder tabellen Perf
med anpassade prestandadata.
Fråga | beskrivning |
---|---|
Perf |
Alla prestandadata |
Perf | where Computer == "MyComputer" |
Alla prestandadata från en viss dator |
Perf | where CounterName == "Current Disk Queue Length" |
Alla prestandadata för en viss räknare |
Perf | where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AVGCPU = avg(CounterValue) by Computer |
Genomsnittlig CPU-användning på alla datorer |
Perf | where CounterName == "% Processor Time" | summarize AggregatedValue = max(CounterValue) by Computer |
Maximal cpu-användning på alla datorer |
Perf | where ObjectName == "LogicalDisk" and CounterName == "Current Disk Queue Length" and Computer == "MyComputerName" | summarize AggregatedValue = avg(CounterValue) by InstanceName |
Genomsnittlig längd på aktuell diskkö för alla instanser av en viss dator |
Perf | where CounterName == "Disk Transfers/sec" | summarize AggregatedValue = percentile(CounterValue, 95) by Computer |
95:e percentilen av disköverföringar per sekund på alla datorer |
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1h), Computer |
Genomsnittlig processoranvändning per timme på alla datorer |
Perf | where Computer == "MyComputer" and CounterName startswith_cs "%" and InstanceName == "_Total" | summarize AggregatedValue = percentile(CounterValue, 70) by bin(TimeGenerated, 1h), CounterName |
Timvis 70 percentil av varje % procenträknare för en viss dator |
Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" and Computer == "MyComputer" | summarize ["min(CounterValue)"] = min(CounterValue), ["avg(CounterValue)"] = avg(CounterValue), ["percentile75(CounterValue)"] = percentile(CounterValue, 75), ["max(CounterValue)"] = max(CounterValue) by bin(TimeGenerated, 1h), Computer |
Timgenomsnitt, minsta, högsta och 75-percentil cpu-användning för en viss dator |
Perf | where ObjectName == "MSSQL$INST2:Databases" and InstanceName == "master" |
Alla prestandadata från databasprestandaobjektet för huvuddatabasen från den namngivna SQL Server-instansen INST2. |
Perf | where TimeGenerated >ago(5m) | where ObjectName == "Process" and InstanceName != "_Total" and InstanceName != "Idle" | where CounterName == "% Processor Time" | summarize cpuVal=avg(CounterValue) by Computer,InstanceName | join (Perf| where TimeGenerated >ago(5m)| where ObjectName == "Process" and CounterName == "ID Process" | summarize arg_max(TimeGenerated,*) by ProcID=CounterValue ) on Computer,InstanceName | sort by TimeGenerated desc | summarize AvgCPU = avg(cpuVal) by InstanceName,ProcID |
Medelvärde av CPU under de senaste 5 minuter för varje process-ID. |
Samla in textloggar
Vissa program skriver händelser som skrivits till en textlogg som lagras på den virtuella datorn. Skapa en anpassad tabell och DCR för att samla in dessa data. Du definierar platsen för textloggen, dess detaljerade konfiguration och schemat för den anpassade tabellen. Det finns en kostnad för inmatning och kvarhållning av dessa data på arbetsytan.
Exempelloggfrågor
Kolumnnamnen som används här är endast exempel. Kolumnnamnen för din logg kommer troligen att vara olika.
Fråga | beskrivning |
---|---|
MyApp_CL | summarize count() by code |
Räkna antalet händelser efter kod. |
MyApp_CL | where status == "Error" | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m) |
Skapa en aviseringsregel för alla felhändelser. |
Samla in IIS-loggar
IIS som körs på Windows-datorer skriver loggar till en textfil. Konfigurera IIS-logginsamling med hjälp av Samla in IIS-loggar med Azure Monitor Agent. Det finns en kostnad för inmatning och kvarhållning av dessa data på arbetsytan.
Poster från IIS-loggen lagras i W3CIISLog-tabellen på Log Analytics-arbetsytan. Det finns en kostnad för inmatning och kvarhållning av dessa data på arbetsytan.
Exempelloggfrågor
Fråga | beskrivning |
---|---|
W3CIISLog | where csHost=="www.contoso.com" | summarize count() by csUriStem |
Räkna IIS-loggposterna efter URL för värden www.contoso.com. |
W3CIISLog | summarize sum(csBytes) by Computer |
Granska de totala byte som tas emot av varje IIS-dator. |
Övervaka en tjänst eller daemon
Om du vill övervaka status för en Windows-tjänst eller Linux-daemon aktiverar du Ändringsspårning- och inventeringslösningen i Azure Automation.
Azure Monitor har ingen egen möjlighet att övervaka statusen för en tjänst eller daemon. Det finns några möjliga metoder att använda, till exempel att söka efter händelser i Windows-händelseloggen, men den här metoden är otillförlitlig. Du kan också leta efter den process som är associerad med tjänsten som körs på datorn från VMProcess-tabellen som fylls i av VM-insikter. Den här tabellen uppdateras bara varje timme, vilket vanligtvis inte räcker om du vill använda dessa data för aviseringar.
Kommentar
Lösningen Ändringsspårning och analys skiljer sig från funktionen Ändringsanalys i VM-insikter. Den här funktionen är i offentlig förhandsversion och ingår ännu inte i det här scenariot.
Olika alternativ för att aktivera Ändringsspårning lösning på dina virtuella datorer finns i Aktivera Ändringsspårning och inventering. Den här lösningen innehåller metoder för att konfigurera virtuella datorer i stor skala. Du måste skapa ett Azure Automation-konto för att stödja lösningen.
När du aktiverar Ändringsspårning och inventering skapas två nya tabeller på Log Analytics-arbetsytan. Använd dessa tabeller för loggfrågor och aviseringsregler för loggsökning.
Register | beskrivning |
---|---|
ConfigurationChange | Ändringar i gästkonfigurationsdata |
ConfigurationData | Senast rapporterat tillstånd för gästkonfigurationsdata |
Exempelloggfrågor
Visa en lista över alla tjänster och daemoner som nyligen har startats.
ConfigurationChange | where ConfigChangeType == "Daemons" or ConfigChangeType == "WindowsServices" | where SvcState == "Running" | sort by Computer, SvcName
Avisering när en specifik tjänst stoppas. Använd den här frågan i en aviseringsregel för loggsökning.
ConfigurationData | where SvcName == "W3SVC" | where SvcState == "Stopped" | where ConfigDataType == "WindowsServices" | where SvcStartupType == "Auto" | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
Avisering när en av en uppsättning tjänster stoppas. Använd den här frågan i en aviseringsregel för loggsökning.
let services = dynamic(["omskd","cshost","schedule","wuauserv","heathservice","efs","wsusservice","SrmSvc","CertSvc","wmsvc","vpxd","winmgmt","netman","smsexec","w3svc","sms_site_vss_writer","ccmexe","spooler","eventsystem","netlogon","kdc","ntds","lsmserv","gpsvc","dns","dfsr","dfs","dhcp","DNSCache","dmserver","messenger","w32time","plugplay","rpcss","lanmanserver","lmhosts","eventlog","lanmanworkstation","wnirm","mpssvc","dhcpserver","VSS","ClusSvc","MSExchangeTransport","MSExchangeIS"]); ConfigurationData | where ConfigDataType == "WindowsServices" | where SvcStartupType == "Auto" | where SvcName in (services) | where SvcState == "Stopped" | project TimeGenerated, Computer, SvcName, SvcDisplayName, SvcState | summarize AggregatedValue = count() by Computer, SvcName, SvcDisplayName, SvcState, bin(TimeGenerated, 15m)
Övervaka en port
Portövervakning verifierar att en dator lyssnar på en viss port. Två potentiella strategier för portövervakning beskrivs här.
Beroendeagenttabeller
Om du använder VM-insikter med samlingen Processer och beroenden aktiverad kan du använda VMConnection och VMBoundPort för att analysera anslutningar och portar på datorn. Tabellen VMBoundPort
uppdateras varje minut med varje process som körs på datorn och porten som den lyssnar på. Du kan skapa en loggsökningsavisering som liknar den saknade pulsslagsaviseringen för att hitta processer som har stoppats eller för att varna när datorn inte lyssnar på en viss port.
Granska antalet öppna portar på dina virtuella datorer för att bedöma vilka virtuella datorer som har konfigurations- och säkerhetsrisker.
VMBoundPort | where Ip != "127.0.0.1" | summarize by Computer, Machine, Port, Protocol | summarize OpenPorts=count() by Computer, Machine | order by OpenPorts desc
Lista de bundna portarna på dina virtuella datorer för att bedöma vilka virtuella datorer som har konfigurations- och säkerhetsrisker.
VMBoundPort | distinct Computer, Port, ProcessName
Analysera nätverksaktivitet efter port för att avgöra hur ditt program eller din tjänst har konfigurerats.
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
Granska skickade och mottagna bytetrender för dina virtuella datorer.
VMConnection | summarize sum(BytesSent), sum(BytesReceived) by bin(TimeGenerated,1hr), Computer | order by Computer desc | render timechart
Använd anslutningsfel över tid för att avgöra om felfrekvensen är stabil eller ändras.
VMConnection | where Computer == <replace this with a computer name, e.g. 'acme-demo'> | extend bythehour = datetime_part("hour", TimeGenerated) | project bythehour, LinksFailed | summarize failCount = count() by bythehour | sort by bythehour asc | render timechart
Länka statustrender för att analysera beteendet och anslutningsstatusen för en dator.
VMConnection | where Computer == <replace this with a computer name, e.g. 'acme-demo'> | summarize dcount(LinksEstablished), dcount(LinksLive), dcount(LinksFailed), dcount(LinksTerminated) by bin(TimeGenerated, 1h) | render timechart
Anslutningshanteraren
Funktionen Anslutningsövervakare i Network Watcher används för att testa anslutningar till en port på en virtuell dator. Ett test verifierar att datorn lyssnar på porten och att den är tillgänglig i nätverket.
Anslutningshanteraren kräver Network Watcher-tillägget på klientdatorn som initierar testet. Den behöver inte installeras på den dator som testas. Mer information finns i Självstudie: Övervaka nätverkskommunikation med hjälp av Azure Portal.
Det finns en extra kostnad för Anslutningshanteraren. Mer information finns i Priser för Network Watcher.
Köra en process på en lokal dator
Övervakning av vissa arbetsbelastningar kräver en lokal process. Ett exempel är ett PowerShell-skript som körs på den lokala datorn för att ansluta till ett program och samla in eller bearbeta data. Du kan använda Hybrid Runbook Worker, som är en del av Azure Automation, för att köra ett lokalt PowerShell-skript. Det finns ingen direkt kostnad för Hybrid Runbook Worker, men det finns en kostnad för varje runbook som används.
Runbooken kan komma åt alla resurser på den lokala datorn för att samla in nödvändiga data. Det kan inte skicka data direkt till Azure Monitor eller skapa en avisering. Om du vill skapa en avisering måste runbooken skriva en post till en anpassad logg. Konfigurera sedan loggen som ska samlas in av Azure Monitor. Skapa en aviseringsregel för loggsökning som utlöses på loggposten.