Udostępnij za pośrednictwem


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 w skali wielu dzierżaw jednocześnie, co usprawnia wykonywanie zadań związanych z zarządzaniem.

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ądzających 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 dla 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 klientów. 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 dowolnych zasobów lub usług obsługiwanych przez usługę Log Analytics, co zapewnia większą elastyczność w zakresie typów monitorowanych danych. Obszary robocze utworzone w dzierżawach klientów są wymagane do zbierania informacji z ustawień diagnostycznych.

Napiwek

Każde konto automatyzacji 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 witryny Azure Portal, szablonów usługi Azure Resource Manager lub programu 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 rejestrujących dane

Po utworzeniu obszarów roboczych usługi Log Analytics można wdrożyć usługę Azure Policy w hierarchii klientów, aby dane diagnostyczne zostały wysłane do odpowiedniego obszaru roboczego w każdej dzierżawie. Dokładne zasady, które wdrażasz, 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 mają zostać wdrożone, 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ć wgląd we wszystkich zarządzanych klientów, 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 między obszarami roboczymi klientów

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 unię w tabeli AzureDiagnostics w obszarach roboczych w dwóch oddzielnych dzierżawach klientów. W wynikach są wyświetlane 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 automatyzacji 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 wśród klientów

Alerty dotyczące delegowanych subskrypcji można wyświetlać w zarządzanych dzierżawach klientów.

Z poziomu dzierżawy zarządzającej możesz tworzyć, wyświetlać i zarządzać alertami dziennika aktywności w witrynie 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 , aby filtrować alerty. Możesz przypiąć zapytanie do pulpitu nawigacyjnego i wybrać wszystkich odpowiednich klientów i subskrypcji. Na przykład poniższe zapytanie będzie wyświetlać alerty o ważności 0 i 1, odświeżane 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