Logboekregistratie van containergroepen en exemplaren met Azure Monitor-logboeken
Log Analytics-werkruimten bieden een centrale locatie voor het opslaan en opvragen van logboekgegevens, niet alleen vanuit Azure-resources, maar ook on-premises resources en resources in andere clouds. Azure Container Instances bevat ingebouwde ondersteuning voor het verzenden van logboeken en gebeurtenisgegevens naar Azure Monitor-logboeken.
Als u logboek- en gebeurtenisgegevens van een containergroep wilt verzenden naar Azure Monitor-logboeken, geeft u een bestaande Log Analytics-werkruimte-id en werkruimtesleutel op bij het configureren van een containergroep.
In de volgende secties wordt beschreven hoe u een containergroep met logboekregistratie maakt en hoe u query's uitvoert op logboeken. U kunt ook een containergroep bijwerken met een werkruimte-id en werkruimtesleutel om logboekregistratie in te schakelen.
Notitie
Dit artikel is onlangs bijgewerkt waarbij Log Analytics is vervangen door de term Azure Monitor-logboeken. Logboekgegevens worden nog steeds opgeslagen in een Log Analytics-werkruimte, en worden nog steeds verzameld en geanalyseerd met dezelfde Log Analytics-service. De terminologie wordt bijgewerkt om de rol van logboeken in Azure Monitor beter te weerspiegelen. Zie Wijzigingen in Azure Monitor-terminologie voor meer informatie.
Vereisten
Voor het inschakelen van logboekregistratie voor uw containerexemplaren hebt u het volgende nodig:
Log Analytics-referenties verkrijgen
Azure Container Instances heeft toestemming nodig om gegevens te verzenden naar uw Log Analytics-werkruimte. U kunt deze machtiging verlenen en de mogelijkheid tot logboekregistratie inschakelen als u de Log Analytics-werkruimte-id en een van de sleutels ervan opgeeft (primaire of secundaire) op het moment dat u de containergroep maakt.
De Log Analytics-werkruimte-id en de primaire sleutel verkrijgt u als volgt:
- Navigeer in Azure Portal naar uw Log Analytics-werkruimte.
- Selecteer onder Instellingen Agents-beheer
- Noteer:
- Werkruimte-id
- Primaire sleutel
Containergroep maken
Nu dat u de Log Analytics-werkruimte-id en de primaire sleutel hebt, kunt u een containergroep maken die geschikt is voor logboekregistratie.
In de volgende voorbeelden ziet u twee manieren om een containergroep te maken die bestaat uit één fluentd-container : Azure CLI en Azure CLI met een YAML-sjabloon. De fluentd-container produceert verschillende uitvoerregels in de standaardconfiguratie. Omdat deze uitvoer naar de Log Analytics-werkruimte wordt verzonden, is deze heel geschikt is om te illustreren hoe logboeken kunnen worden weergegeven en hoe er query's op kunnen worden uitgevoerd.
Implementeren met Azure CLI
Als u Azure CLI wilt gebruiken om te implementeren, moet u de parameters --log-analytics-workspace
en --log-analytics-workspace-key
opgeven in de opdracht az container create. Vervang de twee werkruimtewaarden door de waarden die u hebt verkregen in de vorige stap (en werk de naam van de resourcegroep bij) voordat u de volgende opdracht gaat uitvoeren.
Notitie
In het volgende voorbeeld wordt een openbare containerinstallatiekopie opgehaald uit Docker Hub. U wordt aangeraden een pull-geheim in te stellen voor verificatie met behulp van een Docker Hub-account in plaats van een anonieme pull-aanvraag te maken. Als u de betrouwbaarheid wilt verbeteren bij het werken met openbare inhoud, importeert en beheert u de installatiekopieën in een privé-Azure-containerregister. Meer informatie over het werken met openbare afbeeldingen.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Implementeren met YAML
Gebruik deze methode als u liever containergroepen met YAML wilt implementeren. Met de volgende YAML wordt een containergroep met een enkele container gedefinieerd. Kopieer de YAML naar een nieuw bestand en vervang LOG_ANALYTICS_WORKSPACE_ID
en LOG_ANALYTICS_WORKSPACE_KEY
door de waarden die u hebt verkregen in de vorige stap. Sla het bestand op als deploy-aci.yaml.
Notitie
In het volgende voorbeeld wordt een openbare containerinstallatiekopie opgehaald uit Docker Hub. U wordt aangeraden een pull-geheim in te stellen voor verificatie met behulp van een Docker Hub-account in plaats van een anonieme pull-aanvraag te maken. Als u de betrouwbaarheid wilt verbeteren bij het werken met openbare inhoud, importeert en beheert u de installatiekopieën in een privé-Azure-containerregister. Meer informatie over het werken met openbare afbeeldingen.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Voer vervolgens de volgende opdracht uit om de containergroep te implementeren. Vervang myResourceGroup
door een resourcegroep in uw abonnement (of maak eerst een resourcegroep met de naam 'myResourceGroup'):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Kort nadat u de opdracht hebt opgegeven, zou u een reactie van Azure met implementatiedetails moeten ontvangen.
Logboeken weergeven
Nadat u de containergroep hebt geïmplementeerd, kan het enkele minuten (maximaal 10) duren voordat de eerste logboekvermeldingen worden weergegeven in Azure Portal.
Ga als volgt te werk om de logboeken van de containergroep in de tabel weer te ContainerInstanceLog_CL
geven:
- Navigeer in Azure Portal naar uw Log Analytics-werkruimte.
- Selecteer logboeken onder Algemeen
- Typ de volgende query:
ContainerInstanceLog_CL | limit 50
- Uitvoeren selecteren
U ziet nu enkele resultaten die door de query worden weergegeven. Als u eerst geen resultaten ziet, wacht u enkele minuten en selecteert u vervolgens de knop Uitvoeren om de query opnieuw uit te voeren. Logboekvermeldingen worden standaard weergegeven in tabelindeling . U kunt vervolgens een rij uitbreiden om de inhoud van een afzonderlijke logboekvermelding te zien.
Gebeurtenissen weergeven
U kunt ook gebeurtenissen voor containerinstanties weergeven in Azure Portal. Gebeurtenissen omvatten het tijdstip waarop het exemplaar wordt gemaakt en wanneer deze wordt gestart. De gebeurtenisgegevens in de ContainerEvent_CL
tabel weergeven:
- Navigeer in Azure Portal naar uw Log Analytics-werkruimte.
- Selecteer logboeken onder Algemeen
- Typ de volgende query:
ContainerEvent_CL | limit 50
- Uitvoeren selecteren
U ziet nu enkele resultaten die door de query worden weergegeven. Als u eerst geen resultaten ziet, wacht u enkele minuten en selecteert u vervolgens de knop Uitvoeren om de query opnieuw uit te voeren. Standaard worden vermeldingen weergegeven in tabelindeling . Vervolgens kunt u een rij uitvouwen om de inhoud van een afzonderlijke vermelding weer te geven.
Query's uitvoeren op containerlogboeken
Azure Monitor-logboeken bevat een uitgebreide querytaal voor het ophalen van gegevens uit mogelijk duizenden regels aan logboekuitvoer.
De basisstructuur van een query is de brontabel (in dit artikel ContainerInstanceLog_CL
of ContainerEvent_CL
) gevolgd door een reeks operatoren gescheiden door het pipeteken (|
). U kunt verschillende operatoren aan elkaar koppelen om de resultaten te verfijnen en geavanceerde functies uit te voeren.
Als u voorbeeldqueryresultaten wilt zien, plakt u de volgende query in het tekstvak van de query en selecteert u de knop Uitvoeren om de query uit te voeren. Deze query geeft alle logboekvermeldingen weer waarvan het veld 'Bericht' het woord 'waarschuwen' bevat:
ContainerInstanceLog_CL
| where Message contains "warn"
Complexere query's worden ook ondersteund. Met deze query worden bijvoorbeeld de logboekvermeldingen voor de containergroep 'mycontainergroup001' weergegeven die het afgelopen uur zijn gegenereerd:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Logboekschema
Notitie
Sommige van de kolommen in de volgende tabel bestaan alleen als onderdeel van het schema en bevatten geen gegevens die in logboeken worden verzonden. Deze kolommen worden aangeduid met een beschrijving van 'Leeg'.
ContainerInstanceLog_CL
Column | Type | Description |
---|---|---|
Computer | tekenreeks | Leeg |
ContainerGroup_s | tekenreeks | De naam van de containergroep die is gekoppeld aan de record |
ContainerID_s | tekenreeks | Een unieke id voor de container die is gekoppeld aan de record |
ContainerImage_s | tekenreeks | De naam van de containerinstallatiekopieën die aan de record zijn gekoppeld |
Location_s | tekenreeks | De locatie van de resource die is gekoppeld aan de record |
Bericht | tekenreeks | Indien van toepassing, het bericht van de container |
OSType_s | tekenreeks | De naam van het besturingssysteem waarop de container is gebaseerd |
RawData | tekenreeks | Leeg |
ResourceGroup | tekenreeks | Naam van de resourcegroep waaraan de record is gekoppeld |
Source_s | tekenreeks | Naam van het logboekregistratieonderdeel LoggingAgent |
SubscriptionId | tekenreeks | Een unieke id voor het abonnement waaraan de record is gekoppeld |
TimeGenerated | datetime | Tijdstempel wanneer de gebeurtenis is gegenereerd door de Azure-service die de aanvraag verwerkt die overeenkomt met de gebeurtenis |
Type | tekenreeks | De naam van de tabel |
_ResourceId | tekenreeks | Een unieke id voor de resource waaraan de record is gekoppeld |
_SubscriptionId | tekenreeks | Een unieke id voor het abonnement waaraan de record is gekoppeld |
ContainerEvent_CL
Column | Type | Description |
---|---|---|
Computer | tekenreeks | Leeg |
ContainerGroupInstanceId_g | tekenreeks | Een unieke id voor de containergroep die is gekoppeld aan de record |
ContainerGroup_s | tekenreeks | De naam van de containergroep die is gekoppeld aan de record |
ContainerName_s | tekenreeks | De naam van de container die is gekoppeld aan de record |
Count_d | werkelijk | Hoe vaak de gebeurtenis heeft plaatsgevonden sinds de laatste poll |
FirstTimestamp_t | datetime | De tijdstempel van de eerste keer dat de gebeurtenis heeft plaatsgevonden |
Location_s | tekenreeks | De locatie van de resource die is gekoppeld aan de record |
Bericht | tekenreeks | Indien van toepassing, het bericht van de container |
OSType_s | tekenreeks | De naam van het besturingssysteem waarop de container is gebaseerd |
RawData | tekenreeks | Leeg |
Reason_s | tekenreeks | De huidige status van de containergroep |
ResourceGroup | tekenreeks | De naam van de resourcegroep waaraan de record is gekoppeld |
SubscriptionId | tekenreeks | Een unieke id voor het abonnement waaraan de record is gekoppeld |
TimeGenerated | datetime | Tijdstempel wanneer de gebeurtenis is gegenereerd door de Azure-service die de aanvraag verwerkt die overeenkomt met de gebeurtenis |
Type | tekenreeks | De naam van de tabel |
_ResourceId | tekenreeks | Een unieke id voor de resource waaraan de record is gekoppeld |
_SubscriptionId | tekenreeks | Een unieke id voor het abonnement waaraan de record is gekoppeld |
Diagnostische Instellingen gebruiken
Diagnostische Instellingen voor containergroepen is een preview-functie en kan worden ingeschakeld via preview-functiesopties in Azure Portal. Zodra deze functie is ingeschakeld voor een abonnement, kan diagnostische Instellingen worden toegepast op een containergroep. Als u diagnostische Instellingen toepast, wordt een containergroep opnieuw opgestart.
U kunt bijvoorbeeld de opdracht New-AzDiagnosticSetting gebruiken om een diagnostisch Instellingen object toe te passen op een containergroep.
$log = @()
$log += New-AzDiagnosticSettingLogSettingsObject -Enabled $true -Category ContainerInstanceLog -RetentionPolicyDay 7 -RetentionPolicyEnabled $true
New-AzDiagnosticSetting -Name test-setting -ResourceId <container-group-resource-id> -WorkspaceId <log-analytics-workspace-id> -Log $log
Volgende stappen
Azure Monitor-logboeken
Voor meer informatie over het uitvoeren van query's op logboeken en het configureren van waarschuwingen in Azure Monitor-logboeken, zie:
CPU en geheugen van een container bewaken
Voor informatie over het bewaken van CPU- en geheugenresources van containerinstanties, zie: