Grundlegendes zur Integration der Bereitstellung in Azure Monitor-Protokolle

Die Bereitstellung ist mit Azure Monitor-Protokollen und Log Analytics integriert. Mit der Azure-Überwachung (Azure Monitor) können Sie beispielsweise Arbeitsmappen erstellen, die auch als Dashboards bezeichnet werden, Bereitstellungsprotokolle länger als 30 Tage speichern und benutzerdefinierte Abfragen und Warnungen erstellen. In diesem Artikel wird erläutert, wie Bereitstellungsprotokolle in Azure Monitor-Protokolle integriert werden. Weitere Informationen zur allgemeinen Funktionsweise von Bereitstellungsprotokollen finden Sie unter Bereitstellungsprotokolle.

Aktivieren von Bereitstellungsprotokollen

Sie sollten bereits mit Azure Monitor und Log Analytics vertraut sein. Wenn dies nicht der Fall ist, machen Sie sich zunächst mit diesen Features vertraut, bevor Sie sich über die Protokolle für die Anwendungsbereitstellung informieren. Weitere Informationen zur Azure-Überwachung finden Sie unter Azure Monitor – Übersicht. Weitere Informationen zu Azure Monitor-Protokollen und Log Analytics finden Sie unter Übersicht über Protokollabfragen in Azure Monitor.

Nachdem Sie die Azure-Überwachung (Azure Monitor) konfiguriert haben, können Sie Protokolle für die Anwendungsbereitstellung aktivieren. Die Option befindet sich auf der Seite Diagnoseeinstellungen.

Access diagnostic settings

Enable application provisioning logs

Hinweis

Wenn Sie erst kürzlich einen Arbeitsbereich bereitgestellt haben, kann es einige Zeit dauern, bis Sie Protokolle an diesen senden können. Wenn eine Fehlermeldung angezeigt wird, dass das Abonnement nicht für die Verwendung von microsoft.insights registriert ist, versuchen Sie es nach einigen Minuten erneut.

Grundlegendes zu den Daten

Der zugrunde liegende Datenstrom, der über die Bereitstellung an Protokollanzeigen gesendet wird, ist nahezu identisch. Azure Monitor-Protokolle empfangen fast denselben Datenstrom wie die Benutzeroberfläche des Azure-Portals und die Azure API. Wie in der folgenden Tabelle aufgeführt, weisen die Protokollfelder nur einige wenige Unterschiede auf. Weitere Informationen zu diesen Feldern finden Sie unter ProvisioningObjectSummary auflisten.

Azure Monitor-Protokolle Verwalten des Zugriffs auf Azure-Ressourcen mit RBAC und dem Azure-Portal Azure API
errorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Azure Monitor-Arbeitsmappen

Azure Monitor-Arbeitsmappen bieten eine flexible Canvas für die Datenanalyse. Sie ermöglichen außerdem die Erstellung umfassender visueller Berichte im Azure-Portal. Weitere Informationen finden Sie unter Übersicht über Azure Monitor-Arbeitsmappen.

Die Anwendungsbereitstellung umfasst eine Reihe vorkonfigurierter Arbeitsmappen. Diese finden Sie auf der Seite „Arbeitsmappen“. Stellen Sie zum Anzeigen der Daten sicher, dass alle Filter (timeRange, jobID, appName) ausgefüllt sind. Vergewissern Sie sich außerdem, dass die App bereitgestellt wurde, andernfalls sind keine Daten in den Protokollen enthalten.

Application provisioning workbooks

Application provisioning dashboard

Benutzerdefinierte Abfragen

Sie können benutzerdefinierte Abfragen erstellen und die Daten in Azure-Dashboards anzeigen. Informationen dazu finden Sie unter Erstellen und Freigeben von Dashboards von Log Analytics-Daten. Sehen Sie sich auch die Übersicht über Protokollabfragen in Azure Monitor an.

Nachfolgend finden Sie einige Beispiele für den Einstieg in die Anwendungsbereitstellung.

Abfragen der Protokolle für einen Benutzer basierend auf der jeweiligen ID im Quellsystem:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| where tostring(SourceIdentity.Id) == "49a4974bb-5011-415d-b9b8-78caa7024f9a"

