Aggregatie en verzameling van gebeurtenissen met Behulp van Windows Azure Diagnostics
Wanneer u een Azure Service Fabric uitvoeren, is het een goed idee om de logboeken van alle knooppunten op een centrale locatie te verzamelen. Met de logboeken op een centrale locatie kunt u problemen in uw cluster analyseren en oplossen, of problemen in de toepassingen en services die in dat cluster worden uitgevoerd.
Een manier om logboeken te uploaden en te verzamelen, is met de Windows Azure Diagnostics-extensie (WAD), waarmee logboeken naar Azure Storage worden geüpload en de optie heeft om logboeken te verzenden naar Azure-toepassing Insights of Event Hubs. U kunt ook een extern proces gebruiken om de gebeurtenissen uit de opslag te lezen en deze in een analyseplatformproduct te plaatsen, zoals Azure Monitor logboeken of een andere oplossing voor het parseren van logboeken.
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereisten
In dit artikel worden de volgende hulpprogramma's gebruikt:
Service Fabric platformgebeurtenissen
Service Fabric stelt u een aantal out-of-the-boxlogboekregistratiekanalen in, waarvan de volgende kanalen vooraf zijn geconfigureerd met de extensie voor het verzenden van bewakings- en diagnostische gegevens naar een opslagtabel of elders:
- Operationele gebeurtenissen:bewerkingen op een hoger niveau die het Service Fabric platform uitvoert. Voorbeelden hiervan zijn het maken van toepassingen en services, statuswijzigingen van knooppunt en upgrade-informatie. Deze worden als Event Tracing for Windows (ETW)-logboeken
- Reliable Actors-programmeermodelgebeurtenissen
- Reliable Services-programmeermodelgebeurtenissen
De diagnostische extensie implementeren via de portal
De eerste stap bij het verzamelen van logboeken is het implementeren van de diagnostische extensie op de knooppunten van de virtuele-machineschaalset in Service Fabric cluster. De Extensie voor diagnostische gegevens verzamelt logboeken op elke VM en uploadt deze naar het opslagaccount dat u opgeeft. In de volgende stappen wordt beschreven hoe u dit kunt doen voor nieuwe en bestaande clusters via de Azure Portal en Azure Resource Manager sjablonen.
De diagnostische extensie implementeren als onderdeel van het maken van een cluster via Azure Portal
Wanneer u het cluster maakt, vouwt u in de stap clusterconfiguratie de optionele instellingen uit en zorgt u ervoor dat Diagnostische gegevens is ingesteld op Aan (de standaardinstelling).

U wordt ten zeerste aangeraden de sjabloon te downloaden voordat u in de laatste stap op Maken klikt. Raadpleeg Set up a Service Fabric cluster by using an Azure Resource Manager template (Een cluster Azure Resource Manager instellen) voor meer informatie. U hebt de sjabloon nodig om wijzigingen aan te brengen in de kanalen (hierboven vermeld) om gegevens van te verzamelen.

