Övervaka virtuella datorer med Azure Monitor: Aviseringar

Den här artikeln är en del av guiden Övervaka virtuella datorer och deras arbetsbelastningar i Azure Monitor. Aviseringar i Azure Monitor meddelar dig proaktivt om intressanta data och mönster i dina övervakningsdata. Det finns inga förkonfigurerade aviseringsregler för virtuella datorer, men du kan skapa dina egna baserat på data som du samlar in från Azure Monitor Agent. Den här artikeln beskriver aviseringskoncept som är specifika för virtuella datorer och vanliga aviseringsregler som används av andra Azure Monitor-kunder.

Det här scenariot beskriver hur du implementerar fullständig övervakning av din azure- och hybridmiljö för virtuella datorer:

Viktigt!

De flesta aviseringsregler har en kostnad som är beroende av typen av regel, hur många dimensioner den innehåller och hur ofta den körs. Innan du skapar några aviseringsregler kan du läsa avsnittet Aviseringsregler i Prissättning för Azure Monitor.

Datainsamling

Aviseringsregler inspekterar data som redan har samlats in i Azure Monitor. Du måste se till att data samlas in för ett visst scenario innan du kan skapa en aviseringsregel. Se Övervaka virtuella datorer med Azure Monitor: Samla in data för vägledning om hur du konfigurerar datainsamling för olika scenarier, inklusive alla aviseringsregler i den här artikeln.

Azure Monitor innehåller en uppsättning rekommenderade aviseringsregler som du snabbt kan aktivera för valfri virtuell Azure-dator. Dessa regler är en bra utgångspunkt för grundläggande övervakning. Men ensamt ger de inte tillräcklig avisering för de flesta företagsimplementeringar av följande skäl:

  • Rekommenderade aviseringar gäller endast för virtuella Azure-datorer och inte hybriddatorer.
  • Rekommenderade aviseringar omfattar endast värdmått och inte gästmått eller loggar. Dessa mått är användbara för att övervaka hälsotillståndet för själva datorn. Men de ger dig minimal insyn i de arbetsbelastningar och program som körs på datorn.
  • Rekommenderade aviseringar är associerade med enskilda datorer som skapar ett överdrivet antal aviseringsregler. I stället för att förlita sig på den här metoden för varje dator kan du läsa Skala aviseringsregler för strategier för att använda ett minimalt antal aviseringsregler för flera datorer.

Aviseringstyper

De vanligaste typerna av aviseringsregler i Azure Monitor är måttaviseringar och loggsökningsaviseringar. Vilken typ av aviseringsregel du skapar för ett visst scenario beror på var de data som du varnar om finns.

Du kan ha fall där data för ett visst aviseringsscenario är tillgängliga i både mått och loggar. I så fall måste du bestämma vilken regeltyp som ska användas. Du kan också ha flexibilitet i hur du samlar in vissa data och låter ditt beslut av aviseringsregeltyp driva ditt beslut för datainsamlingsmetod.

Måttaviseringar

Vanliga användningsområden för måttaviseringar:

  • Avisering när ett visst mått överskrider ett tröskelvärde. Ett exempel är när processorn för en dator körs högt.

Datakällor för måttaviseringar:

  • Värdmått för virtuella Azure-datorer som samlas in automatiskt
  • Mått som samlas in av Azure Monitor Agent från gästoperativsystemet

Aviseringar för loggsökning

Vanliga användningsområden för loggsökningsaviseringar:

  • Avisering när en viss händelse eller ett mönster för händelser från Windows-händelseloggen eller Syslog hittas. Dessa aviseringsregler mäter vanligtvis tabellrader som returneras från frågan.
  • Avisering baserat på en beräkning av numeriska data över flera datorer. Dessa aviseringsregler mäter vanligtvis beräkningen av en numerisk kolumn i frågeresultatet.

Datakällor för loggsökningsaviseringar:

  • Alla data som samlas in på en Log Analytics-arbetsyta

Aviseringsregler för skalning

Eftersom du kanske har många virtuella datorer som kräver samma övervakning behöver du inte skapa enskilda aviseringsregler för var och en. Du vill också se till att det finns olika strategier för att begränsa antalet aviseringsregler som du behöver hantera, beroende på typen av regel. Var och en av dessa strategier är beroende av att förstå målresursen för aviseringsregeln.

Måttaviseringsregler

Virtuella datorer stöder flera aviseringsregler för resursmått enligt beskrivningen i Övervaka flera resurser. Med den här funktionen kan du skapa en enda måttaviseringsregel som gäller för alla virtuella datorer i en resursgrupp eller prenumeration inom samma region.

Börja med de rekommenderade aviseringarna och skapa en motsvarande regel för var och en med hjälp av din prenumeration eller en resursgrupp som målresurs. Du måste skapa dubblettregler för varje region om du har datorer i flera regioner.

