Creación de una configuración de diagnóstico a gran escala mediante directivas e iniciativas de Azure

Para supervisar los recursos de Azure, es necesario crear la configuración de diagnóstico para cada recurso. Este proceso puede ser difícil de administrar cuando tiene muchos recursos. A fin de simplificar el proceso de creación y aplicación de la configuración de diagnóstico a gran escala, use Azure Policy para generar automáticamente la configuración de diagnóstico para los recursos nuevos y existentes.

Cada tipo de recurso de Azure tiene un conjunto único de categorías que se enumeran en la configuración de diagnóstico. Por lo tanto, cada tipo de recurso requiere una definición de directiva independiente. Algunos tipos de recursos tienen definiciones de directivas integradas que se pueden asignar sin modificaciones. Para otros tipos de recursos, puede crear una definición personalizada.

Grupos de categorías de registros

Los grupos de categorías de registros agrupan tipos similares de registros. Los grupos de categorías facilitan la referencia a varios registros en un solo comando. Existe un grupo de categorías allLogs que contiene todos los registros. También hay un grupo de categorías de auditoría que incluye todos los registros de auditoría. Mediante el uso de un grupo de categorías, puede definir una directiva que se actualice dinámicamente a medida que se agreguen nuevas categorías de registro al grupo.

Definiciones de directivas integradas para Azure Monitor

Por lo general, hay tres definiciones de directiva integradas para cada tipo de recurso, que se corresponden con los tres destinos a los que enviar diagnósticos:

  • Áreas de trabajo de Log Analytics
  • Cuentas de Azure Storage
  • Centros de eventos

Asigne las directivas para el tipo de recurso según los destinos que necesite.

Se ha desarrollado un conjunto de directivas e iniciativas integradas basadas en los grupos de categorías de registros de auditoría para ayudarle a aplicar la configuración de diagnóstico con solo unos pocos pasos. Para obtener más información, consulte Habilitación de la configuración de diagnóstico por grupo de categorías mediante directivas integradas.

Para obtener una lista completa de directivas integradas de Azure Monitor, consulte Definiciones integradas de Azure Policy para Azure Monitor.

Definiciones de directivas personalizadas

En el caso de los tipos de recursos que no tienen una directiva integrada, debe crear una definición de directiva personalizada. Puede crear una nueva directiva manualmente en Azure Portal mediante la copia de una directiva integrada existente y, a continuación, su modificación para el tipo de recurso. Como alternativa, puede crear la directiva mediante programación con un script de la Galería de PowerShell.

El script Create-AzDiagPolicy crea archivos de directivas para un tipo de recurso determinado que se pueden instalar mediante PowerShell o la CLI de Azure. Use el procedimiento siguiente para crear una definición de directiva personalizada para la configuración de diagnóstico:

  1. Asegúrese de que tiene instalado Azure PowerShell.

  2. Para instalar el script, use el siguiente comando:

    Install-Script -Name Create-AzDiagPolicy
    
  3. Ejecute el script con los parámetros para especificar dónde enviar los registros. Se le pedirá que especifique una suscripción y un tipo de recurso.

    Por ejemplo, para crear una definición de directiva que envíe registros a un área de trabajo de Log Analytics y un centro de eventos, use el comando siguiente.

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

    Como alternativa, puede especificar una suscripción y un tipo de recurso en el comando. Por ejemplo, para crear una definición de directiva que envíe registros a un área de trabajo de Log Analytics y a un centro de eventos para bases de datos de Azure SQL Server, use el comando siguiente:

    Create-AzDiagPolicy.ps1 -SubscriptionID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ResourceType Microsoft.Sql/servers/databases  -ExportLA -ExportEH -ExportDir ".\PolicyFiles"  
    
  4. El script crea carpetas independientes para cada definición de directiva. Cada carpeta contiene tres archivos denominados azurepolicy.json, azurepolicy.rules.json y azurepolicy.parameters.json. Si quiere crear la directiva manualmente en Azure Portal, puede copiar y pegar el contenido del archivo azurepolicy.json, ya que incluye la definición de directiva completa. Use los otros dos archivos con PowerShell o la CLI de Azure para crear la definición de directiva desde la línea de comandos.

    En los siguientes ejemplos se muestra cómo instalar la definición de directiva desde PowerShell y la CLI de Azure. Cada ejemplo incluye metadatos para especificar la categoría Supervisión para agrupar la nueva definición de directiva con las definiciones de directivas integradas.

    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
    

Iniciativa

