Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Log Analytics es una plataforma de registro centralizada que agrega registros de aplicaciones, recursos de Azure, máquinas virtuales, contenedores, etc. La integración con Data API Builder (DAB) ayuda a las empresas a cumplir los requisitos de cumplimiento, gobernanza y observabilidad. A diferencia de Application Insights (que se centra en APM), Log Analytics proporciona una agregación de registros más amplia con compatibilidad con el lenguaje de consulta kusto (KQL).
Prerrequisitos
- Archivo de configuración DAB existente.
- Suscripción de Azure con permisos para crear recursos de Log Analytics.
- Área de trabajo de Azure Log Analytics con:
- Una tabla personalizada (que termina en
_CL) - Una regla de recopilación de datos (DCR)
- Un punto de conexión de recopilación de datos (DCE)
- Una tabla personalizada (que termina en
- Identidad administrada habilitada en el host de DAB (Azure App Service, Container Apps, VM, etc.).
- CLI para el generador de APIs de datos. Instalación de la CLI
Configuración de recursos de Azure Log Analytics
Antes de configurar DAB, cree los recursos de Azure necesarios.
Creación de un área de trabajo de Log Analytics
- Vaya a Azure Portal>espacios de trabajo de Log Analytics.
- Seleccione + Create.
- Elija la suscripción, el grupo de recursos y la región.
- Proporcione un nombre de área de trabajo.
- Seleccione Revisar y crear>Crear.
Creación de una tabla personalizada
Las tablas personalizadas para la API de ingesta de registros deben terminar con _CL.
- En el área de trabajo de Log Analytics, vaya a Tablas.
- Seleccione + Crear>nuevo registro personalizado (basado en DCR).
- Escriba el nombre de la tabla (por ejemplo,
DabLogs_CL). - Defina el esquema con estas columnas:
-
Time(fecha y hora) -
LogLevel(cadena) -
Message(cadena) -
Component(cadena) -
Identifier(cadena)
-
- Selecciona Crear.
Creación de un punto de conexión de recopilación de datos (DCE)
- Vaya a Monitor>Puntos de Conexión de Recopilación de Datos.
- Seleccione + Create.
- Elija la suscripción, el grupo de recursos y la región.
- Proporcione un nombre (por ejemplo,
my-dce). - Seleccione Revisar y crear>Crear.
- Copie la URL del punto de conexión de Ingesta de Registros (por ejemplo,
https://my-dce.eastus-1.ingest.monitor.azure.com).
Crear una regla de recopilación de datos (DCR)
- Vaya a Supervisar>Reglas de Recopilación de Datos.
- Seleccione + Create.
- Elija suscripción, grupo de recursos, región.
- Proporcione un nombre (por ejemplo,
my-dcr). - En Orígenes de datos, seleccione Registros de texto personalizados.
- Configurar:
- Punto de conexión de recopilación de datos: seleccione el DCE.
- Destino: área de trabajo de Log Analytics.
-
Tabla: la tabla personalizada (
DabLogs_CL).
- Seleccione Revisar y crear>Crear.
- Copie el identificador inmutable (comienza por
dcr-).
Configurar la autenticación
DAB usa La identidad administrada de Azure para autenticarse en Log Analytics. No se almacenan credenciales en la configuración.
Habilitación de la identidad administrada
az webapp identity assign \
--name my-app \
--resource-group my-rg
Asignación de permisos
Conceda el rol Publicador de métricas de supervisión a la identidad administrada en el DCR.
# Get Managed Identity principal ID
PRINCIPAL_ID=$(az webapp identity show \
--name my-app \
--resource-group my-rg \
--query principalId -o tsv)
# Get DCR resource ID
DCR_ID=$(az monitor data-collection rule show \
--name my-dcr \
--resource-group my-rg \
--query id -o tsv)
# Assign role
az role assignment create \
--assignee $PRINCIPAL_ID \
--role "Monitoring Metrics Publisher" \
--scope $DCR_ID
Importante
Sin esta asignación de roles, DAB no puede enviar registros a Log Analytics incluso con la configuración correcta.
Configuración de Log Analytics
Agregue una azure-log-analytics sección bajo runtime.telemetry en su archivo de configuración.
{
"runtime": {
"telemetry": {
"azure-log-analytics": {
"enabled": true,
"dab-identifier": "my-dab-instance",
"flush-interval-seconds": 10,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Propiedades de configuración
| Propiedad | Description | Predeterminado | Constraints |
|---|---|---|---|
enabled |
Habilite o deshabilite la integración de Log Analytics. | false |
Boolean |
dab-identifier |
Cadena única para identificar entradas de registro de esta instancia de DAB. | DabLogs |
Cualquier cadena |
flush-interval-seconds |
Frecuencia con la que se vacían los registros (en segundos) en Log Analytics. | 5 |
Debe ser > 0 |
auth.custom-table-name |
Nombre de tabla personalizado en el área de trabajo de Log Analytics. | (obligatorio) | Debe terminar con _CL |
auth.dcr-immutable-id |
Identificador inmutable de la regla de recopilación de datos. | (obligatorio) | Empieza por dcr- |
auth.dce-endpoint |
Dirección URL del punto de conexión de recopilación de datos. | (obligatorio) | HTTPS URL |
Command-line
Configura Log Analytics mediante dab configure.
Habilitación de Log Analytics
dab configure \
--runtime.telemetry.azure-log-analytics.enabled true
Establecimiento del identificador DAB
dab configure \
--runtime.telemetry.azure-log-analytics.dab-identifier my-dab-instance
Configurar intervalo de vaciado
dab configure \
--runtime.telemetry.azure-log-analytics.flush-interval-seconds 10
Establecimiento de un nombre de tabla personalizado
dab configure \
--runtime.telemetry.azure-log-analytics.auth.custom-table-name DabLogs_CL
Establecimiento del identificador inmutable de DCR
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dcr-immutable-id dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configurar el punto de conexión DCE
dab configure \
--runtime.telemetry.azure-log-analytics.auth.dce-endpoint https://my-dce.eastus-1.ingest.monitor.azure.com
Ejecución de DAB
Inicie DAB con el archivo de configuración:
dab start
Verifique los registros de eventos de inicio de DAB para:
Azure Log Analytics is enabled.
Cómo funciona
Cuando Log Analytics está habilitado, DAB:
- Se autentica en Azure mediante la identidad administrada del host.
- Batches registra entradas basadas en
flush-interval-seconds. - Envía registros al punto de conexión de recopilación de datos (DCE).
- DCE enruta los registros a través de la regla de recopilación de datos (DCR) para la transformación.
- DCR ingiere registros en la tabla personalizada de Log Analytics.
Flujo de datos
DAB Application
↓
ILogger (ASP.NET Core)
↓
Log Analytics Logger Provider
↓
Managed Identity Authentication
↓
Data Collection Endpoint (DCE)
↓
Data Collection Rule (DCR)
↓
Log Analytics Workspace (Custom Table)
¿Qué se captura?
| Tipo de telemetría | Fuente | Examples |
|---|---|---|
| Huellas |
ILogger llamadas en DAB |
Registros de inicio, registros de ejecución de consultas, advertencias |
| Errors | Control de excepciones | Errores en tiempo de ejecución, errores de configuración, errores de base de datos |
| Información del componente | Componentes internos de DAB | Qué módulo generó el registro |
| ID de instancia | Configuración |
dab-identifier valor para el filtrado |
Estructura de registro
Cada entrada de registro enviada a Log Analytics contiene estos campos:
| Campo | Tipo | Description | Example |
|---|---|---|---|
Time |
datetime | Marca de tiempo (ISO 8601) | 2026-01-27T14:30:00Z |
LogLevel |
cuerda / cadena | Severidad del log |
Information, , Warning, Error |
Message |
cuerda / cadena | Mensaje de registro | Request completed successfully |
Component |
cuerda / cadena | Componente DAB que generó el registro | Azure.DataApiBuilder.Service.Startup |
Identifier |
cuerda / cadena | Valor de configuración dab-identifier |
my-dab-instance |
Nota:
Columnas de tabla personalizadas en Log Analytics anexan sufijos: _s para cadenas, _d para doubles, _t para datetimes, etc.
Consulta de registros en Log Analytics
Abra el área de trabajo de Log Analytics en Azure Portal.
Vaya a Registros y ejecute una consulta KQL:
DabLogs_CL | where Identifier_s == "my-dab-instance" | where LogLevel_s in ("Warning", "Error") | where TimeGenerated > ago(1h) | project TimeGenerated, LogLevel_s, Message_s, Component_s | order by TimeGenerated desc
Consultas de ejemplo
Recuento de registros por nivel:
DabLogs_CL
| where TimeGenerated > ago(24h)
| summarize Count=count() by LogLevel_s
Buscar errores en un componente específico:
DabLogs_CL
| where Component_s contains "SqlQueryExecutor"
| where LogLevel_s == "Error"
| project TimeGenerated, Message_s
Consideraciones sobre el rendimiento y los costos
Comportamiento de procesamiento por lotes
DAB agrupa los registros y los envía cada flush-interval-seconds:
- 5 segundos (valor predeterminado): buen equilibrio para la mayoría de los escenarios.
- 1 a 2 segundos: registro casi en tiempo real (llamadas API más altas, mayor costo).
- 10-60 segundos: llamadas API reducidas pero registros retrasados.
Optimización de costos
Los precios de Log Analytics se basan en:
- Ingesta de datos: por GB ingeridos.
- Retención de datos: por GB al mes después del nivel gratis.
Reducir los costos:
- Aumente
flush-interval-secondspara agrupar más registros. - Utiliza filtros de nivel de registro para excluir registros detallados. Para obtener más información, consulte Personalizar la verbosidad de los registros.
- Establezca la retención de datos adecuada en el área de trabajo de Log Analytics.
Ejemplo: Filtro para reducir el volumen
{
"runtime": {
"telemetry": {
"log-level": {
"Default": "Warning",
"Microsoft": "Error"
},
"azure-log-analytics": {
"enabled": true,
"flush-interval-seconds": 30,
"auth": {
"custom-table-name": "DabLogs_CL",
"dcr-immutable-id": "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"dce-endpoint": "https://my-dce.eastus-1.ingest.monitor.azure.com"
}
}
}
}
}
Esto solo envía registros de advertencia y error , lo que reduce significativamente el volumen.
Retención de datos
La retención de datos de Log Analytics se puede configurar por área de trabajo:
| Nivel | Retención predeterminada | Retención máxima |
|---|---|---|
| Nivel gratuito | 7 días | 7 días |
| Pago por uso | 30 días | 730 días (2 años) |
Configurar retención: área de trabajo de Log Analytics → Uso y costos estimados → retención de datos.
Sugerencia
Para cumplir con los requisitos de cumplimiento, considere la posibilidad de archivar registros más antiguos en Azure Storage para su retención a largo plazo.
Solución de problemas
Registros que no aparecen en Log Analytics
Síntoma: DAB se inicia correctamente, pero no aparecen registros en el área de trabajo de Log Analytics.
Causas posibles:
Configuración incompleta: compruebe si hay errores en los registros de inicio de DAB, como
Logs won't be sent to Azure Log Analytics because the Custom Table Name is not available in the config file.Comprobar todas las propiedades de autenticación necesarias:custom-table-name,dcr-immutable-id,dce-endpoint.Identidad administrada no asignada: compruebe que la identidad administrada está habilitada con
az webapp identity show --name my-app --resource-group my-rg. Compruebe la asignación de roles conaz role assignment list --assignee <principal-id> --scope <dcr-id>.Punto de conexión de DCE incorrecto o id. de DCR: compruebe que el formato del punto de conexión DCE es
https://<dce-name>.<region>-1.ingest.monitor.azure.com. Compruebe que el identificador inmutable de DCR comienza pordcr-.La tabla personalizada no existe: las tablas personalizadas deben terminar con
_CL. El esquema de tabla debe coincidir con la estructura de registro.
Error: El intervalo de vaciado debe ser positivo
Causa: flush-interval-seconds se establece en 0 o en un valor negativo.
Solución: se establece flush-interval-seconds en un entero positivo (mínimo 1).
Los registros DAB muestran que "Azure Log Analytics está deshabilitado"
Causa: enabled está false o falta en la configuración.
Solución: establezca enabled: true en la configuración.
Log Analytics frente a Application Insights
| Capacidad | Application Insights | Log Analytics |
|---|---|---|
| Enfoque | Supervisión del rendimiento de aplicaciones (APM) | Agregación de registros centralizada |
| Lenguaje de consulta | KQL | KQL |
| Ámbito | Aplicación única | Aplicaciones, máquinas virtuales, contenedores, recursos de Azure |
| Caso de uso | Rendimiento, excepciones, trazas | Cumplimiento, gobernanza, correlación entre recursos |
| Autenticación | Cadena de conexión | Identidad administrada (a través de DCR/DCE) |
Use Application Insights cuando necesite características de APM como el seguimiento de solicitudes, la asignación de dependencias y la generación de perfiles de rendimiento. Use Log Analytics cuando necesite el registro centralizado en varios recursos con los requisitos de cumplimiento de la empresa.