När du identifierar krav för fler måttaviseringsregler följer du samma strategi med hjälp av en prenumeration eller resursgrupp som målresurs för att:

  • Minimera antalet aviseringsregler som du behöver hantera.
  • Se till att de tillämpas automatiskt på alla nya datorer.

Varningsregler för loggsökning

Om du anger målresursen för en loggsökningsaviseringsregel till en specifik dator begränsas frågorna till data som är associerade med den datorn, vilket ger dig enskilda aviseringar för den. Det här arrangemanget kräver en separat aviseringsregel för varje dator.

Om du anger målresursen för en loggsökningsaviseringsregel till en Log Analytics-arbetsyta har du åtkomst till alla data på den arbetsytan. Därför kan du avisera om data från alla datorer i arbetsgruppen med en enda regel. Det här arrangemanget ger dig möjlighet att skapa en enda avisering för alla datorer. Du kan sedan använda dimensioner för att skapa en separat avisering för varje dator.

Du kanske till exempel vill avisera när en felhändelse skapas i Windows-händelseloggen av vilken dator som helst. Du måste först skapa en regel för datainsamling enligt beskrivningen i Samla in händelser och prestandaräknare från virtuella datorer med Azure Monitor Agent för att skicka dessa händelser till Event tabellen på Log Analytics-arbetsytan. Sedan skapar du en aviseringsregel som frågar den här tabellen med hjälp av arbetsytan som målresurs och villkoret som visas i följande bild.

Frågan returnerar en post för eventuella felmeddelanden på alla datorer. Använd alternativet Dela efter dimensioner och ange _ResourceId för att instruera regeln att skapa en avisering för varje dator om flera datorer returneras i resultatet.

Screenshot that shows a new log search alert rule with split by dimensions.

Dimensioner

Beroende på vilken information du vill inkludera i aviseringen kan du behöva dela med hjälp av olika dimensioner. I det här fallet kontrollerar du att de nödvändiga dimensionerna projiceras i frågan med hjälp av projektet eller utöka operatorn. Ange kolumnfältet Resurs-ID till Dela inte och inkludera alla meningsfulla dimensioner i listan. Se till att Inkludera alla framtida värden är markerat så att alla värden som returneras från frågan inkluderas.

Screenshot that shows a new log search alert rule with split by multiple dimensions.

Dynamiska tröskelvärden

En annan fördel med att använda aviseringsregler för loggsökning är möjligheten att inkludera komplex logik i frågan för att fastställa tröskelvärdet. Du kan hårdkoda tröskelvärdet, tillämpa det på alla resurser eller beräkna det dynamiskt baserat på något fält eller beräknat värde. Tröskelvärdet tillämpas endast på resurser enligt specifika villkor. Du kan till exempel skapa en avisering baserat på tillgängligt minne, men bara för datorer med en viss mängd totalt minne.

Vanliga aviseringsregler

I följande avsnitt visas vanliga aviseringsregler för virtuella datorer i Azure Monitor. Information om måttaviseringar och loggsökningsaviseringar finns för var och en. Information om vilken typ av avisering som ska användas finns i Aviseringstyper. Om du inte känner till processen för att skapa aviseringsregler i Azure Monitor kan du läsa anvisningarna för att skapa en ny aviseringsregel.

Kommentar

Informationen för loggsökningsaviseringar som tillhandahålls här använder data som samlas in med hjälp av VM Insights, som tillhandahåller en uppsättning vanliga prestandaräknare för klientoperativsystemet. Det här namnet är oberoende av operativsystemtypen.

Datorn är inte tillgänglig

Ett av de vanligaste övervakningskraven för en virtuell dator är att skapa en avisering om den slutar köras. Den bästa metoden är att skapa en måttaviseringsregel i Azure Monitor med hjälp av måttet för VM-tillgänglighet, som för närvarande finns i offentlig förhandsversion. En genomgång av det här måttet finns i Skapa tillgänglighetsaviseringsregel för en virtuell Azure-dator.

Som beskrivs i Aviseringsregler för skalning skapar du en tillgänglighetsaviseringsregel med hjälp av en prenumeration eller resursgrupp som målresurs. Regeln gäller för flera virtuella datorer, inklusive nya datorer som du skapar efter aviseringsregeln.

Agentens pulsslag

Agentens pulsslag skiljer sig något från aviseringen om att datorn inte är tillgänglig eftersom den förlitar sig på Att Azure Monitor-agenten skickar ett pulsslag. Agentens pulsslag kan varna dig om datorn körs men agenten inte svarar.

Måttaviseringsregler

Ett mått med namnet Heartbeat ingår i varje Log Analytics-arbetsyta. Varje virtuell dator som är ansluten till den arbetsytan skickar ett pulsslagsmåttvärde varje minut. Eftersom datorn är en dimension i måttet kan du utlösa en avisering när en dator inte kan skicka ett pulsslag. Ange aggregeringstypen till Antal och Tröskelvärde för att matcha utvärderingskornigheten.

Varningsregler för loggsökning

