Virtuális gépek monitorozása az Azure Monitorral: Riasztások

Ez a cikk a virtuális gépek és számítási feladataik monitorozása az Azure Monitorban című útmutató része. Az Azure Monitor riasztásai proaktív módon értesítik Önt a figyelési adatok érdekes adatairól és mintáiról. A virtuális gépekre nincsenek előre konfigurált riasztási szabályok, de az Azure Monitor Agentből gyűjtött adatok alapján létrehozhatja a sajátját. Ez a cikk a virtuális gépekre vonatkozó riasztási fogalmakat és a más Azure Monitor-ügyfelek által használt gyakori riasztási szabályokat ismerteti.

Ez a forgatókönyv bemutatja, hogyan implementálhatja az Azure- és hibrid virtuálisgép-környezet teljes monitorozását:

Fontos

A legtöbb riasztási szabály költsége a szabály típusától, a benne lévő dimenzióktól és a futtatás gyakoriságától függ. Mielőtt riasztási szabályokat hoz létre, tekintse meg az Azure Monitor díjszabásának Riasztási szabályok szakaszát.

Adatgyűjtés

A riasztási szabályok ellenőrzik az Azure Monitorban már összegyűjtött adatokat. Mielőtt riasztási szabályt hoz létre, gondoskodnia kell arról, hogy egy adott forgatókönyv adatai legyenek összegyűjtve. Lásd: Virtuális gépek monitorozása az Azure Monitorral: Adatgyűjtés a különböző forgatókönyvek adatgyűjtésének konfigurálásához, beleértve a jelen cikkben szereplő összes riasztási szabályt.

Az Azure Monitor olyan ajánlott riasztási szabályokat biztosít, amelyeket gyorsan engedélyezhet bármely Azure-beli virtuális gépen. Ezek a szabályok kiváló kiindulópontot jelentenek az alapszintű monitorozáshoz. Egyedül azonban a legtöbb vállalati implementációhoz nem biztosítanak elegendő riasztást a következő okokból:

  • Az ajánlott riasztások csak az Azure-beli virtuális gépekre vonatkoznak, a hibrid gépekre nem.
  • Az ajánlott riasztások csak gazdagépmetrikákat tartalmaznak, vendégmetrikákat és naplókat nem. Ezek a metrikák hasznosak a gép állapotának figyeléséhez. Ezek azonban minimális betekintést nyújtanak a gépen futó számítási feladatokba és alkalmazásokba.
  • Az ajánlott riasztások olyan gépekhez vannak társítva, amelyek túlzott számú riasztási szabályt hoznak létre. Ahelyett, hogy minden gép esetében erre a módszerre támaszkodik, tekintse meg a riasztási szabályok méretezését a több gépre vonatkozó minimális számú riasztási szabály használatára vonatkozó stratégiákhoz.

Riasztástípusok

Az Azure Monitor leggyakoribb riasztási típusai a metrikariasztások és a naplókeresési riasztások. Az adott forgatókönyvhöz létrehozott riasztási szabály típusa attól függ, hogy a riasztásban szereplő adatok hol találhatók.

Előfordulhat, hogy egy adott riasztási forgatókönyv adatai a metrikákban és a naplókban is elérhetők. Ha igen, meg kell határoznia, hogy melyik szabálytípust használja. Emellett rugalmasan gyűjthet bizonyos adatokat, és hagyhatja, hogy a riasztási szabály típusának döntése döntsön az adatgyűjtési módszerről.

Metrikariasztások

A metrikariasztások gyakori felhasználási módjai:

  • Riasztás, ha egy adott metrika túllép egy küszöbértéket. Ilyen például, ha egy gép processzora magasan fut.

Adatforrások metrikariasztásokhoz:

  • Az Azure-beli virtuális gépek gazdagépmetrikái, amelyeket automatikusan gyűjtünk
  • Az Azure Monitor Agent által a vendég operációs rendszerből gyűjtött metrikák

Naplókeresési riasztások

A naplókeresési riasztások gyakori felhasználási módjai:

  • Riasztás, ha egy adott esemény vagy eseményminta található a Windows-eseménynaplóból vagy a Syslogból. Ezek a riasztási szabályok általában a lekérdezésből visszaadott táblasorokat mérik.
  • Riasztás több gép numerikus adatainak kiszámítása alapján. Ezek a riasztási szabályok általában egy numerikus oszlop számítását mérik a lekérdezés eredményeiben.

A naplókeresési riasztások adatforrásai:

  • A Log Analytics-munkaterületen gyűjtött összes adat

Riasztási szabályok skálázása

Mivel sok olyan virtuális gépe lehet, amely ugyanazt a monitorozást igényli, nem kell külön riasztási szabályokat létrehoznia mindegyikhez. Azt is meg szeretné győződni, hogy a szabály típusától függően különböző stratégiák vannak a kezelendő riasztási szabályok számának korlátozására. Ezen stratégiák mindegyike a riasztási szabály célerőforrásának megértésétől függ.

Metrika riasztási szabályai

