Eseményösszesítés és -gyűjtemény a Windows Azure Diagnostics használatával
Azure Service Fabric-fürt futtatásakor érdemes összegyűjteni a naplókat egy központi helyen található összes csomópontról. A naplók központi helyen való elhelyezésével elemezheti és elháríthatja a fürt problémáit, illetve a fürtben futó alkalmazásokban és szolgáltatásokban fellépő problémákat.
A naplók feltöltésének és gyűjtésének egyik módja a Windows Azure Diagnostics (WAD) bővítmény használata, amely naplókat tölt fel az Azure Storage-ba, valamint lehetősége van naplók küldésére Azure-alkalmazás Insights vagy Event Hubs szolgáltatásba. Külső folyamatokkal is elolvashatja az eseményeket a tárolóból, és elhelyezheti őket egy elemzési platform termékében, például az Azure Monitor-naplókban vagy egy másik naplóelemzési megoldásban.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Előfeltételek
Ebben a cikkben a következő eszközöket használjuk:
Service Fabric-platformesemények
A Service Fabric beállít néhány beépített naplózási csatornát, amelyek közül a következő csatornák előre konfigurálva vannak a bővítményrel, hogy monitorozási és diagnosztikai adatokat küldjenek egy tárolótáblába vagy máshová:
- Működési események: a Service Fabric platform által végrehajtott magasabb szintű műveletek. Ilyenek például az alkalmazások és szolgáltatások létrehozása, a csomópont állapotváltozásai és a frissítési információk. Ezek a windowsos (ETW)-naplók eseménykövetéseként jelennek meg
- Reliable Actors programozási modell eseményei
- Reliable Services programozási modell eseményei
A Diagnostics bővítmény üzembe helyezése a portálon keresztül
A naplók gyűjtésének első lépése a Diagnosztikai bővítmény üzembe helyezése a Service Fabric-fürt virtuálisgép-méretezési csoportcsomópontjaiban. A Diagnostics bővítmény összegyűjti a naplókat az egyes virtuális gépeken, és feltölti őket a megadott tárfiókba. Az alábbi lépések azt ismertetik, hogyan valósíthatja meg ezt új és meglévő fürtök esetében az Azure Portalon és az Azure Resource Manager-sablonokon keresztül.
A Diagnosztikai bővítmény üzembe helyezése fürtlétrehozás részeként az Azure Portalon
A fürt létrehozásakor a fürtkonfigurációs lépésben bontsa ki az opcionális beállításokat, és győződjön meg arról, hogy a diagnosztika be van kapcsolva (az alapértelmezett beállítás).
Javasoljuk, hogy töltse le a sablont , mielőtt az utolsó lépésben a Létrehozás gombra kattint. Részletekért tekintse meg a Service Fabric-fürt beállítása Azure Resource Manager-sablonnal történő beállítását. A sablonra szüksége van ahhoz, hogy módosítsa a (fent felsorolt) csatornákat az adatok gyűjtéséhez.
Most, hogy összesít eseményeket az Azure Storage-ban, állítsa be az Azure Monitor-naplókat, hogy elemzéseket nyerjen, és lekérdezhesse őket az Azure Monitor naplóinak portálján
Feljegyzés
Jelenleg nem lehet szűrni vagy ápolni a táblákba küldött eseményeket. Ha nem hajt végre olyan folyamatot, amely eltávolítja az eseményeket a táblából, a táblázat továbbra is növekszik (az alapértelmezett korlát 50 GB). Ennek módosítására vonatkozó útmutatást a cikk további részében talál. Emellett van egy példa a Watchdog-mintában futó adatkozmetika szolgáltatásra, és azt is javasoljuk, hogy saját maga is írjon egyet, hacsak nincs jó oka a naplók 30 vagy 90 napos időkereten túli tárolására.
A Diagnostics bővítmény üzembe helyezése az Azure Resource Manageren keresztül
Fürt létrehozása a diagnosztikai bővítménnyel
Ha a Resource Manager használatával szeretne fürtöt létrehozni, hozzá kell adnia a Diagnostics konfigurációs JSON-t a teljes Resource Manager-sablonhoz. Resource Manager-sablont biztosítunk egy öt virtuálisgép-fürthöz, amelyhez a Resource Manager-sablonminták részeként diagnosztikai konfigurációt adunk hozzá. Ezen a helyen látható az Azure-minták gyűjteményében: Ötcsomópontos fürt Diagnostics Resource Manager-sablonmintával.
A Resource Manager-sablon diagnosztikai beállításának megtekintéséhez nyissa meg a azuredeploy.json fájlt, és keressen rá az IaaSDiagnostics kifejezésre. Ha ezzel a sablonnal szeretne fürtöt létrehozni, válassza az előző hivatkozáson elérhető Üzembe helyezés az Azure-ban gombot.
Másik lehetőségként letöltheti a Resource Manager-mintát, módosíthatja azt, és létrehozhat egy fürtöt a módosított sablonnal egy New-AzResourceGroupDeployment
Azure PowerShell-ablakban található paranccsal. A parancsnak átadott paramétereket az alábbi kódban tekintheti meg. Az erőforráscsoportok PowerShell-lel történő üzembe helyezéséről az Erőforráscsoport üzembe helyezése az Azure Resource Manager-sablonnal című cikk nyújt részletes tájékoztatást.
A diagnosztikai bővítmény hozzáadása meglévő fürthöz
Ha olyan meglévő fürtje van, amely nem rendelkezik a Diagnostics üzembe helyezésével, hozzáadhatja vagy frissítheti a fürtsablonon keresztül. Módosítsa a meglévő fürt létrehozásához használt Resource Manager-sablont, vagy töltse le a sablont a portálról a korábban leírtak szerint. Módosítsa a template.json fájlt a következő feladatok végrehajtásával:
Adjon hozzá egy új tárolási erőforrást a sablonhoz az erőforrások szakasz hozzáadásával.
{
"apiVersion": "2018-07-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
"location": "[parameters('computeLocation')]",
"sku": {
"name": "[parameters('applicationDiagnosticsStorageAccountType')]"
"tier": "standard"
},
"tags": {
"resourceType": "Service Fabric",
"clusterName": "[parameters('clusterName')]"
}
},
Ezután adja hozzá a paraméterek szakaszt közvetlenül a tárfiók definíciói után, a kettő között supportLogStorageAccountName
. Cserélje le a helyőrző szövegtárfiók nevét a kívánt tárfiók nevére.
"applicationDiagnosticsStorageAccountType": {
"type": "string",
"allowedValues": [
"Standard_LRS",
"Standard_GRS"
],
"defaultValue": "Standard_LRS",
"metadata": {
"description": "Replication option for the application diagnostics storage account"
}
},
"applicationDiagnosticsStorageAccountName": {
"type": "string",
"defaultValue": "**STORAGE ACCOUNT NAME GOES HERE**",
"metadata": {
"description": "Name for the storage account that contains application diagnostics data from the cluster"
}
},
Ezután frissítse a VirtualMachineProfile
template.json fájl szakaszát úgy, hogy hozzáadja a következő kódot a bővítménytömbhöz. Mindenképpen adjon hozzá vesszőt az elejéhez vagy végéhez, attól függően, hogy hová szúrja be.
{
"name": "[concat(parameters('vmNodeType0Name'),'_Microsoft.Insights.VMDiagnosticsSettings')]",
"properties": {
"type": "IaaSDiagnostics",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
"storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
"storageAccountEndPoint": "https://core.windows.net/"
},
"publisher": "Microsoft.Azure.Diagnostics",
"settings": {
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
},
{
"provider": "02d06793-efeb-48c8-8f7f-09713309a810",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
}
}
},
"StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
},
"typeHandlerVersion": "1.5"
}
}
Miután módosította a template.json fájlt a leírtak szerint, tegye közzé újra a Resource Manager-sablont. Ha a sablont exportálták, a deploy.ps1 fájl futtatása újra közzéteszi a sablont. Az üzembe helyezés után győződjön meg arról, hogy a ProvisioningState sikeres.
Tipp.
Ha tárolókat szeretne üzembe helyezni a fürtön, engedélyezze a WAD-nak a Docker-statisztikák felvételét a WadCfg > DiagnosticMonitorConfiguration szakaszba való hozzáadásával.
"DockerSources": {
"Stats": {
"enabled": true,
"sampleRate": "PT1M"
}
},
Tárolási kvóta frissítése
Mivel a bővítmény által feltöltött táblák a kvóta beütemeztetéséig növekednek, érdemes lehet megfontolni a kvóta méretének csökkentését. Az alapértelmezett érték 50 GB, és konfigurálható a sablonban a overallQuotaInMB
következő mezőben: DiagnosticMonitorConfiguration
"overallQuotaInMB": "50000",
Naplógyűjtési konfigurációk
A további csatornák naplói is elérhetők a gyűjteményhez. Íme néhány, az Azure-ban futó fürtök sablonjában elérhető leggyakoribb konfigurációk.
Működési csatorna – Alap: Alapértelmezés szerint engedélyezve van, a Service Fabric és a fürt által végrehajtott magas szintű műveletek, beleértve a közelgő csomópontok eseményeit, az új alkalmazás üzembe helyezését vagy a frissítés visszaállítását stb. Az események listáját az Operatív csatorna eseményei című témakörben találja.
"scheduledTransferKeywordFilter": "4611686018427387904"
Működési csatorna – Részletes: Ide tartoznak az állapotjelentések és a terheléselosztási döntések, valamint az alap működési csatornában található összes elem. Ezeket az eseményeket a rendszer vagy a kód hozza létre az állapot- vagy terhelésjelentési API-k, például a ReportPartitionHealth vagy a ReportLoad használatával. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai Eseménynapló adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000008" értéket az ETW-szolgáltatók listájához.
"scheduledTransferKeywordFilter": "4611686018427387912"
Adat- és üzenetkezelési csatorna – Alap: Az üzenetkezelésben létrehozott kritikus naplók és események (jelenleg csak a ReverseProxy) és az adatútvonal, a részletes operatív csatornanaplók mellett. Ezek az események a kérésfeldolgozási hibák és a ReverseProxy egyéb kritikus problémái, valamint a feldolgozott kérések. Ez az átfogó naplózásra vonatkozó javaslatunk. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai Eseménynapló, adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000010" értéket az ETW-szolgáltatók listájához.
"scheduledTransferKeywordFilter": "4611686018427387928"
Data & Messaging Channel – Részletes csatorna, amely tartalmazza a fürt adataiból és üzenetkezeléséből származó összes nem kritikus naplót, valamint a részletes operatív csatornát. Az összes fordított proxyesemény részletes hibaelhárítását a fordított proxy diagnosztikai útmutatójában találja. Ha meg szeretné tekinteni ezeket az eseményeket a Visual Studio diagnosztikai eseménynaplójában, adja hozzá a "Microsoft-ServiceFabric:4:0x4000000000000020" értéket az ETW-szolgáltatók listájához.
"scheduledTransferKeywordFilter": "4611686018427387944"
Feljegyzés
Ez a csatorna nagyon nagy mennyiségű eseményt biztosít, így a részletes csatorna eseménygyűjtése sok nyomkövetést eredményez gyorsan, és felhasználhatja a tárolási kapacitást. Ezt csak akkor kapcsolja be, ha feltétlenül szükséges.
Az alap üzemeltetési csatorna engedélyezéséhez a legkisebb zajmennyiségű EtwManifestProviderConfiguration
átfogó naplózásra vonatkozó javaslatunk a következőhöz hasonlóan nézne ki a WadCfg
sablonban:
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
},
{
"provider": "02d06793-efeb-48c8-8f7f-09713309a810",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
}
}
},
Adatgyűjtés új EventSource-csatornákról
Ha frissíteni szeretné a Diagnosticst, hogy új EventSource-csatornákról gyűjtsön naplókat, amelyek egy új, üzembe helyezni kívánt alkalmazást képviselnek, hajtsa végre azokat a lépéseket, amelyeket a diagnosztikai beállítások meglévő fürthöz való beállításához korábban ismertetett.
Frissítse a EtwEventSourceProviderConfiguration
template.json fájl szakaszát az új EventSource-csatornák bejegyzéseinek hozzáadásához, mielőtt a Konfigurációfrissítést a New-AzResourceGroupDeployment
PowerShell-paranccsal alkalmazza. Az eseményforrás neve a Visual Studio által létrehozott ServiceEventSource.cs fájl kódjának részeként van definiálva.
Ha például az eseményforrás neve My-Eventsource, adja hozzá a következő kódot, hogy a My-Eventsource eseményeit egy MyDestinationTableName nevű táblába helyezze.
{
"provider": "My-Eventsource",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "MyDestinationTableName"
}
}
Teljesítményszámlálók vagy eseménynaplók gyűjtéséhez módosítsa a Resource Manager-sablont a Windows rendszerű virtuális gép létrehozása monitorozással és diagnosztikával egy Azure Resource Manager-sablon használatával című témakörben található példák használatával. Ezután tegye közzé újra a Resource Manager-sablont.
Teljesítményszámlálók gyűjtése
A fürt teljesítménymetrikáinak gyűjtéséhez adja hozzá a teljesítményszámlálókat a "WadCfg > DiagnosticMonitorConfiguration" elemhez a fürt Resource Manager-sablonjában. Az egyes teljesítményszámlálók gyűjtésére vonatkozó módosítás WadCfg
lépéseit a WAD teljesítményfigyelésében találja. Referencia teljesítménymetrikák azoknak a teljesítményszámlálóknak a listájához, amelyeket érdemes összegyűjteni.
Ha az alábbi szakaszban ismertetett Application Insights-fogadót használ, és azt szeretné, hogy ezek a metrikák megjelenjenek az Application Insightsban, akkor adja hozzá a fogadó nevét a "fogadók" szakaszban a fent látható módon. Ez automatikusan elküldi az egyénileg konfigurált teljesítményszámlálókat az Application Insights-erőforrásnak.
Naplók küldése az Application Insightsba
Az Application Insights konfigurálása WAD-val
Feljegyzés
Ez jelenleg csak Windows-fürtökre vonatkozik.
A WAD-ból a Azure-alkalmazás Insightsba kétféle elsődleges módon küldhet adatokat, amelyeket úgy érhet el, hogy hozzáad egy Application Insights-fogadót a WAD-konfigurációhoz az Azure Portalon vagy egy Azure Resource Manager-sablonon keresztül.
Application Insights-rendszerállapotkulcs hozzáadása fürt létrehozásakor az Azure Portalon
Fürt létrehozásakor, ha a Diagnosztika be van kapcsolva, megjelenik egy nem kötelező mező az Application Insights Instrumentation kulcs megadásához. Ha ide illeszti be az Application Insights-kulcsot, a rendszer automatikusan konfigurálja az Application Insights fogadót a fürt üzembe helyezéséhez használt Resource Manager-sablonban.
Az Application Insights fogadó hozzáadása a Resource Manager-sablonhoz
A Resource Manager-sablon "WadCfg" fájljában adjon hozzá egy "Fogadót" a következő két módosítás hozzáadásával:
Adja hozzá közvetlenül a fogadó konfigurációját
DiagnosticMonitorConfiguration
a deklarálás befejezése után:"SinksConfig": { "Sink": [ { "name": "applicationInsights", "ApplicationInsights": "***ADD INSTRUMENTATION KEY HERE***" } ] }
Adja hozzá a fogadót a
DiagnosticMonitorConfiguration
következő sor hozzáadásával aDiagnosticMonitorConfiguration
WadCfg
(közvetlenül aEtwProviders
deklarált érték megadása előtt):"sinks": "applicationInsights"
Az előző kódrészletekben az "applicationInsights" nevet használták a fogadó leírására. Ez nem követelmény, és amíg a fogadó neve szerepel a "fogadókban", a nevet bármilyen sztringre beállíthatja.
A fürt naplói jelenleg nyomkövetésként jelennek meg az Application Insights naplómegjelenítőjében. Mivel a platformról érkező nyomkövetések többsége "Informational" szintű, érdemes lehet módosítani a fogadó konfigurációját úgy is, hogy csak "Figyelmeztetés" vagy "Hiba" típusú naplókat küldjön. Ezt úgy teheti meg, hogy hozzáadja a "Csatornák" elemet a fogadóhoz, ahogy az ebben a cikkben is látható.
Feljegyzés
Ha helytelen Application Insights-kulcsot használ a portálon vagy a Resource Manager-sablonban, manuálisan kell módosítania a kulcsot, és frissítenie kell a fürtöt/ újra üzembe kell helyeznie.
Következő lépések
Miután megfelelően konfigurálta az Azure-diagnosztikát, az ETW- és EventSource-naplókból fogja látni a Storage-táblák adatait. Ha az Azure Monitor-naplók, a Kibana vagy bármely más olyan adatelemzési és vizualizációs platform használata mellett dönt, amely nincs közvetlenül konfigurálva a Resource Manager-sablonban, mindenképpen állítsa be a választott platformot, hogy beolvassa az adatokat ezekből a tárolótáblákból. Ez az Azure Monitor-naplók esetében viszonylag triviális, és az esemény- és naplóelemzéssel magyarázható. Az Application Insights ebben az értelemben egy kicsit különleges eset, mivel a Diagnostics bővítmény konfigurációjának részeként konfigurálható, ezért ha AI-t használ, tekintse meg a megfelelő cikket .
Feljegyzés
Jelenleg nem lehet szűrni vagy ápolni a táblába küldött eseményeket. Ha nem hajt végre olyan folyamatot, amely eltávolítja az eseményeket a táblából, a tábla tovább fog növekedni. Jelenleg van egy példa a Watchdog-mintában futó adatkozmetika szolgáltatásra, és javasoljuk, hogy saját maga is írjon egyet, hacsak nincs jó oka a naplók 30 vagy 90 napos időkereten túli tárolására.
- Megtudhatja, hogyan gyűjthet teljesítményszámlálókat vagy naplókat a Diagnostics bővítmény használatával
- Eseményelemzés és vizualizáció az Application Insights használatával
- Eseményelemzés és vizualizáció az Azure Monitor-naplókkal
- Eseményelemzés és vizualizáció az Application Insights használatával
- Eseményelemzés és vizualizáció az Azure Monitor-naplókkal