Zusammenfassen der Anzahl pro Fehlercode:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Zusammenfassen der Anzahl der Ereignisse pro Tag nach Aktion:

AADProvisioningLogs
| where TimeGenerated > ago(7d)
| summarize count() by Action, bin(TimeGenerated, 1d)

Erfassen von 100 Ereignissen und Projektschlüsseleigenschaften:

AADProvisioningLogs
| extend SourceIdentity = parse_json(SourceIdentity)
| extend TargetIdentity = parse_json(TargetIdentity)
| extend ServicePrincipal = parse_json(ServicePrincipal)
| where tostring(SourceIdentity.identityType) == "Group"
| project tostring(ServicePrincipal.Id), tostring(ServicePrincipal.Name), ModifiedProperties, JobId, Id, CycleId, ChangeId, Action, SourceIdentity.identityType, SourceIdentity.details, TargetIdentity.identityType, TargetIdentity.details, ProvisioningSteps
| take 100

Rufen Sie Gruppen mit übersprungenen Mitgliedern aufgrund von Problemen bei der Auflösung von Referenzen ab.

AADProvisioningLogs
| where TimeGenerated >= ago(10d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend SourceIdentity = parse_json(SourceIdentity)
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| where tostring(SourceIdentity.identityType) == "Group"
| where ProvisioningSteps matches regex "UnableToResolveReferenceAttributeValue"
| parse tostring(ProvisioningSteps.[2].description) with "We were unable to assign " userObjectId " as the members of " groupDisplayName "." *
| project groupDisplayName, userObjectId,  JobId
| take 100

Fassen Sie die Aktionen nach Anwendungen zusammen.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "Azure2Azure.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, JobId
| order by JobId asc
| take 5

Identifizieren Sie Spitzen bei bestimmten Vorgängen.

AADProvisioningLogs
| where TimeGenerated > ago(30d)
| where JobId == "scim.73f0883f-d67d-4af1-ac8a-45367f8982e0.5ef3be57-f45f-451g-88c4-68a7fda680bb" // Customize by adding a specific app JobId
| extend ProvisioningSteps = parse_json(ProvisioningSteps)
| extend eventName = tostring(ProvisioningSteps.[-1].name)
| summarize count() by eventName, bin(TimeGenerated, 1d)
| render timechart

Benutzerdefinierte Warnungen

Mit Azure Monitor können Sie benutzerdefinierte Warnungen konfigurieren, damit Sie über wichtige Ereignisse in Verbindung mit der Bereitstellung benachrichtigt werden. So können Sie beispielsweise Warnungen über Spitzen bei Ausfällen oder über Spitzen bei Deaktivierungen oder Löschvorgängen erhalten. Ein weiteres Beispiel ist eine Warnung bei einer fehlenden Bereitstellung, die auf einen möglichen Fehler hinweist.

Weitere Informationen zu Warnungen finden sie unter Erstellen, Anzeigen und Verwalten von Protokollwarnungen mithilfe von Azure Monitor.

Warnung über Spitze bei Ausfällen Ersetzen Sie die jobID durch die Auftrags-ID Ihrer Anwendung.

Alert when there's a spike in failures.

Möglicherweise ist ein Problem aufgetreten, das dazu führt, dass der Bereitstellungsdienst nicht mehr ausgeführt wird. Verwenden Sie die folgende Warnung, um zu ermitteln, wann während eines bestimmten Zeitintervalls keine Bereitstellungsereignisse auftreten.

There may be an issue that caused the provisioning service to stop running.

Warnung über eine Spitze bei Deaktivierungen oder Löschvorgängen

Alert when there's a spike in disables or deletes.

Beiträge aus der Community

Wir verfolgen bei Abfragen und Dashboards für die Anwendungsbereitstellung einen Open-Source- und communitybasierten Ansatz. Erstellen Sie eine Abfrage, Warnung oder Arbeitsmappe, die für andere nützlich ist, und veröffentlichen Sie sie dann im GitHub-Repository AzureMonitorCommunity. Senden Sie uns eine E-Mail mit dem entsprechenden Link. Wir überprüfen und veröffentlichen Abfragen und Dashboards für den Dienst, sodass auch andere davon profitieren. Wenden Sie sich unter der Adresse provisioningfeedback@microsoft.comdurchführen.

Nächste Schritte