Registros de diagnóstico para Application Gateway
Los registros de Application Gateway proporcionan información detallada sobre los eventos relacionados con un recurso y sus operaciones. Estos registros están disponibles para eventos como Acceso, Actividad, Firewall y Rendimiento (solo para V1). La información granular de los registros es útil al solucionar un problema o crear un panel de análisis mediante el consumo de estos datos sin procesar.
Los registros están disponibles para todos los recursos de Application Gateway; sin embargo, para consumirlos, debe habilitar su recopilación en una ubicación de almacenamiento de su elección. El servicio Azure Monitor habilita el registro en Azure Application Gateway. Se recomienda usar el área de trabajo de Log Analytics, ya que puede usar fácilmente sus consultas predefinidas y establecer alertas basadas en condiciones de registro específicas.
Tipos de registros de diagnóstico
Puede usar diferentes tipos de registros en Azure para administrar y solucionar problemas de Application Gateway. Puede obtener más información sobre estos tipos a continuación:
- Registro de actividades: puede usar el registro de actividades de Azure (anteriormente conocido como registros operativos y registros de auditoría) para ver todas las operaciones enviadas a sus suscripciones de Azure, así como su estado. Las entradas del registro de actividades se recopilan de forma predeterminada y se pueden ver en Azure Portal.
- Registro de Access: puede usar este registro para ver los patrones de acceso de Application Gateway y analizar información importante. Esto incluye la dirección IP del autor de la llamada, la dirección URL solicitada, la latencia de la respuesta, el código de devolución y los bytes de entrada y salida. El registro de acceso se recopila cada 60 segundos. Este registro contiene un registro por cada instancia de Application Gateway. La instancia de Application Gateway se identifica por la propiedad instanceId.
- Registro de rendimiento: este registro se puede utilizar para ver el rendimiento de las instancias de Application Gateway. Este registro captura la información de rendimiento de cada instancia, incluida la cantidad total de solicitudes atendidas, el rendimiento en bytes, la cantidad de solicitudes con error y el número de instancias de back-end con un estado correcto o incorrecto. El registro de rendimiento se recopila cada 60 segundos. El registro de rendimiento solo está disponible para la SKU v1. En la SKU v2, use Métricas para los datos de rendimiento.
- Registro de firewall: puede utilizar este registro para ver las solicitudes que se registran con el modo de detección o prevención de una puerta de enlace de aplicaciones que está configurada con el firewall de aplicaciones web. Los registros de firewall se recopilan cada 60 segundos.
Nota:
Los registros solo están disponibles para los recursos implementados en el modelo de implementación de Azure Resource Manager. No puede usar los registros de recursos del modelo de implementación clásica. Para entender mejor los dos modelos, consulte el artículo Descripción de la implementación de Resource Manager y la implementación clásica .
Ubicaciones de almacenamiento
Tiene las siguientes opciones para almacenar los registros en su ubicación preferida.
Área de trabajo de Análisis de registros: se recomienda, ya que permite usar fácilmente las consultas predefinidas, las visualizaciones y establecer alertas basadas en condiciones de registro específicas. Las tablas usadas por los registros de recursos en el área de trabajo de Log Analytics dependen del tipo de colección que usa el recurso:
Azure Diagnostics: todos los datos se escriben en la tabla AzureDiagnostics. La tabla de Diagnósticos de Azure se comparte entre varios tipos de recursos, con cada uno de ellos agregando sus propios campos personalizados. Cuando el número de campos personalizados ingeridos en la tabla de Diagnósticos de Azure supera los 500, los nuevos campos no se agregan como de nivel superior, sino que se agregan al campo "AdditionalFields" como pares de valores clave dinámicos.
Específico del recurso(recomendado):los datos se escriben en tablas dedicadas para cada categoría del recurso. En el modo específico del recurso, a cada categoría de registro seleccionada en la configuración de diagnóstico se le asigna su propia tabla dentro del área de trabajo elegida. Esto tiene varias ventajas, entre las que se incluyen:
- Manipulación de datos más sencilla en consultas de registro
- Mejora de la detectabilidad de esquemas y sus estructuras
- Rendimiento mejorado en términos de latencia de ingesta y tiempos de consulta
- La capacidad de asignar derechos de control de acceso basado en rol de Azure a tablas específicas
Para Application Gateway, el modo específico del recurso crea tres tablas:
Nota:
La opción específica del recurso está disponible actualmente en todas las regiones públicas.
Los usuarios existentes pueden seguir usando Azure Diagnostics o pueden optar por tablas dedicadas cambiando el botón de alternancia en Configuración de diagnóstico a Específico del recursoo a Dedicado en el destino de la API. El modo dual no es posible. Los datos de todos los registros pueden fluir a Azure Diagnostics o a tablas dedicadas. Sin embargo, puede tener varias configuraciones de diagnóstico en las que un flujo de datos es para diagnóstico de Azure y otro usa recursos específicos al mismo tiempo.
Selección de la tabla de destino en Log Analytics: todos los servicios de Azure finalmente usan las tablas específicas del recurso. Como parte de esta transición, puede seleccionar Azure Diagnostic o tabla específica de recursos en la configuración de diagnóstico mediante un botón de alternancia. El botón de alternancia se establece en Específico del recurso de forma predeterminada y, en este modo, los registros de las nuevas categorías seleccionadas se envían a tablas dedicadas de Log Analytics, mientras que las secuencias existentes permanecen sin cambios. Consulte el ejemplo siguiente.
Transformaciones del área de trabajo: optar por la opción específica del recurso permite filtrar y modificar los datos antes de ingerirlos con transformaciones del área de trabajo. Esto proporciona un control pormenorizado, lo que le permite centrarse en la información más relevante de los registros allí al reducir los costos de datos y mejorar la seguridad. Para obtener instrucciones detalladas sobre cómo configurar las transformaciones del área de trabajo, consulte Tutoria: Adición de una transformación del área de trabajo a los registros de Azure Monitor mediante Azure Portal.
Ejemplos de optimización de registros de acceso mediante transformaciones del área de trabajo
Ejemplo 1: Proyección selectiva de columnas: imagine que tiene registros de acceso de application Gateway con 20 columnas, pero le interesa analizar datos de solo 6 columnas específicas. Mediante la transformación del área de trabajo, puede proyectar estas 6 columnas en el área de trabajo, excluyendo eficazmente las otras 14 columnas. Aunque los datos originales de esas columnas excluidas no se almacenarán, los marcadores de posición vacíos para ellos seguirán apareciendo en la hoja Registros. Este enfoque optimiza el almacenamiento y garantiza que solo se conserven los datos pertinentes para el análisis.
Nota:
En la hoja Registros, al seleccionar la opción Probar nuevo Log Analytics, se proporciona un mayor control sobre las columnas que se muestran en la interfaz de usuario.
Ejemplo 2: Centrarse en códigos de estado específicos: al analizar registros de acceso, en lugar de procesar todas las entradas de registro, puede escribir una consulta para recuperar solo filas con códigos de estado HTTP específicos (como 4xx y 5xx). Dado que la mayoría de las solicitudes se encuentran idealmente en las categorías 2xx y 3xx (que representan respuestas correctas), centrarse en los códigos de estado problemáticos reduce el conjunto de datos. Este enfoque dirigido le permite extraer la información más relevante y accionable, lo que hace que sea beneficioso y rentable.
Estrategia de transición recomendada para pasar del diagnóstico de Azure a una tabla específica del recurso:
- Evaluar la retención de datos actual: determine la duración de los datos que se conservan actualmente en la tabla de diagnósticos de Azure (por ejemplo, supongamos que la tabla de diagnóstico conserva los datos durante 15 días).
- Establecer retención específica de recursos: implemente una nueva configuración de diagnóstico con una tabla específica del recurso.
- Recopilación de datos en paralelo: durante un período temporal, recopile datos simultáneamente en Azure Diagnostics y en la configuración específica del recurso.
- Confirmar la precisión de los datos: compruebe que la recopilación de datos es precisa y coherente en ambas configuraciones.
- Quitar la configuración de Diagnósticos de Azure: quite la configuración de Diagnóstico de Azure para evitar la recopilación de datos duplicada.
Ubicaciones de almacenamiento de las reglas
- Cuenta de Azure Storage: las cuentas de almacenamiento se usan mejor para los registros cuando los registros se almacenan durante más tiempo y se revisan cuando sea necesario.
- Azure Event Hubs: Event Hubs es una excelente opción para la integración con otras herramientas de administración de eventos e información de seguridad (SIEM) para obtener alertas en los recursos.
- Integraciones de asociados de Azure Monitor.
Obtenga más información sobre los destinos de configuración de diagnóstico de Azure Monitor.
Habilitación del registro con PowerShell
El registro de actividades se habilita automáticamente para todos los recursos de Resource Manager. Debe habilitar el registro de acceso y rendimiento para iniciar la recopilación de los datos disponibles a través de esos registros. Para habilitar el registro, realice los siguientes pasos:
Anote el identificador de recurso de la cuenta de almacenamiento donde se almacenan los datos de registro. Este valor tiene este formato: /subscriptions/<idSuscripción>/resourceGroups/<nombreDeGrupoDeRecursos>/providers/Microsoft.Storage/storageAccounts/<nombreDeCuentaDeAlmacenamiento>. Puede usar cualquier cuenta de almacenamiento de la suscripción. Para buscar esta información, se puede usar Azure Portal.
Observe el identificador de recurso de la puerta de enlace de aplicaciones para la que se está habilitando el registro. Este valor tiene el siguiente formato: /subscriptions/<idSuscripción>/resourceGroups/<nombreDeGrupoDeRecursos>/providers/Microsoft.Network/applicationGateways/<nombreDePuertaDeEnlaceDeAplicaciones>. Para buscar esta información, use Azure Portal.
Habilite el registro de diagnósticos mediante el siguiente cmdlet de PowerShell:
Set-AzDiagnosticSetting -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true
Sugerencia
Los registros de actividades no requieren una cuenta de almacenamiento separada. El uso del almacenamiento para el registro de acceso y rendimiento supondrá un costo adicional de servicio.
Habilitación del registro mediante Azure Portal
En Azure Portal, busque el recurso y seleccione Configuración de diagnóstico.
Hay tres registros de auditoría disponibles para Application Gateway:
- Registro de acceso
- Registro de rendimiento
- Registro de firewall
Para empezar a recopilar los datos, haga clic en Activar diagnóstico.
En la página Configuración de diagnóstico, se encuentran las opciones de configuración de los registros de diagnóstico. En este ejemplo, se utiliza Log Analytics para almacenar los registros. Se pueden utilizar también Events Hubs y la cuenta de almacenamiento para guardar los registros de diagnóstico.
Escriba un nombre para la configuración, confírmelo y seleccione Guardar.
Registro de actividades
Azure genera el registro de actividad de forma predeterminada. Los registros se conservan durante 90 días en el almacén de registros de eventos de Azure. Para más información sobre estos registros, consulte el artículo Visualización de eventos y registros de actividades.
Registro de acceso
El registro de acceso solo se genera si lo habilitó para cada instancia de Application Gateway, tal y como se indicó en los pasos anteriores. Los datos se almacenan en la cuenta de almacenamiento que especificó cuando habilitó el registro. Cada acceso de Application Gateway se registra en formato JSON, tal y como se muestra a continuación.
Para la SKU de Application Gateway y WAF v2
Nota:
Para obtener información relacionada con el proxy TLS/TCP, visite la referencia de datos.
Valor | Descripción |
---|---|
instanceId | Instancia de Application Gateway que atendió la solicitud. |
clientIP | IP del cliente inmediato de Application Gateway. Si otro proxy lidera la puerta de enlace de aplicación, se muestra la IP de ese proxy de front-end. |
httpMethod | Método HTTP utilizado por la solicitud. |
requestUri | URI de la solicitud recibida. |
UserAgent | Agente de usuario del encabezado de solicitud HTTP. |
httpStatus | Código de estado HTTP que se devuelve al cliente desde Application Gateway. |
HttpVersion | Versión HTTP de la solicitud. |
receivedBytes | Tamaño de paquete recibido, en bytes. |
sentBytes | Tamaño de paquete enviado, en bytes. |
clientResponseTime | Diferencia de tiempo (en segundos) entre el primer byte y la última puerta de enlace de aplicaciones de byte enviada al cliente. Resulta útil para calcular el tiempo de procesamiento de Application Gateway para respuestas o clientes lentos. |
timeTaken | Tiempo (en segundos) que se tarda en procesar el primer byte de una solicitud de cliente y el último byte enviado a este en la respuesta. Es importante tener en cuenta que el campo Time-Taken normalmente incluye la hora a la que los paquetes de solicitud y respuesta se desplazan a través de la red. |
WAFEvaluationTime | Tiempo (en segundos) que se tarda en procesar una solicitud y enviar la respuesta. |
WAFMode | El valor puede ser "Detección" o "Prevención". |
transactionId | Identificador único para correlacionar la solicitud recibida del cliente. |
sslEnabled | Indica si en la comunicación con los grupos de back-end se utilizó TLS. Los valores válidos son on y off. |
sslCipher | Conjunto de cifrado que se usa para la comunicación TLS (si TLS está habilitado). |
sslProtocol | Protocolo SSL/TLS que se usa (si se ha habilitado TLS). |
serverRouted | Servidor back-end al que Application Gateway redirige la solicitud. |
serverStatus | Código de estado HTTP del servidor back-end. |
serverResponseLatency | Latencia de la respuesta (en segundos) del servidor backend. |
host | Dirección que aparece en el encabezado de host de la solicitud. Si se reescribe mediante una reescritura de encabezado, este campo contiene el nombre de host actualizado |
originalRequestUriWithArgs | Este campo contiene la dirección URL de la solicitud original |
requestUri | Este campo contiene la dirección URL posterior a la operación de reescritura en Application Gateway |
upstreamSourcePort | Puerto de origen que usa Application Gateway al iniciar una conexión con el destino de back-end |
originalHost | Este campo contiene el nombre de host de la solicitud original |
error_info | Motivo del error 4xx y 5xx. Muestra un código de error para una solicitud con error. Obtenga más detalles en la Información del código de error. |
contentType | El tipo de contenido o datos que está procesando o entregando la puerta de enlace de aplicación |
{
"timeStamp": "2021-10-14T22:17:11+00:00",
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"listenerName": "HTTP-Listener",
"ruleName": "Storage-Static-Rule",
"backendPoolName": "StaticStorageAccount",
"backendSettingName": "StorageStatic-HTTPS-Setting",
"operationName": "ApplicationGatewayAccess",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "appgw_2",
"clientIP": "185.42.129.24",
"clientPort": 45057,
"httpMethod": "GET",
"originalRequestUriWithArgs": "\/",
"requestUri": "\/",
"requestQuery": "",
"userAgent": "Mozilla\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/52.0.2743.116 Safari\/537.36",
"httpStatus": 200,
"httpVersion": "HTTP\/1.1",
"receivedBytes": 184,
"sentBytes": 466,
"clientResponseTime": 0,
"timeTaken": 0.034,
"WAFEvaluationTime": "0.000",
"WAFMode": "Detection",
"transactionId": "592d1649f75a8d480a3c4dc6a975309d",
"sslEnabled": "on",
"sslCipher": "ECDHE-RSA-AES256-GCM-SHA384",
"sslProtocol": "TLSv1.2",
"sslClientVerify": "NONE",
"sslClientCertificateFingerprint": "",
"sslClientCertificateIssuerName": "",
"serverRouted": "52.239.221.65:443",
"serverStatus": "200",
"serverResponseLatency": "0.028",
"upstreamSourcePort": "21564",
"originalHost": "20.110.30.194",
"host": "20.110.30.194",
"error_info":"ERRORINFO_NO_ERROR",
"contentType":"application/json"
}
}
Nota:
Los registros de acceso con el valor de clientIP 127.0.0.1 se originan en un proceso de seguridad interno en las instancias de la puerta de enlace de aplicación. Puede ignorar estas entradas de registro.
Para la SKU Estándar de Application Gateway y de WAF (v1)
Value | Descripción |
---|---|
instanceId | Instancia de Application Gateway que atendió la solicitud. |
clientIP | IP de origen de la solicitud. |
clientPort | Puerto de origen de la solicitud. |
httpMethod | Método HTTP utilizado por la solicitud. |
requestUri | URI de la solicitud recibida. |
RequestQuery | Server-Routed: instancia del grupo de back-end a la que se ha enviado la solicitud. X-AzureApplicationGateway-LOG-ID: identificador de correlación utilizado para la solicitud. Se puede utilizar para solucionar problemas de tráfico en los servidores back-end. SERVER-STATUS: código de respuesta HTTP que Application Gateway ha recibido del back-end. |
UserAgent | Agente de usuario del encabezado de solicitud HTTP. |
httpStatus | Código de estado HTTP que se devuelve al cliente desde Application Gateway. |
HttpVersion | Versión HTTP de la solicitud. |
receivedBytes | Tamaño de paquete recibido, en bytes. |
sentBytes | Tamaño de paquete enviado, en bytes. |
timeTaken | Período de tiempo (en milisegundos) que se tarda en procesar una solicitud y en enviar la respuesta. Esto se calcula como el intervalo desde el momento en que Application Gateway recibe el primer byte de una solicitud HTTP hasta el momento en que termina la operación de envío de la respuesta. Es importante tener en cuenta que el campo Time-Taken normalmente incluye la hora a la que los paquetes de solicitud y respuesta se desplazan a través de la red. |
sslEnabled | Indica si en la comunicación con los grupos de back-end se utilizó TLS/SSL. Los valores válidos son on y off. |
host | El nombre de host con el que se envió la solicitud al servidor backend. Si se reemplaza el nombre de host de back-end, este nombre lo refleja. |
originalHost | Nombre de host con el que Application Gateway recibió la solicitud del cliente. |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/PEERINGTEST/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayAccess",
"time": "2017-04-26T19:27:38Z",
"category": "ApplicationGatewayAccessLog",
"properties": {
"instanceId": "ApplicationGatewayRole_IN_0",
"clientIP": "191.96.249.97",
"clientPort": 46886,
"httpMethod": "GET",
"requestUri": "/phpmyadmin/scripts/setup.php",
"requestQuery": "X-AzureApplicationGateway-CACHE-HIT=0&SERVER-ROUTED=10.4.0.4&X-AzureApplicationGateway-LOG-ID=874f1f0f-6807-41c9-b7bc-f3cfa74aa0b1&SERVER-STATUS=404",
"userAgent": "-",
"httpStatus": 404,
"httpVersion": "HTTP/1.0",
"receivedBytes": 65,
"sentBytes": 553,
"timeTaken": 205,
"sslEnabled": "off",
"host": "www.contoso.com",
"originalHost": "www.contoso.com"
}
}
Información del código de error
Si la puerta de enlace de aplicación no puede completar la solicitud, almacena uno de los siguientes códigos de motivo en el campo error_info del registro de acceso.
Errores 4xx | (Los códigos de error 4xx indican que se produjo un problema con la solicitud del cliente y que Application Gateway no puede completarla). |
---|---|
ERRORINFO_INVALID_METHOD | El cliente ha enviado una solicitud que no es compatible con RFC. Motivos posibles: el cliente usa el método HTTP no compatible con el servidor, el método está mal escrito, la versión del protocolo HTTP no es compatible, etc. |
ERRORINFO_INVALID_REQUEST | El servidor no puede completar la solicitud debido a una sintaxis incorrecta. |
ERRORINFO_INVALID_VERSION | La puerta de enlace de aplicación recibió una solicitud con una versión HTTP no válida o no compatible. |
ERRORINFO_INVALID_09_METHOD | El cliente envió una solicitud con el protocolo HTTP versión 0.9. |
ERRORINFO_INVALID_HOST | El valor proporcionado en el encabezado "Host" falta, tiene el formato incorrecto o no coincide con el valor de host esperado. Por ejemplo, cuando no hay ningún agente de escucha básico y ninguno de los nombres de host de los agentes de escucha multisitio coinciden con el host. |
ERRORINFO_INVALID_CONTENT_LENGTH | La longitud del contenido especificado por el cliente en el encabezado content-Length no coincide con la longitud real del contenido de la solicitud. |
ERRORINFO_INVALID_METHOD_TRACE | El cliente envió el método HTTP TRACE que no es compatible con la puerta de enlace de aplicación. |
ERRORINFO_CLIENT_CLOSED_REQUEST | El cliente cerró la conexión con la puerta de enlace de aplicaciones antes de que transcurriese el período de tiempo de espera de inactividad. Compruebe si el período de tiempo de espera del cliente es mayor que el período de tiempo de espera de inactividad de la puerta de enlace de aplicaciones. |
ERRORINFO_REQUEST_URI_INVALID | Indica un problema con el identificador uniforme de recursos (URI) proporcionado en la solicitud del cliente. |
ERRORINFO_HTTP_NO_HOST_HEADER | El cliente envió una solicitud sin encabezado host. |
ERRORINFO_HTTP_TO_HTTPS_PORT | El cliente envió una solicitud HTTP sin formato a un puerto HTTPS. |
ERRORINFO_HTTPS_NO_CERT | Indica que el cliente no está enviando un certificado TLS válido y correctamente configurado durante la autenticación TLS mutua. |
Errores 5xx | Descripción |
---|---|
ERRORINFO_UPSTREAM_NO_LIVE | La puerta de enlace de aplicación no puede encontrar ningún servidor backend activo o accesible para controlar las solicitudes entrantes |
ERRORINFO_UPSTREAM_CLOSED_CONNECTION | El servidor backend cerró la conexión inesperadamente o antes de que la solicitud se procesara por completo. Esto puede ocurrir debido a que el servidor backend ha alcanzado sus límites, se bloquea, etc. |
ERRORINFO_UPSTREAM_TIMED_OUT | La conexión TCP establecida con el servidor se cerró porque la conexión tardó más tiempo de espera que el valor de tiempo de espera configurado. |
Registro de rendimiento
El registro de rendimiento solo se genera si lo habilitó para cada instancia de Application Gateway, tal y como se indicó en los pasos anteriores. Los datos se almacenan en la cuenta de almacenamiento que especificó cuando habilitó el registro. Los datos de registro de rendimiento se generan en intervalos de 1 minuto. Solo está disponible para la SKU v1. En la SKU v2, use Métricas para los datos de rendimiento. Se registran los datos siguientes:
Value | Descripción |
---|---|
instanceId | Instancia de Application Gateway para la que se van a generar los datos. Si hay varias instancias de Application Gateway, hay una fila por cada instancia. |
healthyHostCount | Número de hosts con un estado correcto en el grupo de back-end. |
unHealthyHostCount | Número de hosts con un estado incorrecto en el grupo de back-end. |
requestCount | Número de solicitudes atendidas. |
latency | Latencia media (en milisegundos) de las solicitudes desde la instancia hasta el back-end que atiende las solicitudes. |
failedRequestCount | Número de solicitudes con error. |
throughput | Rendimiento medio desde el último registro, medido en bytes por segundo. |
{
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayPerformance",
"time": "2016-04-09T00:00:00Z",
"category": "ApplicationGatewayPerformanceLog",
"properties":
{
"instanceId":"ApplicationGatewayRole_IN_1",
"healthyHostCount":"4",
"unHealthyHostCount":"0",
"requestCount":"185",
"latency":"0",
"failedRequestCount":"0",
"throughput":"119427"
}
}
Nota
La latencia se calcula desde el momento en que se recibe el primer byte de la solicitud HTTP hasta el momento en que se envía el último byte de la respuesta HTTP. Es la suma del tiempo de procesamiento de Application Gateway más el costo de la red hasta el back-end, más el tiempo que el back-end tarda en procesar la solicitud.
Registro de firewall
El registro de firewall solo se genera si lo habilitó para cada instancia de Application Gateway, tal y como se indicó en los pasos anteriores. Este registro también requiere que el firewall de aplicaciones web esté configurado en una instancia de Application Gateway. Los datos se almacenan en la cuenta de almacenamiento que especificó cuando habilitó el registro. Se registran los datos siguientes:
Value | Descripción |
---|---|
instanceId | Instancia de Application Gateway para la que se van a generar los datos de firewall. Si hay varias instancias de Application Gateway, hay una fila por cada instancia. |
clientIp | IP de origen de la solicitud. |
clientPort | Puerto de origen de la solicitud. |
requestUri | URI de la solicitud recibida. |
ruleSetType | Tipo de conjunto de reglas. El valor disponible es OWASP. |
ruleSetVersion | Versión utilizada del conjunto de reglas. Los valores disponibles son 2.2.9 y 3.0. |
ruleId | Identificador de regla del evento desencadenador. |
message | Mensaje descriptivo para el evento desencadenador. En la sección de detalles se proporciona más información. |
action | Acción realizada en la solicitud. Los valores disponibles son Bloqueados y Permitidos (para reglas personalizadas), Coincidentes (cuando una regla coincide con una parte de la solicitud) y Detectados y Bloqueados (ambos son para las reglas obligatorias, en función de si WAF está en modo de detección o prevención). |
site | Sitio para el que se generó el registro. Actualmente, solo se incluye Global porque las reglas son globales. |
detalles | Detalles del evento desencadenador. |
details.message | Descripción de la regla. |
details.data | Datos específicos que se encuentran en la solicitud y que corresponden a la regla. |
details.file | Archivo de configuración que contiene la regla. |
details.line | Número de línea del archivo de configuración que desencadenó el evento. |
hostname | Nombre de host o dirección IP de la puerta de enlace de aplicaciones. |
transactionId | Identificador único de una transacción determinada que ayuda a agrupar varias infracciones de reglas que se produjeron dentro de la misma solicitud. |
{
"timeStamp": "2021-10-14T22:17:11+00:00",
"resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{applicationGatewayName}",
"operationName": "ApplicationGatewayFirewall",
"category": "ApplicationGatewayFirewallLog",
"properties": {
"instanceId": "appgw_2",
"clientIp": "185.42.129.24",
"clientPort": "",
"requestUri": "\/",
"ruleSetType": "OWASP_CRS",
"ruleSetVersion": "3.0.0",
"ruleId": "920350",
"message": "Host header is a numeric IP address",
"action": "Matched",
"site": "Global",
"details": {
"message": "Warning. Pattern match \\\"^[\\\\d.:]+$\\\" at REQUEST_HEADERS:Host .... ",
"data": "20.110.30.194:80",
"file": "rules\/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
"line": "791"
},
"hostname": "20.110.30.194:80",
"transactionId": "592d1649f75a8d480a3c4dc6a975309d",
"policyId": "default",
"policyScope": "Global",
"policyScopeName": "Global"
}
}
Visualización y análisis del registro de actividades
Puede ver y analizar los datos del registro de actividades con cualquiera de los métodos siguientes:
- Herramientas de Azure: permiten recuperar información de los registros de actividades mediante Azure PowerShell, la CLI de Azure, la API REST de Azure o Azure Portal. En el artículo Operaciones de actividades con Resource Manager se detallan instrucciones paso a paso de cada método.
- Power BI: si todavía no tiene una cuenta de Power BI, puede probarlo gratis. Las aplicaciones de plantilla de Power BI permiten analizar los datos.
Visualización y análisis de los registros de acceso, rendimiento y firewall
Los registros de Azure Monitor pueden recopilar los archivos de registro de eventos y contadores de la cuenta de Blob Storage. Incluye visualizaciones y eficaces funciones de búsqueda para analizar los registros.
También puede conectarse a la cuenta de almacenamiento y recuperar las entradas del registro de JSON de los registros de acceso y rendimiento. Después de descargar los archivos JSON, se pueden convertir a CSV y consultarlos en Excel, PowerBI o cualquier otra herramienta de visualización de datos.
Sugerencia
Si está familiarizado con Visual Studio y con los conceptos básicos de cambio de los valores de constantes y variables de C#, puede usar las herramientas convertidoras de registros que encontrará en GitHub.
Analizar los registros de acceso mediante GoAccess
Hemos publicado una plantilla de Resource Manager que se instala y ejecuta el popular analizador de registros GoAccess para los registros de acceso de Application Gateway. GoAccess proporciona valiosas estadísticas de tráfico HTTP como visitantes únicos, archivos solicitados, hosts, sistemas operativos, exploradores, códigos de estado HTTP y mucho más. Para obtener más información, consulte el archivo Léame en la carpeta de plantillas de Resource Manager en GitHub.
Pasos siguientes
- Visualice el contador y los registros de eventos mediante los registros de Azure Monitor.
- Consulte la entrada de blog Visualize your Azure Activity Logs with Power BI (Visualizar los registros de actividades de Azure con Power BI).
- Consulte la entrada de blog View and analyze Azure Audit Logs in Power BI and more (Consulta y análisis de registros de auditoría de Azure en Power BI y más).