Tworzenie ustawień diagnostycznych na dużą skalę przy użyciu zasad i inicjatyw platformy Azure

Aby monitorować zasoby platformy Azure, należy utworzyć ustawienia diagnostyczne dla każdego zasobu. Ten proces może być trudny do zarządzania, gdy masz wiele zasobów. Aby uprościć proces tworzenia i stosowania ustawień diagnostycznych na dużą skalę, użyj usługi Azure Policy, aby automatycznie generować ustawienia diagnostyczne dla nowych i istniejących zasobów.

Każdy typ zasobu platformy Azure ma unikatowy zestaw kategorii wymienionych w ustawieniach diagnostycznych. Każdy typ zasobu wymaga zatem oddzielnej definicji zasad. Niektóre typy zasobów mają wbudowane definicje zasad, które można przypisać bez modyfikacji. W przypadku innych typów zasobów można utworzyć definicję niestandardową.

Grupy kategorii dzienników

Grupy kategorii dzienników grupują podobne typy dzienników. Grupy kategorii ułatwiają odwoływanie się do wielu dzienników w jednym poleceniu. Istnieje grupa kategorii allLogs zawierająca wszystkie dzienniki. Istnieje również grupa kategorii inspekcji zawierająca wszystkie dzienniki inspekcji. Za pomocą polecenia do grupy kategorii można zdefiniować zasady, które dynamicznie aktualizują się w miarę dodawania nowych kategorii dzienników do grupy.

Wbudowane definicje zasad dla usługi Azure Monitor

Istnieją zazwyczaj trzy wbudowane definicje zasad dla każdego typu zasobu, odpowiadające trzem lokalizacjom docelowym do wysyłania diagnostyki do:

  • Obszary robocze usługi Log Analytics
  • Konta usługi Azure Storage
  • Event Hubs

Przypisz zasady dla typu zasobu zgodnie z potrzebami miejsc docelowych.

Opracowano zestaw wbudowanych zasad i inicjatyw opartych na grupach kategorii dziennika inspekcji, które ułatwiają stosowanie ustawień diagnostycznych tylko w kilku krokach. Aby uzyskać więcej informacji, zobacz Włączanie ustawień diagnostyki według grupy kategorii przy użyciu wbudowanych zasad.

Aby uzyskać pełną listę wbudowanych zasad dla usługi Azure Monitor, zobacz Wbudowane definicje usługi Azure Policy dla usługi Azure Monitor

Definicje zasad niestandardowych

W przypadku typów zasobów, które nie mają wbudowanych zasad, należy utworzyć niestandardową definicję zasad. Możesz ręcznie utworzyć nowe zasady w witrynie Azure Portal, kopiując istniejące wbudowane zasady, a następnie modyfikując je dla typu zasobu. Alternatywnie utwórz zasady programowo przy użyciu skryptu w Galeria programu PowerShell.

Skrypt Create-AzDiagPolicy tworzy pliki zasad dla określonego typu zasobu, który można zainstalować przy użyciu programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Poniższa procedura umożliwia utworzenie niestandardowej definicji zasad dla ustawień diagnostycznych:

  1. Upewnij się, że masz zainstalowany program Azure PowerShell .

  2. Zainstaluj skrypt przy użyciu następującego polecenia:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Uruchom skrypt przy użyciu parametrów, aby określić miejsce wysyłania dzienników. Zostanie wyświetlony monit o określenie subskrypcji i typu zasobu.

    Aby na przykład utworzyć definicję zasad, która wysyła dzienniki do obszaru roboczego usługi Log Analytics i centrum zdarzeń, użyj następującego polecenia:

    Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    

    Alternatywnie możesz określić subskrypcję i typ zasobu w poleceniu . Aby na przykład utworzyć definicję zasad, która wysyła dzienniki do obszaru roboczego usługi Log Analytics i centrum zdarzeń dla baz danych programu SQL Server, użyj następującego polecenia:

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. Skrypt tworzy oddzielne foldery dla każdej definicji zasad. Każdy folder zawiera trzy pliki o nazwach azurepolicy.json, azurepolicy.rules.json i azurepolicy.parameters.json. Jeśli chcesz ręcznie utworzyć zasady w witrynie Azure Portal, możesz skopiować i wkleić zawartość pliku azurepolicy.json , ponieważ zawiera całą definicję zasad. Użyj dwóch pozostałych plików za pomocą programu PowerShell lub interfejsu wiersza polecenia platformy Azure, aby utworzyć definicję zasad z poziomu wiersza polecenia.

    W poniższych przykładach pokazano, jak zainstalować definicję zasad zarówno z programu PowerShell, jak i interfejsu wiersza polecenia platformy Azure. Każdy przykład zawiera metadane określające kategorię Monitorowanie , aby pogrupować nową definicję zasad z wbudowanymi definicjami zasad.

    New-AzPolicyDefinition -name "Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace" -policy .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json -parameter .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json -mode All -Metadata '{"category":"Monitoring"}'
    
    az policy definition create --name 'deploy-diag-setting-sql-database--workspace' --display-name 'Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace'  --rules 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json' --params 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json' --subscription 'AzureMonitor_Docs' --mode All
    

Inicjatywa