Nu u gebeurtenissen in Azure Storage aggregeert, stelt u Azure Monitor-logboeken in om inzichten te verkrijgen en er query's op uit te voeren in Azure Monitor logboekportal
Notitie
Er is momenteel geen manier om de gebeurtenissen te filteren of op te maken die naar de tabellen worden verzonden. Als u geen proces implementeert om gebeurtenissen uit de tabel te verwijderen, blijft de tabel groeien (de standaardlimiet is 50 GB). Instructies voor het wijzigen van dit artikel vindt u verderop in dit artikel. Daarnaast is er een voorbeeld van een gegevensverzorgingsservice die wordt uitgevoerd in het Watchdog-voorbeeld.Het wordt aanbevolen er ook een voor uzelf te schrijven, tenzij er een goede reden is om logboeken op te slaan buiten een tijdsbestek van 30 of 90 dagen.
De diagnostische extensie implementeren via Azure Resource Manager
Een cluster maken met de extensie voor diagnostische gegevens
Als u een cluster wilt maken met behulp Resource Manager, moet u de JSON voor diagnostische configuratie toevoegen aan de volledige Resource Manager sjabloon. We bieden een voorbeeld van een cluster met vijf VM Resource Manager sjabloon met diagnostische configuratie toegevoegd als onderdeel van onze Resource Manager voorbeeldsjablonen. U kunt deze op deze locatie bekijken in de galerie met Azure-voorbeelden: Cluster met vijf knooppunt met diagnostische Resource Manager voorbeeldsjabloon.
Als u de instelling Diagnostische gegevens in Resource Manager sjabloon wilt zien, opent u de azuredeploy.jsin het bestand en zoekt u naar IaaSDiagnostics. Als u een cluster wilt maken met behulp van deze sjabloon, selecteert u de knop Implementeren in Azure die beschikbaar is via de vorige koppeling.
U kunt ook het voorbeeld Resource Manager downloaden, er wijzigingen in aanbrengen en een cluster maken met de gewijzigde sjabloon met behulp van de opdracht in een New-AzResourceGroupDeployment Azure PowerShell venster. Zie de volgende code voor de parameters die u door te geven aan de opdracht. Zie het artikel Deploy a resource group with the Azure Resource Manager template (Een resourcegroep implementeren met de sjabloon Azure Resource Manager resourcegroep).
De extensie voor diagnostische gegevens toevoegen aan een bestaand cluster
Als u een bestaand cluster hebt waarvoor geen diagnostische gegevens zijn geïmplementeerd, kunt u het toevoegen of bijwerken via de clustersjabloon. Wijzig de Resource Manager die wordt gebruikt om het bestaande cluster te maken of download de sjabloon vanuit de portal zoals eerder beschreven. Wijzig het bestand template.json door de volgende taken uit te voeren:
Voeg een nieuwe opslagresource toe aan de sjabloon door toe te voegen aan de sectie resources.
{
"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')]"
}
},
Voeg vervolgens toe aan de sectie parameters net na de opslagaccountdefinities, tussen supportLogStorageAccountName . Vervang de tekst van de tijdelijke aanduiding opslagaccountnaam hier door de naam van het opslagaccount dat u wilt.
"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"
}
},
Werk vervolgens de sectie van het bestand template.jsbestand bij door de volgende code toe te VirtualMachineProfile voegen in de extensie matrix. Zorg ervoor dat u een komma aan het begin of einde toevoegt, afhankelijk van waar deze is ingevoegd.
{
"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"
}
}
Nadat u het bestand template.jszoals beschreven, moet u de sjabloon Resource Manager publiceren. Als de sjabloon is geëxporteerd, wordt de sjabloon opnieuw deploy.ps1 het bestand wordt uitgevoerd. Nadat u hebt geïmplementeerd, controleert u of ProvisioningState Geslaagd is.
Tip
Als u containers in uw cluster wilt implementeren, stelt u WAD in staat om docker-statistieken op te halen door deze toe te voegen aan de sectie WadCfg > DiagnosticMonitorConfiguration.
"DockerSources": {
"Stats": {
"enabled": true,
"sampleRate": "PT1M"
}
},
Opslagquotum bijwerken
Aangezien de tabellen die door de extensie worden gevuld, groeien totdat het quotum is bereikt, kunt u overwegen om de quotumgrootte te verlagen. De standaardwaarde is 50 GB en kan worden geconfigureerd in de sjabloon onder het overallQuotaInMB veld onder DiagnosticMonitorConfiguration
"overallQuotaInMB": "50000",
Configuraties voor logboekverzameling
Logboeken van aanvullende kanalen zijn ook beschikbaar voor verzameling. Hier volgen enkele van de meest voorkomende configuraties die u kunt maken in de sjabloon voor clusters die worden uitgevoerd in Azure.
- Operationeel kanaal - Basis: standaard ingeschakeld, bewerkingen op hoog niveau uitgevoerd door Service Fabric en het cluster, inclusief gebeurtenissen voor een knooppunt dat binnenkort wordt weergegeven, een nieuwe toepassing die wordt geïmplementeerd, of het terugdraaien van een upgrade, enzovoort. Raadpleeg Operational Channel Events voor een lijst met gebeurtenissen.
scheduledTransferKeywordFilter: "4611686018427387904"
- Operationeel kanaal: gedetailleerd: dit omvat statusrapporten en beslissingen over taakverdeling, plus alles in het operationele basiskanaal. Deze gebeurtenissen worden gegenereerd door het systeem of uw code met behulp van de API's voor status- of belastingsrapportage, zoals ReportPartitionHealth of ReportLoad. Als u deze gebeurtenissen wilt weergeven in Visual Studio Diagnostic Logboeken voegt u 'Microsoft-ServiceFabric:4:0x4000000000000008' toe aan de lijst met ETW-providers.
scheduledTransferKeywordFilter: "4611686018427387912"
- Gegevens- en berichtenkanaal: basis: kritieke logboeken en gebeurtenissen die worden gegenereerd in de berichten (momenteel alleen de ReverseProxy) en het gegevenspad, naast gedetailleerde operationele kanaallogboeken. Deze gebeurtenissen zijn aanvraagverwerkingsfouten en andere kritieke problemen in de ReverseProxy, evenals verwerkte aanvragen. Dit is onze aanbeveling voor uitgebreide logboekregistratie. Als u deze gebeurtenissen wilt weergeven in Visual Studio Diagnostic Logboeken, voegt u Microsoft-ServiceFabric:4:0x4000000000000010 toe aan de lijst met ETW-providers.
scheduledTransferKeywordFilter: "4611686018427387928"
- Data & Messaging-kanaal - Gedetailleerd: uitgebreid kanaal dat alle niet-kritieke logboeken van gegevens en berichten in het cluster en het gedetailleerde operationele kanaal bevat. Raadpleeg de handleiding voor diagnostische gegevens over omgekeerde proxy's voor gedetailleerde probleemoplossing voor alle omgekeerde proxygebeurtenissen. Als u deze gebeurtenissen wilt weergeven in Visual Studio logboeken voor diagnostische gebeurtenissen, voegt u 'Microsoft-ServiceFabric:4:0x4000000000000020' toe aan de lijst met ETW-providers.
scheduledTransferKeywordFilter: "4611686018427387944"
Notitie
Dit kanaal heeft een zeer groot aantal gebeurtenissen, waardoor het verzamelen van gebeurtenissen van dit gedetailleerde kanaal resulteert in een groot aantal traceringen die snel worden gegenereerd en opslagcapaciteit kunnen verbruiken. Schakel dit alleen in als dit absoluut noodzakelijk is.
Als u het operationele basiskanaal wilt inschakelen, ziet onze aanbeveling voor uitgebreide logboekregistratie met zo klein mogelijk ruis er als volgt EtwManifestProviderConfiguration WadCfg uit:
"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"
}
}
]
}
}
},
Verzamelen van nieuwe EventSource-kanalen
Als u Diagnostische gegevens wilt bijwerken om logboeken te verzamelen van nieuwe EventSource-kanalen die een nieuwe toepassing vertegenwoordigen die u op het punt staat te implementeren, voert u dezelfde stappen uit als eerder beschreven voor het instellen van Diagnostische gegevens voor een bestaand cluster.
Werk de sectie in het bestand template.jsbij om vermeldingen voor de nieuwe EventSource-kanalen toe te voegen voordat u de configuratie-update kunt toepassen met behulp van EtwEventSourceProviderConfiguration de New-AzResourceGroupDeployment PowerShell-opdracht. De naam van de gebeurtenisbron wordt gedefinieerd als onderdeel van uw code in het door Visual Studio gegenereerde bestand ServiceEventSource.cs.
Als uw gebeurtenisbron bijvoorbeeld de naam My-Eventsource heeft, voegt u de volgende code toe om de gebeurtenissen van My-Eventsource in een tabel met de naam MyDestinationTableName te plaatsen.
{
"provider": "My-Eventsource",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "MyDestinationTableName"
}
}
Als u prestatiemeters of gebeurtenislogboeken wilt verzamelen, wijzigt u de Resource Manager-sjabloon met behulp van de voorbeelden in Een virtuele Windows-machine maken met bewaking en diagnostische gegevens met behulp van een Azure Resource Manager-sjabloon. Vervolgens moet u de sjabloon Resource Manager publiceren.
Prestatiemeters verzamelen
Als u prestatiemetrieken van uw cluster wilt verzamelen, voegt u de prestatiemeters toe aan uw WadCfg > DiagnosticMonitorConfiguration in de sjabloon Resource Manager voor uw cluster. Zie Prestatiebewaking met WAD voor stappen voor het wijzigen van uw om specifieke WadCfg prestatiemeters te verzamelen. Naslag Service Fabric prestatiemeters voor een lijst met prestatiemeters die u kunt verzamelen.
Als u een Application Insights-sink gebruikt, zoals beschreven in de onderstaande sectie, en u wilt dat deze metrische gegevens worden weergegeven in Application Insights, moet u de sinknaam toevoegen in de sectie 'sinks', zoals hierboven wordt weergegeven. Hiermee worden automatisch de prestatiemeters die afzonderlijk zijn geconfigureerd naar uw resource Application Insights verzenden.
Logboeken naar Application Insights
Een Application Insights configureren met WAD
Notitie
Dit is op dit moment alleen van toepassing op Windows-clusters.
Er zijn twee primaire manieren om gegevens van WAD naar Azure-toepassing Insights te verzenden. Dit wordt bereikt door een Application Insights-sink toe te voegen aan de WAD-configuratie, via de Azure Portal of via een Azure Resource Manager-sjabloon.
Een Application Insights-instrumentatiesleutel toevoegen bij het maken van een cluster in Azure Portal