Loggsökningsaviseringar använder tabellen Pulsslag, som ska ha en pulsslagspost varje minut från varje dator.

Använd en regel med följande fråga:

Heartbeat
| summarize TimeGenerated=max(TimeGenerated) by Computer, _ResourceId
| extend Duration = datetime_diff('minute',now(),TimeGenerated)
| summarize MinutesSinceLastHeartbeat = min(Duration) by Computer, bin(TimeGenerated,5m), _ResourceId

CPU-aviseringar

I det här avsnittet beskrivs CPU-aviseringar.

Måttaviseringsregler

Mål Metric
Host Procentandel cpu (ingår i rekommenderade aviseringar)
Windows-gäst \Processorinformation(_Total)% processortid
Linux-gäst cpu/usage_active

Varningsregler för loggsökning

CPU-användning

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Processor" and Name == "UtilizationPercentage"
| summarize CPUPercentageAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Minnesaviseringar

I det här avsnittet beskrivs minnesaviseringar.

Måttaviseringsregler

Mål Metric
Host Tillgängliga minnesbyte (förhandsversion) (ingår i rekommenderade aviseringar)
Windows-gäst \Memory% Checkade byte som används
\Memory\Tillgängliga byte
Linux-gäst mem/available
mem/available_percent

Varningsregler för loggsökning

Tillgängligt minne i MB

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| summarize AvailableMemoryInMBAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId

Tillgängligt minne i procent

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Memory" and Name == "AvailableMB"
| extend TotalMemory = toreal(todynamic(Tags)["vm.azm.ms/memorySizeMB"]) | extend AvailableMemoryPercentage = (toreal(Val) / TotalMemory) * 100.0
| summarize AvailableMemoryInPercentageAverage = avg(AvailableMemoryPercentage) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Diskaviseringar

I det här avsnittet beskrivs diskaviseringar.

Måttaviseringsregler

Mål Metric
Windows-gäst \Logisk disk(_Total)% ledigt utrymme
\Logical Disk(_Total)\Free Megabytes
Linux-gäst disk/kostnadsfritt
disk/free_percent

Varningsregler för loggsökning

Logisk disk som används – alla diskar på varje dator

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Logisk disk som används – enskilda diskar

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "LogicalDisk" and Name == "FreeSpacePercentage"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize LogicalDiskSpacePercentageFreeAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

IOPS för logisk disk

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "TransfersPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskIOPSAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Datahastighet för logiska diskar

InsightsMetrics
| where Origin == "vm.azm.ms" 
| where Namespace == "LogicalDisk" and Name == "BytesPerSecond"
| extend Disk=tostring(todynamic(Tags)["vm.azm.ms/mountId"])
| summarize DiskBytesPerSecondAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, Disk 

Nätverksaviseringar

Måttaviseringsregler

Mål Metric
Host Totalt nätverk, totalt antal nätverk (ingår i rekommenderade aviseringar)
Windows-gäst \Nätverksgränssnitt\Skickade byte/s
\Logical Disk(_Total)\Free Megabytes
Linux-gäst disk/kostnadsfritt
disk/free_percent

Varningsregler för loggsökning

Mottagna nätverksgränssnitt – alla gränssnitt

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| summarize BytesReceivedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId  

Mottagna byte för nätverksgränssnitt – enskilda gränssnitt

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "ReadBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesReceievedAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Skickade byte för nätverksgränssnitt – alla gränssnitt

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId 

Skickade byte för nätverksgränssnitt – enskilda gränssnitt

InsightsMetrics
| where Origin == "vm.azm.ms"
| where Namespace == "Network" and Name == "WriteBytesPerSecond"
| extend NetworkInterface=tostring(todynamic(Tags)["vm.azm.ms/networkDeviceId"])
| summarize BytesSentAverage = avg(Val) by bin(TimeGenerated, 15m), Computer, _ResourceId, NetworkInterface 

Windows- och Linux-händelser

Följande exempel skapar en avisering när en specifik Windows-händelse skapas. Den använder en måttmätningsaviseringsregel för att skapa en separat avisering för varje dator.

  • Skapa en aviseringsregel för en specifik Windows-händelse. Det här exemplet visar en händelse i programloggen. Ange ett tröskelvärde på 0 och efterföljande överträdelser som är större än 0.

    Event 
    | where EventLog == "Application"
    | where EventID == 123 
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    
  • Skapa en aviseringsregel för Syslog-händelser med en viss allvarlighetsgrad. I följande exempel visas felauktoriseringshändelser. Ange ett tröskelvärde på 0 och efterföljande överträdelser som är större än 0.

    Syslog
    | where Facility == "auth"
    | where SeverityLevel == "err"
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    

Anpassade prestandaräknare

  • Skapa en avisering om det maximala värdet för en räknare.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = max(CounterValue) by Computer
    
  • Skapa en avisering för genomsnittsvärdet för en räknare.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = avg(CounterValue) by Computer
    

Nästa steg

Analysera övervakningsdata som samlats in för virtuella datorer