A virtuális gépek több erőforrásmetrika riasztási szabályát támogatják a Több erőforrás monitorozása című cikkben leírtak szerint. Ezzel a képességgel egyetlen metrikariasztási szabályt hozhat létre, amely egy erőforráscsoportban vagy előfizetésben lévő összes virtuális gépre érvényes ugyanabban a régióban.

Kezdje az ajánlott riasztásokkal , és hozzon létre egy megfelelő szabályt mindegyikhez úgy, hogy az előfizetést vagy egy erőforráscsoportot használja célerőforrásként. Ismétlődő szabályokat kell létrehoznia minden régióhoz, ha több régióban vannak gépek.

A több metrikariasztási szabály követelményeinek azonosításakor kövesse ezt a stratégiát úgy, hogy egy előfizetést vagy erőforráscsoportot használ a célerőforrással:

  • Minimalizálja a kezelni kívánt riasztási szabályok számát.
  • Győződjön meg arról, hogy automatikusan alkalmazva vannak az új gépekre.

Naplókeresési riasztási szabályok

Ha egy naplókeresési riasztási szabály célerőforrását egy adott gépre állítja be, a lekérdezések a géphez társított adatokra korlátozódnak, ami egyedi riasztásokat ad hozzá. Ehhez az elrendezéshez minden géphez külön riasztási szabály szükséges.

Ha a naplókeresési riasztási szabály célerőforrását Log Analytics-munkaterületre állítja, akkor az adott munkaterület összes adatához hozzáférhet. Ezért egyetlen szabmánnyal riasztást készíthet a munkacsoport összes gépéről származó adatokról. Ezzel az elrendezéssel egyetlen riasztást hozhat létre az összes géphez. Ezután dimenziókkal külön riasztást hozhat létre az egyes gépekhez.

Előfordulhat például, hogy riasztást szeretne kapni, ha egy hibaeseményt bármely gép létrehoz a Windows eseménynaplójában. Először létre kell hoznia egy adatgyűjtési szabályt az Események és teljesítményszámlálók összegyűjtése virtuális gépekről az Azure Monitor Agent használatával című cikkben leírtak szerint, hogy ezeket az eseményeket a Event Log Analytics-munkaterület táblájába küldje. Ezután létrehoz egy riasztási szabályt, amely lekérdezi ezt a táblát úgy, hogy a munkaterületet használja célerőforrásként, és az alábbi képen látható feltételt.

A lekérdezés egy rekordot ad vissza bármely gépen megjelenő hibaüzenetekhez. Használja a Dimenziók szerinti felosztás lehetőséget, és adja meg a _ResourceId , hogy utasítsa a szabályt, hogy hozzon létre riasztást minden géphez, ha több gépet adnak vissza az eredményekben.

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

Dimenziók

A riasztásban szerepeltetni kívánt információktól függően előfordulhat, hogy különböző dimenziók használatával kell felosztania. Ebben az esetben győződjön meg arról, hogy a szükséges dimenziók a projekt vagy a kiterjesztő operátor használatával jelennek meg a lekérdezésben. Állítsa az Erőforrás-azonosító oszlop mezőjét úgy, hogy ne legyen felosztva , és vegye fel az összes fontos dimenziót a listában. Győződjön meg arról, hogy az Összes jövőbeli érték belefoglalása beállítás ki van választva, hogy a lekérdezésből visszaadott érték szerepeljen benne.

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

Dinamikus küszöbértékek

A naplókeresési riasztási szabályok használatának másik előnye, hogy összetett logikát is belefoglalhat a lekérdezésbe a küszöbérték meghatározásához. A küszöbértéket kódolhatja, az összes erőforrásra alkalmazhatja, vagy dinamikusan kiszámíthatja egy mező vagy számított érték alapján. A küszöbérték csak meghatározott feltételek szerint lesz alkalmazva az erőforrásokra. Létrehozhat például egy riasztást a rendelkezésre álló memória alapján, de csak bizonyos mennyiségű teljes memóriával rendelkező gépek esetén.

Gyakori riasztási szabályok

Az alábbi szakasz az Azure Monitorban lévő virtuális gépek általános riasztási szabályait sorolja fel. A metrikariasztások és a naplókeresési riasztások részletei mindegyikhez meg vannak adva. A használni kívánt riasztás típusával kapcsolatos útmutatásért tekintse meg a Riasztástípusok című témakört. Ha nem ismeri az Azure Monitorban a riasztási szabályok létrehozásának folyamatát, tekintse meg az új riasztási szabály létrehozásához szükséges utasításokat.

Feljegyzés

Az itt megadott naplókeresési riasztások részletei a virtuálisgép-Elemzések által gyűjtött adatokat használják, amely az ügyfél operációs rendszerének általános teljesítményszámlálóit biztosítja. Ez a név független az operációs rendszer típusától.

A gép nem érhető el

A virtuális gépek egyik leggyakoribb monitorozási követelménye, hogy riasztást hozzon létre, ha az nem fut. A legjobb módszer egy metrikariasztási szabály létrehozása az Azure Monitorban a virtuális gép rendelkezésre állási metrikájának használatával, amely jelenleg nyilvános előzetes verzióban érhető el. A metrikáról további információt az Azure-beli virtuális gépek rendelkezésre állási riasztási szabályának létrehozása című témakörben talál.