Als Diagnostische gegevens is ingeschakeld bij het maken van een cluster, wordt een optioneel veld voor het invoeren van een Application Insights instrumentatiesleutel weer geven. Als u uw Application Insights-sleutel hier plakt, wordt de Application Insights-sink automatisch voor u geconfigureerd in de Resource Manager-sjabloon die wordt gebruikt om uw cluster te implementeren.
Voeg de Application Insights Sink toe aan de Resource Manager sjabloon
Voeg in de WadCfg van de Resource Manager-sjabloon een Sink toe door de volgende twee wijzigingen op te geven:
Voeg de sinkconfiguratie toe direct nadat het declareren van
DiagnosticMonitorConfigurationde is voltooid:"SinksConfig": { "Sink": [ { "name": "applicationInsights", "ApplicationInsights": "***ADD INSTRUMENTATION KEY HERE***" } ] }Neem de sink op in de
DiagnosticMonitorConfigurationdoor de volgende regel toe te voegen in de vanDiagnosticMonitorConfigurationWadCfg(net voordat de wordenEtwProvidersgedeclareerd):"sinks": "applicationInsights"
In beide voorgaande codefragmenten is de naam applicationInsights gebruikt om de sink te beschrijven. Dit is geen vereiste en zolang de naam van de sink is opgenomen in 'sinks', kunt u de naam instellen op een tekenreeks.
Op dit moment worden logboeken van het cluster als traceringen in Application Insights logboekviewer. Omdat de meeste traceringen die afkomstig zijn van het platform van het niveau 'Informatief' zijn, kunt u ook overwegen om de sinkconfiguratie te wijzigen zodat alleen logboeken van het type Waarschuwing of Fout worden weergegeven. U kunt dit doen door Kanalen toe te voegen aan uw sink, zoals wordt gedemonstreerd in dit artikel.
Notitie
Als u een onjuiste Application Insights-sleutel gebruikt in de portal of in uw Resource Manager-sjabloon, moet u de sleutel handmatig wijzigen en het cluster bijwerken/opnieuw toepassen.
Volgende stappen
Zodra u Azure Diagnostics correct hebt geconfigureerd, ziet u gegevens in uw opslagtabellen uit de ETW- en EventSource-logboeken. Als u ervoor kiest om Azure Monitor-logboeken, Kibana of een ander platform voor gegevensanalyse en visualisatie te gebruiken dat niet rechtstreeks is geconfigureerd in de Resource Manager-sjabloon, moet u het platform van uw keuze instellen om de gegevens uit deze opslagtabellen in te lezen. Dit doen voor Azure Monitor logboeken is relatief eenvoudig en wordt uitgelegd in Gebeurtenis- en logboekanalyse. Application Insights is in dit opzicht een beetje een speciaal geval, omdat deze kan worden geconfigureerd als onderdeel van de configuratie van de diagnostische extensie. Raadpleeg daarom het juiste artikel als u ai wilt gebruiken.
Notitie
Er is momenteel geen manier om de gebeurtenissen te filteren of op te maken die naar de tabel worden verzonden. Als u geen proces implementeert om gebeurtenissen uit de tabel te verwijderen, blijft de tabel groeien. Op dit moment is er een voorbeeld van een gegevensverzorgingsservice die wordt uitgevoerd in het Watchdog-voorbeeld.Het wordt aanbevolen er ook een voor uzelf te schrijven, tenzij er een goede reden is om logboeken op te slaan buiten een tijdsbestek van 30 of 90 dagen.
- Informatie over het verzamelen van prestatiemeters of logboeken met behulp van de diagnostische extensie
- Gebeurtenisanalyse en visualisatie met Application Insights
- Gebeurtenisanalyse en visualisatie met Azure Monitor logboeken
- Gebeurtenisanalyse en visualisatie met Application Insights
- Gebeurtenisanalyse en visualisatie met Azure Monitor logboeken