Az Application Health bővítmény használata virtuálisgép-méretezési csoportokkal
Az alkalmazás állapotának monitorozása fontos jelzés az üzembe helyezés kezeléséhez és frissítéséhez. Az Azure-beli virtuálisgép-méretezési csoportok támogatják a működés közbeni frissítéseket , beleértve az automatikus operációsrendszer-rendszerkép-frissítéseket és az automatikus virtuálisgép-vendégjavításokat, amelyek az egyes példányok állapotfigyelésére támaszkodnak az üzemelő példányok frissítéséhez. Az Application Health Extension használatával figyelheti a méretezési csoportban lévő egyes példányok alkalmazásállapotát, és automatikus példányjavításokkal elvégezheti a példányjavításokat.
Ez a cikk azt ismerteti, hogyan használhatja az Application Health-bővítmény két típusát, a bináris állapotállapotokat vagy a Rich Health-állapotokat a virtuálisgép-méretezési csoportokban üzembe helyezett alkalmazások állapotának figyelésére.
Előfeltételek
Ez a cikk a következőket feltételezi:
- Azure-beli virtuálisgép-bővítmények
- Virtuálisgép-méretezési csoportok módosítása
Figyelem
Az Application Health Extension konzisztens mintavételi választ vár a konfigurált porton tcp
vagy a kérelem elérési útjánhttp/https
, hogy a virtuális gép kifogástalan állapotúként legyen megjelölve. Ha nem fut alkalmazás a virtuális gépen, vagy nem tud mintavételi választ konfigurálni, a virtuális gép nem kifogástalan állapotúként (bináris állapotállapotok) vagy ismeretlenként (Rich Health-állapotok) jelenik meg.
Megjegyzés:
Egy virtuálisgép-méretezési csoporthoz csak egy állapotfigyelési forrás használható, alkalmazásállapot-bővítményhez vagy állapotadat-mintavételhez. Ha mindkét beállítás engedélyezve van, el kell távolítania egyet, mielőtt olyan vezénylési szolgáltatásokat használ, mint a Példányjavítások vagy az automatikus operációsrendszer-frissítések.
Mikor érdemes használni az Application Health bővítményt?
Az Alkalmazásállapot-bővítmény egy virtuálisgép-méretezési csoport példányán belül van üzembe helyezve, és a méretezési csoport példányán belülről jelenti az alkalmazás állapotát. A bővítmény egy helyi alkalmazásvégponton szondáz, és az alkalmazástól kapott TCP/HTTP(S) válaszok alapján frissíti az állapotot. Ezt az állapotot az Azure használja a nem megfelelő állapotú példányok javításának kezdeményezésére és annak megállapítására, hogy egy példány jogosult-e a frissítési műveletekre.
A bővítmény állapotjelentést készít egy virtuális gépről, és olyan helyzetekben használható, amikor egy külső mintavétel, például az Azure Load Balancer állapotmintái nem használhatók.
Bináris és Rich Health-állapotok
Az Alkalmazásállapot-bővítmények két lehetőség közül választhatnak: Bináris állapotállapotok és Rich Health-állapotok. Az alábbi táblázat a két lehetőség közötti néhány fő különbséget emeli ki. Az általános javaslatokért tekintse meg a szakasz végét.
Funkciók | Bináris állapotállapotok | Rich Health States |
---|---|---|
Elérhető állapotállapotok | Két elérhető állapot: Kifogástalan, Nem kifogástalan | Négy elérhető állapot: Kifogástalan, Nem kifogástalan, Inicializálás, Ismeretlen1 |
Állapotjelek küldése | Az állapotjelek HTTP-/HTTPS-válaszkódokon vagy TCP-kapcsolatokon keresztül érkeznek. | A HTTP/HTTPS protokoll állapotjeleit a mintavétel válaszkódján és választörzsén keresztül küldi el a rendszer. A TCP protokollon keresztüli állapotjelek változatlanok maradnak a bináris állapotállapotoktól. |
Nem kifogástalan példányok azonosítása | A példányok automatikusan kifogástalan állapotba kerülnek, ha az alkalmazás nem fogad kifogástalan jelzést. A nem megfelelő állapotú példányok jelezhetik a bővítménykonfigurációval (például elérhetetlen végponttal) vagy az alkalmazással kapcsolatos problémát (például nem 200-ra vonatkozó állapotkódot). | A példányok csak akkor kerülnek kifogástalan állapotba, ha az alkalmazás nem megfelelő mintavételi választ ad ki. A felhasználók feladata, hogy egyéni logikát implementáljanak a nem megfelelő alkalmazásokkalrendelkező példányok azonosítására és megjelölésére 2. A helytelen bővítménybeállításokkal (például elérhetetlen végponttal) vagy érvénytelen állapotadat-mintavételi válaszokkal rendelkező példányok az Ismeretlen állapot 2. állapotbakerülnek. |
Az újonnan létrehozott példányok állapotának inicializálása | Az állapot inicializálása nem érhető el. Az újonnan létrehozott példányok eltarthatnak egy ideig, mielőtt állandó állapotba kerülnek. | Az állapot inicializálása lehetővé teszi az újonnan létrehozott példányok állandó állapotba rendezését, mielőtt a példány jogosulttá válik a működés közbeni frissítésekre vagy a példányok javítási műveleteire. |
HTTP/HTTPS protokoll | Támogatott | Támogatott |
TCP-protokoll | Támogatott | Korlátozott támogatás – Ismeretlen állapot nem érhető el a TCP protokollon. Tekintse meg a Rich Health States protokolltáblát a TCP állapotának viselkedéséről. |
1 Az ismeretlen állapot nem érhető el a TCP protokollon. 2 Csak HTTP/HTTPS protokoll esetén alkalmazható. A TCP-protokoll ugyanazt a folyamatot követi, mint a bináris állapotállapotok nem kifogástalan példányainak azonosítása.
Általában bináris állapotállapotokat kell használnia, ha:
- Nem szeretne egyéni logikát konfigurálni a nem megfelelő példányok azonosításához és megjelöléséhez
- Nincs szükség inicializálási türelmi időre az újonnan létrehozott példányokhoz
A Rich Health-állapotokat akkor érdemes használnia, ha:
- Állapotjeleket http/HTTPS protokollon keresztül küld el, és az állapotinformációkat a mintavétel választörzsén keresztül küldheti el
- Egyéni logikával szeretné azonosítani és megjelölni a nem kifogástalan állapotú példányokat
- Az újonnan létrehozott példányok inicializálási türelmi időszakát szeretné beállítani, hogy azok stabil állapotba kerülhessenek, mielőtt a példány jogosulttá válik a működés közbeni frissítésre vagy példányjavításra
Bináris állapotállapotok
A bináris állapotjelentés két állapotállapotot tartalmaz, kifogástalan és nem megfelelő állapotot. Az alábbi táblázatok rövid leírást nyújtanak az állapotállapotok konfigurálásáról.
HTTP/HTTPS Protokoll
Protokoll | Állapot | Leírás |
---|---|---|
http/https | Kifogástalan | Ha kifogástalan jelzést szeretne küldeni, az alkalmazásnak 200 válaszkódot kell visszaadnia. |
http/https | Nem kifogástalan | A példány sérültként lesz megjelölve, ha nem érkezik 200 válaszkód az alkalmazástól. |
TCP-protokoll
Protokoll | Állapot | Leírás |
---|---|---|
TCP | Kifogástalan | Ha kifogástalan jelzést szeretne küldeni, sikeres kézfogást kell végrehajtania a megadott alkalmazásvégponttal. |
TCP | Nem kifogástalan | A példány nem megfelelő állapotúként lesz megjelölve, ha a megadott alkalmazásvégponton sikertelen vagy hiányos kézfogás történt. |
Egyes forgatókönyvek, amelyek nem megfelelő állapotot eredményezhetnek, a következők lehetnek:
- Amikor az alkalmazásvégpont egy nem 200-ás állapotkódot ad vissza
- Ha nincs konfigurálva alkalmazásvégpont a virtuálisgép-példányokon belül az alkalmazás állapotának megadásához
- Ha az alkalmazásvégpont helytelenül van konfigurálva
- Ha az alkalmazásvégpont nem érhető el
Rich Health States
A Rich Health States jelentés négy állapotállapotot tartalmaz, az inicializálást, az kifogástalan állapotot, a nem megfelelő állapotot és az Ismeretlen állapotot. Az alábbi táblázatok rövid leírást nyújtanak az egyes állapotok konfigurálásáról.
HTTP/HTTPS Protokoll
Protokoll | Állapot | Leírás |
---|---|---|
http/https | Kifogástalan | Kifogástalan jelzés küldéséhez az alkalmazás várhatóan egy mintavételi választ ad vissza a következőkkel: Mintavételi válaszkód: Status 2xx, Probe Response Body:{"ApplicationHealthState": "Healthy"} |
http/https | Nem kifogástalan | Nem megfelelő jel küldéséhez az alkalmazás várhatóan egy mintavételi választ ad vissza a következőkkel: Mintavétel válaszkód: Status 2xx, Probe Response Body:{"ApplicationHealthState": "Unhealthy"} |
http/https | Inicializálás | A példány automatikusan inicializálási állapotot ad meg a bővítmény indításakor. További információ: Inicializálási állapot. |
http/https | Ismeretlen | Ismeretlen állapot fordulhat elő a következő esetekben: ha az alkalmazás nem 2xx állapotkódot ad vissza, amikor a mintavételi kérelem túllépi az időkorlátot, amikor az alkalmazás végpontja elérhetetlen vagy helytelenül van konfigurálva, ha hiányzik vagy érvénytelen érték van megadva ApplicationHealthState a válasz törzsében, vagy ha a türelmi időszak lejár. További információ: Ismeretlen állapot. |
TCP-protokoll
Protokoll | Állapot | Leírás |
---|---|---|
TCP | Kifogástalan | Ha kifogástalan jelzést szeretne küldeni, sikeres kézfogást kell végrehajtania a megadott alkalmazásvégponttal. |
TCP | Nem kifogástalan | A példány nem megfelelő állapotúként lesz megjelölve, ha a megadott alkalmazásvégponton sikertelen vagy hiányos kézfogás történt. |
TCP | Inicializálás | A példány automatikusan inicializálási állapotot ad meg a bővítmény indításakor. További információ: Inicializálási állapot. |
Állapot inicializálása
Ez az állapot csak a Rich Health-államokra vonatkozik. Az inicializálási állapot csak egyszer fordul elő a bővítmény indításakor, és a bővítmény beállításai gracePeriod
és numberOfProbes
a .
A bővítmény indításakor az alkalmazás állapota mindaddig inicializálási állapotban marad, amíg két forgatókönyv egyike nem következik be:
- Ugyanazt az állapotot (kifogástalan vagy nem megfelelő) a számOfProbes által konfigurált, egymást követő számú alkalommal jelenti a rendszer.
- A
gracePeriod
lejárati idő
Ha ugyanazt az állapotot (kifogástalan vagy nem megfelelő) egymás után jelentik, az alkalmazás állapota ki fog váltani az inicializálási állapotból a jelentett állapotba (kifogástalan vagy nem megfelelő).
Példa
Ha numberOfProbes
= 3, az a következőt jelentené:
- Az inicializálásról az kifogástalan állapotra való áttéréshez: Az alkalmazás állapotbővítményének három egymást követő kifogástalan jelet kell fogadnia HTTP/HTTPS vagy TCP protokollon keresztül
- Az inicializálásról a nem kifogástalan állapotra való áttéréshez: Az alkalmazás állapotbővítményének három egymást követő nem kifogástalan jelet kell fogadnia HTTP/HTTPS vagy TCP protokollon keresztül
Ha az gracePeriod
alkalmazás az egymást követő állapotjelentés előtt lejár, a példány állapota a következőképpen lesz meghatározva:
- HTTP/HTTPS protokoll: Az alkalmazás állapota az inicializálásról ismeretlenre vált
- TCP-protokoll: Az alkalmazás állapota az inicializálásról a nem megfelelő állapotra vált
Ismeretlen állapot
Ez az állapot csak a Rich Health-államokra vonatkozik. Az Ismeretlen állapot csak a "http" vagy a "https" mintavétel esetén jelenik meg, és a következő esetekben fordul elő:
- Ha az alkalmazás nem 2xx állapotkódot ad vissza
- Amikor a mintavételi kérelem túllépi az időkorlátot
- Ha az alkalmazásvégpont elérhetetlen vagy helytelenül van konfigurálva
- Ha hiányzik vagy érvénytelen érték van megadva
ApplicationHealthState
a válasz törzsében - A türelmi időszak lejártakor
Az ismeretlen állapotú példányok kezelése a nem megfelelő állapotú példányokhoz hasonlóan történik. Ha engedélyezve van, a példányok javítása ismeretlen példányon történik, miközben a működés közbeni frissítés addig szünetel, amíg a példány vissza nem kerül kifogástalan állapotba.
Az alábbi táblázat a működés közbeni frissítések és példányjavítások állapotelemzését mutatja be:
Állapot | A gördülő frissítés értelmezése | Példányjavítási eseményindító |
---|---|---|
Inicializálás | Várjon, amíg az állapot kifogástalan, nem kifogástalan vagy Ismeretlen állapotú lesz | Nem |
Kifogástalan | Kifogástalan | Nem |
Nem kifogástalan | Nem kifogástalan | Igen |
Ismeretlen | Nem kifogástalan | Igen |
Bináris állapotállapotok bővítményséma
Az alábbi JSON az Application Health bővítmény sémáját mutatja be. A bővítményhez legalább egy "tcp", "http" vagy "https" kérés szükséges egy társított porttal vagy kérési útvonallal.
{
"extensionProfile" : {
"extensions" : [
{
"name": "HealthExtension",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "<ApplicationHealthLinux or ApplicationHealthWindows>",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "1.0",
"settings": {
"protocol": "<protocol>",
"port": <port>,
"requestPath": "</requestPath>",
"intervalInSeconds": 5,
"numberOfProbes": 1
}
}
}
]
}
}
Tulajdonságértékek
Név | Érték/ Példa | Adattípus |
---|---|---|
apiVersion | 2018-10-01 |
dátum: |
Publisher | Microsoft.ManagedServices |
sztring |
típus | ApplicationHealthLinux (Linux), ApplicationHealthWindows (Windows) |
sztring |
typeHandlerVersion | 1.0 |
sztring |
Beállítások
Név | Érték/ Példa | Adattípus |
---|---|---|
Protokoll | http vagy https tcp |
sztring |
kikötő | Nem kötelező, ha a protokoll vagy http https , akkor kötelező, ha a protokoll tcp |
egész |
requestPath | Kötelező, ha a protokoll a http protokoll, vagy https nem engedélyezett, ha a protokoll tcp |
sztring |
intervalInSeconds | Nem kötelező, az alapértelmezett érték 5 másodperc. Ez az egyes állapotminták közötti intervallum. Ha például az intervalInSeconds == 5, a rendszer 5 másodpercenként küld egy mintavételt a helyi alkalmazásvégpontnak. | egész |
numberOfProbes | Nem kötelező, az alapértelmezett érték 1. Ez az állapot módosításához szükséges egymást követő mintavételek száma. Ha például a numberOfProbles == 3, akkor 3 egymást követő "Kifogástalan" jelre lesz szüksége az állapot "Nem kifogástalan" állapotról "Kifogástalan" állapotra való módosításához. Ugyanez a követelmény vonatkozik az állapot "Nem kifogástalan" állapotra való módosítására. | egész |
Rich Health-állapotok bővítményséma
Az alábbi JSON a Rich Health States bővítmény sémáját mutatja be. A bővítmény legalább egy "http" vagy "https" kérést igényel egy társított porttal vagy kérési útvonallal. A TCP-mintavételek szintén támogatottak, de nem tudják beállítani a ApplicationHealthState
mintavétel válasz törzsét, és nem lesznek hozzáférésük az Ismeretlen állapothoz.
{
"extensionProfile" : {
"extensions" : [
{
"name": "HealthExtension",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "<ApplicationHealthLinux or ApplicationHealthWindows>",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "2.0",
"settings": {
"protocol": "<protocol>",
"port": <port>,
"requestPath": "</requestPath>",
"intervalInSeconds": 5,
"numberOfProbes": 1,
"gracePeriod": 600
}
}
}
]
}
}
Tulajdonságértékek
Név | Érték/ Példa | Adattípus |
---|---|---|
apiVersion | 2018-10-01 |
dátum: |
Publisher | Microsoft.ManagedServices |
sztring |
típus | ApplicationHealthLinux (Linux), ApplicationHealthWindows (Windows) |
sztring |
typeHandlerVersion | 2.0 |
sztring |
Beállítások
Név | Érték/ Példa | Adattípus |
---|---|---|
Protokoll | http vagy https tcp |
sztring |
kikötő | Nem kötelező, ha a protokoll vagy http https , akkor kötelező, ha a protokoll tcp |
egész |
requestPath | Kötelező, ha a protokoll a http protokoll, vagy https nem engedélyezett, ha a protokoll tcp |
sztring |
intervalInSeconds | Nem kötelező, az alapértelmezett érték 5 másodperc. Ez az egyes állapotminták közötti intervallum. Ha például az intervalInSeconds == 5, a rendszer 5 másodpercenként küld egy mintavételt a helyi alkalmazásvégpontnak. | egész |
numberOfProbes | Nem kötelező, az alapértelmezett érték 1. Ez az állapot módosításához szükséges egymást követő mintavételek száma. Ha például a numberOfProbles == 3, akkor 3 egymást követő "Kifogástalan" jelre lesz szüksége az állapot "Nem kifogástalan"/"Ismeretlen" állapotról "Kifogástalan" állapotra való módosításához. Ugyanez a követelmény vonatkozik az állapot "Nem kifogástalan" vagy "Ismeretlen" állapotra való módosítására. | egész |
gracePeriod | Nem kötelező, alapértelmezett = intervalInSeconds * numberOfProbes ; a türelmi időszak maximális időtartama 7200 másodperc |
egész |
Az Application Health bővítmény üzembe helyezése
Az Application Health bővítményt többféleképpen is üzembe helyezheti a méretezési csoportokban az alábbi példákban leírtak szerint.
Bináris állapotállapotok
Az alábbi példa hozzáadja az Application Health bővítményt (myHealthExtension néven) a BővítményProfile bővítményhez egy Windows-alapú méretezési csoport méretezési csoportjának modelljében.
Ezzel a példával egy meglévő bővítményt is módosíthat Rich Health-állapotról bináris állapotra, ha PUT helyett PATCH-hívást kezdeményez.
PUT on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/extensions/myHealthExtension?api-version=2018-10-01`
{
"name": "myHealthExtension",
"location": "<location>",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "ApplicationHealthWindows",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "1.0",
"settings": {
"protocol": "<protocol>",
"port": <port>,
"requestPath": "</requestPath>"
}
}
}
Egy már üzembe helyezett bővítmény szerkesztésére használható PATCH
.
Frissítse a virtuális gépeket a bővítmény telepítéséhez.
POST on `/subscriptions/<subscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/< myScaleSet >/manualupgrade?api-version=2022-08-01`
{
"instanceIds": ["*"]
}
Rich Health States
Az alábbi példa hozzáadja az Application Health – Rich States bővítményt (névvel myHealthExtension
) egy extensionProfile
Windows-alapú méretezési csoport méretezési csoportjának modelljéhez.
Ezzel a példával frissíthet egy meglévő bővítményt binárisról Rich Health-állapotra, ha PUT helyett PATCH-hívást kezdeményez.
PUT on `/subscriptions/subscription_id/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/myScaleSet/extensions/myHealthExtension?api-version=2018-10-01`
{
"name": "myHealthExtension",
"location": "<location>",
"properties": {
"publisher": "Microsoft.ManagedServices",
"type": "ApplicationHealthWindows",
"autoUpgradeMinorVersion": true,
"typeHandlerVersion": "2.0",
"settings": {
"protocol": "<protocol>",
"port": <port>,
"requestPath": "</requestPath>",
"intervalInSeconds": <intervalInSeconds>,
"numberOfProbes": <numberOfProbes>,
"gracePeriod": <gracePeriod>
}
}
}
Egy már üzembe helyezett bővítmény szerkesztésére használható PATCH
.
Frissítse a virtuális gépeket a bővítmény telepítéséhez.
POST on `/subscriptions/<subscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.Compute/virtualMachineScaleSets/< myScaleSet >/manualupgrade?api-version=2022-08-01`
{
"instanceIds": ["*"]
}
Hibaelhárítás
Virtuális gép állapotának megtekintése – egyetlen példány
Get-AzVmssVM
-InstanceView `
-ResourceGroupName <rgName> `
-VMScaleSetName <vmssName> `
-InstanceId <instanceId>
Virtuális gép állapotának megtekintése – kötegelt hívás
Ez csak egységes vezénylésű virtuálisgép-méretezési csoportokhoz érhető el.
GET on `/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmssName>/virtualMachines/?api-version=2022-03-01&$expand=instanceview`
Az állapot nem jelenik meg
Ha az Állapot állapot nem jelenik meg az Azure Portalon vagy a GET-híváson keresztül, ellenőrizze, hogy a virtuális gép a legújabb modellre van-e frissítve. Ha a virtuális gép nem a legújabb modellen található, frissítse a virtuális gépet, és megjelenik az állapot.
Bővítmény végrehajtási kimeneti naplója
A bővítményvégrehajtás kimenete a következő könyvtárakban található fájlokba lesz naplózva:
C:\WindowsAzure\Logs\Plugins\Microsoft.ManagedServices.ApplicationHealthWindows\<version>\
/var/lib/waagent/Microsoft.ManagedServices.ApplicationHealthLinux-<extension_version>/status
/var/log/azure/applicationhealth-extension
A naplók rendszeresen rögzítik az alkalmazás állapotát is.
További lépések
Megtudhatja, hogyan helyezheti üzembe az alkalmazást virtuálisgép-méretezési csoportokban.