Monitorowanie delegowanych zasobów na dużą skalę

Jako dostawca usług możesz dołączyć wiele dzierżaw klientów do usługi Azure Lighthouse. Usługa Azure Lighthouse umożliwia dostawcom usług wykonywanie operacji na dużą skalę w kilku dzierżawach jednocześnie, dzięki czemu zadania zarządzania są wydajniejsze.

W tym temacie pokazano, jak używać dzienników usługi Azure Monitor w skalowalny sposób w dzierżawach klientów, którym zarządzasz. Chociaż w tym temacie odwołujemy się do dostawców usług i klientów, te wskazówki dotyczą również przedsiębiorstw korzystających z usługi Azure Lighthouse do zarządzania wieloma dzierżawami.

Uwaga

Upewnij się, że użytkownicy w dzierżawach zarządzania mają przyznane niezbędne role do zarządzania obszarami roboczymi usługi Log Analytics w delegowanych subskrypcjach klientów.

Tworzenie obszarów roboczych usługi Log Analytics

Aby zbierać dane, należy utworzyć obszary robocze usługi Log Analytics. Te obszary robocze usługi Log Analytics to unikatowe środowiska danych zebranych przez usługę Azure Monitor. Każdy obszar roboczy ma własne repozytorium danych i konfigurację, a źródła danych i rozwiązania są skonfigurowane do przechowywania danych w konkretnym obszarze roboczym.

Zalecamy utworzenie tych obszarów roboczych bezpośrednio w dzierżawach klienta. Dzięki temu ich dane pozostają w dzierżawach, a nie są eksportowane do Twoich. Tworzenie obszarów roboczych w dzierżawach klienta umożliwia scentralizowane monitorowanie wszystkich zasobów lub usług obsługiwanych przez usługę Log Analytics, co zapewnia większą elastyczność na temat typów monitorowanych danych. Obszary robocze utworzone w dzierżawach klientów są wymagane do zbierania informacji z ustawień diagnostycznych.

Porada

Każde konto usługi Automation używane do uzyskiwania dostępu do danych z obszaru roboczego usługi Log Analytics musi zostać utworzone w tej samej dzierżawie co obszar roboczy.

Obszar roboczy usługi Log Analytics można utworzyć przy użyciu Azure Portal przy użyciu szablonów usługi Azure Resource Manager lub przy użyciu Azure PowerShell.

Ważne

Jeśli wszystkie obszary robocze są tworzone w dzierżawach klientów, dostawcy zasobów Microsoft.Insights muszą być również zarejestrowani w subskrypcji w dzierżawie zarządzającej. Jeśli dzierżawa zarządzająca nie ma istniejącej subskrypcji platformy Azure, możesz ręcznie zarejestrować dostawcę zasobów przy użyciu następujących poleceń programu PowerShell:

$ManagingTenantId = "your-managing-Azure-AD-tenant-id"

# Authenticate as a user with admin rights on the managing tenant
Connect-AzAccount -Tenant $ManagingTenantId

# Register the Microsoft.Insights resource providers Application Ids
New-AzADServicePrincipal -ApplicationId 1215fb39-1d15-4c05-b2e3-d519ac3feab4 -Role Contributor
New-AzADServicePrincipal -ApplicationId 6da94f3c-0d67-4092-a408-bb5d1cb08d2d -Role Contributor
New-AzADServicePrincipal -ApplicationId ca7f3f0b-7d91-482c-8e09-c5d840d0eac5 -Role Contributor

Wdrażanie zasad dziennikających dane

Po utworzeniu obszarów roboczych usługi Log Analytics można wdrożyć Azure Policy w hierarchii klientów, aby dane diagnostyczne zostały wysłane do odpowiedniego obszaru roboczego w każdej dzierżawie. Dokładne wdrożone zasady mogą się różnić w zależności od typów zasobów, które chcesz monitorować.

Aby dowiedzieć się więcej na temat tworzenia zasad, zobacz Samouczek: tworzenie zasad i zarządzanie nimi w celu wymuszania zgodności. To narzędzie społeczności udostępnia skrypt, który ułatwia tworzenie zasad monitorowania wybranych typów zasobów.

Po określeniu, które zasady należy wdrożyć, można wdrożyć je w ramach delegowanych subskrypcji na dużą skalę.

Analizowanie zebranych danych

Po wdrożeniu zasad dane będą rejestrowane w obszarach roboczych usługi Log Analytics utworzonych w każdej dzierżawie klienta. Aby uzyskać szczegółowe informacje we wszystkich zarządzanych klientach, możesz użyć narzędzi, takich jak skoroszyty usługi Azure Monitor , aby zbierać i analizować informacje z wielu źródeł danych.

Wykonywanie zapytań dotyczących danych w obszarach roboczych klienta

Zapytania dzienników można uruchamiać w celu pobierania danych między obszarami roboczymi usługi Log Analytics w różnych dzierżawach klientów, tworząc unię obejmującą wiele obszarów roboczych. Po dołączeniu kolumny TenantID można zobaczyć, które wyniki należą do których dzierżaw.

Poniższe przykładowe zapytanie tworzy związek w tabeli AzureDiagnostics między obszarami roboczymi w dwóch oddzielnych dzierżawach klientów. Wyniki pokazują kolumny Category (Kategoria), ResourceGroup (Grupa zasobów) i TenantID (Identyfikator dzierżawy).

union AzureDiagnostics,
workspace("WS-customer-tenant-1").AzureDiagnostics,
workspace("WS-customer-tenant-2").AzureDiagnostics
| project Category, ResourceGroup, TenantId

Aby uzyskać więcej przykładów zapytań w wielu obszarach roboczych usługi Log Analytics, zobacz Tworzenie zapytania dziennika w wielu obszarach roboczych i aplikacjach w usłudze Azure Monitor.

Ważne

Jeśli używasz konta usługi Automation używanego do wykonywania zapytań dotyczących danych z obszaru roboczego usługi Log Analytics, to konto usługi Automation musi zostać utworzone w tej samej dzierżawie co obszar roboczy.

Wyświetlanie alertów dla klientów

Alerty dotyczące delegowanych subskrypcji można wyświetlić w dzierżawach klientów, którymi zarządzasz.

Z poziomu dzierżawy zarządzania możesz tworzyć alerty dziennika aktywności i zarządzać nimi w Azure Portal lub za pomocą interfejsów API i narzędzi do zarządzania.

Aby automatycznie odświeżyć alerty dla wielu klientów, użyj zapytania usługi Azure Resource Graph w celu filtrowania alertów. Możesz przypiąć zapytanie do pulpitu nawigacyjnego i wybrać wszystkich odpowiednich klientów i subskrypcji. Na przykład poniższe zapytanie wyświetli alerty o ważności 0 i 1, odświeżając co 60 minut.

alertsmanagementresources
| where type == "microsoft.alertsmanagement/alerts"
| where properties.essentials.severity =~ "Sev0" or properties.essentials.severity =~ "Sev1"
| where properties.essentials.monitorCondition == "Fired"
| where properties.essentials.startDateTime > ago(60m)
| project StartTime=properties.essentials.startDateTime,name,Description=properties.essentials.description, Severity=properties.essentials.severity, subscriptionId
| sort by tostring(StartTime)

Następne kroki