Omówienie sposobu integrowania aprowizacji z dziennikami usługi Azure Monitor

Aprowizowanie integruje się z dziennikami usługi Azure Monitor i usługą Log Analytics. Dzięki monitorowaniu platformy Azure możesz wykonywać takie czynności, jak tworzenie skoroszytów, nazywane również pulpitami nawigacyjnymi, przechowywanie dzienników aprowizacji przez 30 dni i tworzenie niestandardowych zapytań i alertów. W tym artykule omówiono sposób integrowania dzienników aprowizacji z dziennikami usługi Azure Monitor. Aby dowiedzieć się więcej na temat ogólnego sposobu działania dzienników aprowizacji, zobacz dzienniki aprowizacji.

Włączanie dzienników aprowizacji

Musisz już zapoznać się z monitorowaniem platformy Azure i usługą Log Analytics. Jeśli nie, przejdź, aby dowiedzieć się więcej o nich, a następnie wróć, aby dowiedzieć się więcej o dziennikach aprowizacji aplikacji. Aby dowiedzieć się więcej na temat monitorowania platformy Azure, zobacz Omówienie usługi Azure Monitor. Aby dowiedzieć się więcej o dziennikach usługi Azure Monitor i usłudze Log Analytics, zobacz Omówienie zapytań dzienników w usłudze Azure Monitor.

Po skonfigurowaniu monitorowania platformy Azure możesz włączyć dzienniki aprowizacji aplikacji. Opcja znajduje się na stronie Ustawienia diagnostyki.

Access diagnostic settings

Enable application provisioning logs

Uwaga

Jeśli niedawno zainicjowano aprowizację obszaru roboczego, może upłynąć trochę czasu, zanim będzie można wysyłać do niego dzienniki. Jeśli wystąpi błąd z informacją, że subskrypcja nie jest zarejestrowana do korzystania z microsoft.insights , sprawdź ponownie po kilku minutach.

Informacje o danych

Podstawowy strumień danych, który aprowizacja wysyła osoby przeglądające dzienniki, jest prawie identyczny. Dzienniki usługi Azure Monitor pobierają niemal ten sam strumień co interfejs użytkownika witryny Azure Portal i interfejs API platformy Azure. Istnieje tylko kilka różnic w polach dziennika, jak opisano w poniższej tabeli. Aby dowiedzieć się więcej o tych polach, zobacz List provisioningObjectSummary.

Dzienniki usługi Azure Monitor Interfejs użytkownika witryny Azure Portal Azure API
errorDescription reason resultDescription
status resultType resultType
activityDateTime TimeGenerated TimeGenerated

Skoroszyty usługi Azure Monitor

Skoroszyty usługi Azure Monitor zapewniają elastyczną kanwę do analizy danych. Zapewniają one również tworzenie rozbudowanych raportów wizualnych w witrynie Azure Portal. Aby dowiedzieć się więcej, zobacz Omówienie skoroszytów usługi Azure Monitor.

Aprowizowanie aplikacji jest dostarczane z zestawem wstępnie utworzonych skoroszytów. Można je znaleźć na stronie Skoroszyty. Aby wyświetlić dane, upewnij się, że wszystkie filtry (timeRange, jobID, appName) są wypełnione. Upewnij się również, że aplikacja została aprowizowana. W przeciwnym razie nie ma żadnych danych w dziennikach.

Application provisioning workbooks

Application provisioning dashboard

Zapytania niestandardowe

Możesz tworzyć zapytania niestandardowe i wyświetlać dane na pulpitach nawigacyjnych platformy Azure. Aby dowiedzieć się, jak to zrobić, zobacz Tworzenie i udostępnianie pulpitów nawigacyjnych danych usługi Log Analytics. Pamiętaj również, aby zapoznać się z omówieniem zapytań dzienników w usłudze Azure Monitor.

Poniżej przedstawiono kilka przykładów, które umożliwiają rozpoczęcie aprowizacji aplikacji.

Wykonaj zapytanie dotyczące dzienników dla użytkownika na podstawie ich identyfikatora w systemie źródłowym:

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

Podsumowywanie liczby na kod błędu:

AADProvisioningLogs
| summarize count() by ErrorCode = ResultSignature

Podsumowywanie liczby zdarzeń dziennie według akcji:

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

Weź 100 zdarzeń i właściwości klucza projektu:

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

Pobieranie grup z pominiętymi członkami z powodu problemów z rozwiązywaniem odwołań.

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

Podsumowanie akcji według aplikacji.

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

Identyfikowanie skoków liczby określonych operacji.

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

Alerty niestandardowe

Usługa Azure Monitor umożliwia konfigurowanie alertów niestandardowych, dzięki czemu można otrzymywać powiadomienia o kluczowych zdarzeniach związanych z aprowizowaniem. Możesz na przykład otrzymywać alert dotyczący skoków liczby niepowodzeń. A może skoki liczby wyłączeń lub usunięcia. Innym przykładem, w którym można otrzymywać alerty, jest brak jakiejkolwiek aprowizacji, co oznacza, że coś jest nie tak.

Aby dowiedzieć się więcej na temat alertów, zobacz Alerty dzienników usługi Azure Monitor.

Alert, gdy wystąpi wzrost liczby błędów. Zastąp identyfikator zadania identyfikatorem jobID dla aplikacji.

Alert when there's a spike in failures.

Może wystąpić problem, który spowodował, że usługa aprowizacji przestała działać. Użyj następującego alertu, aby wykryć, kiedy nie ma zdarzeń aprowizacji w danym przedziale czasu.

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

Alert po gwałtownym wzroście liczby wyłączeń lub usunięcia.

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

Współtworzenie społeczności

Korzystamy z podejścia open source i opartego na społeczności do aprowizacji zapytań i pulpitów nawigacyjnych aplikacji. Utwórz zapytanie, alert lub skoroszyt, który uważasz za przydatne dla innych użytkowników, a następnie opublikuj je w repozytorium GitHub AzureMonitorCommunity. Zastrzelij nam wiadomość e-mail z linkiem. Przeglądamy i publikujemy zapytania i pulpity nawigacyjne w usłudze, aby inne osoby również korzystały. Skontaktuj się z nami pod adresem provisioningfeedback@microsoft.com.

Następne kroki