A skálázási riasztási szabályok szerint hozzon létre egy rendelkezésre állási riasztási szabályt úgy, hogy egy előfizetést vagy erőforráscsoportot használ célerőforrásként. A szabály több virtuális gépre vonatkozik, beleértve a riasztási szabály után létrehozott új gépeket is.

Ügynök szívverése

Az ügynök szívverése kissé eltér a gép által nem elérhető riasztástól, mivel az Azure Monitor Agentre támaszkodik a szívverés küldéséhez. Az ügynök szívverése riasztást adhat, ha a gép fut, de az ügynök nem válaszol.

Metrika riasztási szabályai

Minden Log Analytics-munkaterület tartalmaz egy Szívverés nevű metrikát. A munkaterülethez csatlakoztatott virtuális gépek percenként szívverési metrikaértéket küldenek. Mivel a számítógép a metrika dimenziója, riasztást küldhet, ha egy számítógép nem küld szívverést. Az aggregáció típusátállítsa a Darabszám és a Küszöbérték értékre a kiértékelési részletességnek megfelelő értékre.

Naplókeresési riasztási szabályok

A naplókeresési riasztások a Szívverés táblát használják, amelynek percenként szívverési rekordot kell létrehoznia az egyes gépekről.

Használjon egy szabályt a következő lekérdezéssel:

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-riasztások

Ez a szakasz a CPU-riasztásokat ismerteti.

Metrika riasztási szabályai

Cél Metrika
Gazdagép Százalékos processzorhasználat (az ajánlott riasztásokban szerepel)
Windows-vendég \Processzoradatok(_Total)% processzoridő
Linux-vendég processzor/usage_active

Naplókeresési riasztási szabályok

CPU-kihasználtság

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

Memóriariasztások

Ez a szakasz a memóriariasztásokat ismerteti.

Metrika riasztási szabályai

Cél Metrika
Gazdagép Rendelkezésre álló memória bájtok (előzetes verzió) (az ajánlott riasztásokban szerepel)
Windows-vendég \Memory% Committed Bytes in use
\Memory\Available Bytes
Linux-vendég mem/available
mem/available_percent

Naplókeresési riasztási szabályok

Rendelkezésre álló memória MB-ban

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

Rendelkezésre álló memória százalékban

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  

Lemezriasztások

Ez a szakasz a lemezriasztásokat ismerteti.

Metrika riasztási szabályai

Cél Metrika
Windows-vendég \Logikai lemez(_Total)% szabad terület
\Logikai lemez(_Total)\Szabad megabájt
Linux-vendég lemez/szabad
lemez/free_percent

Naplókeresési riasztási szabályok

Használt logikai lemez – az egyes számítógépek összes lemeze

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

Használt logikai lemez – különálló lemezek

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 

Logikai lemez IOPS

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 

Logikai lemez adatsebessége

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 

Hálózati riasztások

Metrika riasztási szabályai

Cél Metrika
Gazdagép Network In Total, Network Out Total (az ajánlott riasztásokban szerepel)
Windows-vendég \Hálózati adapter\Másodpercenként küldött bájtok
\Logikai lemez(_Total)\Szabad megabájt
Linux-vendég lemez/szabad
lemez/free_percent

Naplókeresési riasztási szabályok

Fogadott hálózati adapterek bájtjai – minden adapter

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

Fogadott hálózati adapterek bájtjai – egyedi adapterek

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 

Elküldött hálózati adapterek bájtjai – minden adapter

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

Küldött hálózati adapterek bájtjai – egyedi adapterek

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- és Linux-események

Az alábbi minta riasztást hoz létre egy adott Windows-esemény létrehozásakor. Metrikamérési riasztási szabályt használ, hogy minden számítógéphez külön riasztást hozzon létre.

  • Riasztási szabály létrehozása egy adott Windows-eseményen. Ez a példa egy eseményt mutat be az alkalmazásnaplóban. Adjon meg 0-nál nagyobb küszöbértéket és 0-nál nagyobb egymást követő behatolásokat.

    Event 
    | where EventLog == "Application"
    | where EventID == 123 
    | summarize NumberOfEvents = count() by Computer, bin(TimeGenerated, 15m)
    
  • Hozzon létre egy riasztási szabályt egy adott súlyossággal rendelkező Syslog-eseményekhez. Az alábbi példa a hibaengedélyezési eseményeket mutatja be. Adjon meg 0-nál nagyobb küszöbértéket és 0-nál nagyobb egymást követő behatolásokat.

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

Egyéni teljesítményszámlálók

  • Hozzon létre egy riasztást a számláló maximális értékéről.

    Perf 
    | where CounterName == "My Counter" 
    | summarize AggregatedValue = max(CounterValue) by Computer
    
  • Hozzon létre egy riasztást egy számláló átlagos értékéről.

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

Következő lépések

A virtuális gépekhez gyűjtött monitorozási adatok elemzése