En lugar de crear una asignación para cada definición de directiva, una estrategia habitual consiste en crear una iniciativa que incluya las definiciones de directivas para crear la configuración de diagnóstico para cada servicio de Azure. Cree una asignación entre la iniciativa y un grupo de administración, una suscripción o un grupo de recursos, en función de cómo administre el entorno. Esta estrategia ofrece las siguientes ventajas:

  • Cree una única asignación para la iniciativa en lugar de varias asignaciones para cada tipo de recurso. Use la misma iniciativa para varios grupos de supervisión, suscripciones o grupos de recursos.
  • Modifique la iniciativa cuando necesite agregar un nuevo tipo de recurso o destino. Por ejemplo, los requisitos iniciales pueden enviar datos solo a un área de trabajo de Log Analytics, pero más adelante puede que quiera agregar un centro de eventos. Modifique la iniciativa en lugar de crear nuevas asignaciones.

Para obtener más información sobre la creación de una iniciativa, consulte Creación y asignación de una definición de iniciativa. Tenga en cuenta las recomendaciones siguientes:

  • Establezca Categoría en Supervisión para agruparla con las definiciones de directivas integradas y personalizadas relacionadas.
  • En lugar de especificar los detalles del área de trabajo de Log Analytics y el centro de eventos para las definiciones de directiva que se incluyen en la iniciativa, use un parámetro de iniciativa común. Este parámetro le permite especificar fácilmente un valor común para todas las definiciones de directivas y cambiar ese valor si es necesario.

Screenshot that shows settings for initiative definition.

Asignación

Asigne la iniciativa a un grupo de administración, una suscripción o un grupo de recursos de Azure en función del ámbito de los recursos que se van a supervisar. Un grupo de administración es útil para dar un ámbito a la directiva, especialmente si la organización tiene varias suscripciones.

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.

Mediante el uso de parámetros de iniciativa, puede especificar el área de trabajo o cualquier otro detalle para todas las definiciones de directivas de la iniciativa.

Screenshot that shows initiative parameters on the Parameters tab.

Corrección

La iniciativa se aplicará a cada máquina virtual a medida que se cree. Una tarea de corrección implementa las definiciones de directivas de la iniciativa en los recursos existentes, de modo que puede crear una configuración de diagnóstico para los recursos que ya se han creado.

Al crear la asignación mediante Azure Portal, tiene la opción de crear una tarea de corrección al mismo tiempo. Consulte Corrección de los recursos no compatibles con Azure Policy para más información sobre la corrección.

Screenshot that shows initiative remediation for a Log Analytics workspace.

Solución de problemas

La categoría de métrica no es compatible

Al implementar una configuración de diagnóstico, recibe un mensaje de error similar a La categoría de métrica "xxxx" no se admite. Puede recibir este error aunque su implementación anterior se haya completado correctamente.

El problema se produce al usar una plantilla de Resource Manager, la API de REST, la CLI de Azure o Azure PowerShell. La configuración de diagnóstico creada a través de Azure Portal no se ve afectada, ya que solo se presentan los nombres de categoría admitidos.

El problema se debe a un cambio reciente en la API subyacente. Las categorías de métricas que no sean "AllMetrics" no se admiten y nunca se han admitido, salvo para unos servicios específicos de Azure. En el pasado, se omitieron otros nombres de categoría al implementar una configuración de diagnóstico. El back-end de Azure Monitor simplemente redirigió estas categorías a "AllMetrics". A partir de febrero de 2021, el back-end se actualizó para confirmar específicamente que la categoría de métrica proporcionada es precisa. Este cambio ha provocado un error en algunas implementaciones.

Si recibe este error, actualice las implementaciones para reemplazar los nombres de categoría de métrica por "AllMetrics" para corregir el problema. Si la implementación agregaba anteriormente varias categorías, solo debe conservarse una con la referencia "AllMetrics". Si sigue teniendo el problema, póngase en contacto con el equipo de soporte técnico de Azure a través de Azure Portal.

La configuración desaparece debido a caracteres no ASCII en resourceID

La configuración de diagnóstico no admite identificadores de recursos con caracteres no ASCII (por ejemplo, Preproducción). Puesto que no puede cambiar el nombre de los recursos en Azure, la única opción es crear un nuevo recurso sin caracteres que no sean ASCII. Si los caracteres están en un grupo de recursos, puede mover los recursos que contiene a uno nuevo. De lo contrario, deberá volver a crear el recurso.

Pasos siguientes