Zamiast tworzyć przypisanie dla każdej definicji zasad, typową strategią jest utworzenie inicjatywy obejmującej definicje zasad służące do tworzenia ustawień diagnostycznych dla każdej usługi platformy Azure. Utwórz przypisanie między inicjatywą a grupą zarządzania, subskrypcją lub grupą zasobów w zależności od sposobu zarządzania środowiskiem. Ta strategia oferuje następujące korzyści:

  • Utwórz pojedyncze przypisanie dla inicjatywy zamiast wielu przypisań dla każdego typu zasobu. Użyj tej samej inicjatywy dla wielu grup monitorowania, subskrypcji lub grup zasobów.
  • Zmodyfikuj inicjatywę, gdy musisz dodać nowy typ zasobu lub miejsce docelowe. Na przykład początkowe wymagania mogą dotyczyć wysyłania danych tylko do obszaru roboczego usługi Log Analytics, ale później chcesz dodać centrum zdarzeń. Zmodyfikuj inicjatywę zamiast tworzyć nowe przypisania.

Aby uzyskać szczegółowe informacje na temat tworzenia inicjatywy, zobacz Tworzenie i przypisywanie definicji inicjatywy. Rozważ następujące rekomendacje:

  • Ustaw pozycję Kategoria na Monitorowanie , aby pogrupować je z powiązanymi wbudowanymi i niestandardowymi definicjami zasad.
  • Zamiast określać szczegóły obszaru roboczego usługi Log Analytics i centrum zdarzeń dla definicji zasad uwzględnionych w inicjatywie, użyj wspólnego parametru inicjatywy. Ten parametr umożliwia łatwe określenie wspólnej wartości dla wszystkich definicji zasad i zmianę tej wartości w razie potrzeby.

Screenshot that shows settings for initiative definition.

Przypisywanie

Przypisz inicjatywę do grupy zarządzania platformy Azure, subskrypcji lub grupy zasobów w zależności od zakresu zasobów do monitorowania. Grupa zarządzania jest przydatna do określania zakresu zasad, zwłaszcza jeśli organizacja ma wiele subskrypcji.

Screenshot of the settings for the Basics tab in the Assign initiative section of the Diagnostic settings to Log Analytics workspace in the Azure portal.

Używając parametrów inicjatywy, można określić obszar roboczy lub inne szczegóły raz dla wszystkich definicji zasad w inicjatywie.

Screenshot that shows initiative parameters on the Parameters tab.

Korekty

Inicjatywa zostanie zastosowana do każdej maszyny wirtualnej podczas jej tworzenia. Zadanie korygowania wdraża definicje zasad w inicjatywie dla istniejących zasobów, dzięki czemu można utworzyć ustawienia diagnostyczne dla wszystkich zasobów, które zostały już utworzone.

Podczas tworzenia przypisania przy użyciu witryny Azure Portal możesz jednocześnie utworzyć zadanie korygowania. Aby uzyskać szczegółowe informacje na temat korygowania, zobacz Korygowanie niezgodnych zasobów za pomocą usługi Azure Policy .

Screenshot that shows initiative remediation for a Log Analytics workspace.

Rozwiązywanie problemów

Kategoria metryki nie jest obsługiwana

Podczas wdrażania ustawienia diagnostycznego jest wyświetlany komunikat o błędzie podobny do kategorii Metryka "xxxx" nie jest obsługiwany. Ten błąd może wystąpić, mimo że poprzednie wdrożenie zakończyło się pomyślnie.

Problem występuje podczas korzystania z szablonu usługi Resource Manager, interfejsu API REST, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Ustawienia diagnostyczne utworzone za pośrednictwem witryny Azure Portal nie mają wpływu na obsługiwane nazwy kategorii.

Problem jest spowodowany niedawną zmianą bazowego interfejsu API. Kategorie metryk inne niż "AllMetrics" nie są obsługiwane i nigdy nie były obsługiwane z wyjątkiem kilku określonych usług platformy Azure. W przeszłości inne nazwy kategorii były ignorowane podczas wdrażania ustawienia diagnostycznego. Zaplecze usługi Azure Monitor przekierowało te kategorie do "AllMetrics". Od lutego 2021 r. zaplecze zostało zaktualizowane w celu potwierdzenia, że podana kategoria metryk jest dokładna. Ta zmiana spowodowała niepowodzenie niektórych wdrożeń.

Jeśli wystąpi ten błąd, zaktualizuj wdrożenia, aby zastąpić wszystkie nazwy kategorii metryk ciągiem "AllMetrics", aby rozwiązać ten problem. Jeśli wdrożenie wcześniej dodano wiele kategorii, należy zachować tylko jedną z odwołania "AllMetrics". Jeśli problem będzie nadal występować, skontaktuj się z pomoc techniczna platformy Azure za pośrednictwem witryny Azure Portal.

Ustawienie znika z powodu znaków innych niż ASCII w identyfikatorze resourceID

Ustawienia diagnostyczne nie obsługują identyfikatorów zasobów z znakami innymi niż ASCII (na przykład Preproducción). Ponieważ nie można zmienić nazwy zasobów na platformie Azure, jedyną opcją jest utworzenie nowego zasobu bez znaków innych niż ASCII. Jeśli znaki znajdują się w grupie zasobów, możesz przenieść pod nią zasoby do nowej. W przeciwnym razie należy ponownie utworzyć zasób.

Następne kroki