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 Event Hubs es una plataforma de flujo de macrodatos que recopila eventos de múltiples orígenes para que Azure y servicios externos los ingieran. En este artículo se explica cómo ingerir datos directamente desde un concentrador de eventos en un área de trabajo de Log Analytics.
En este tutorial, aprenderá a:
- Cree una tabla de destino para los datos del concentrador de eventos en su área de trabajo de Log Analytics
- Creación de un punto de conexión de recopilación de datos
- Creación de una regla de recopilación de datos
- Concesión de permisos de regla de recopilación de datos al centro de eventos
- Asociar la regla de recopilación de datos con el centro de eventos
Nota:
Aunque se puede crear una regla de recopilación de datos (DCR) y una tabla de destino en Azure Log Analytics a través de Azure Portal, la ingesta de eventos de Azure Event Hubs en los registros de Azure Monitor requiere una plantilla de implementación o la API de DCR. Esto se debe a que DCR debe incluir una sintaxis específica que no se admite en la interfaz del portal.
Requisitos previos
Para enviar eventos desde Azure Event Hubs a los registros de Azure Monitor, necesita estos recursos:
- Área de trabajo de Log Analytics en la que tenga al menos derechos de colaborador.
- Su área de trabajo de Log Analytics debe estar vinculada a un clúster dedicado o tener un nivel de compromiso.
- Espacio de nombres de centros de eventos que permita el acceso público a la red. Si el acceso a la red pública está deshabilitado, asegúrese de que "Permitir que los servicios de Microsoft de confianza omitan este firewall" esté establecido en "Sí".
- Centro de eventos con eventos. Puede enviar eventos a su centro de eventos mediante los pasos descritos en Tutoriales sobre envío y recepción de eventos en Azure Event Hubs o configurando los ajustes de diagnóstico de los recursos Azure.
Regiones compatibles
Azure Monitor actualmente admite la ingestión desde Event Hubs en estas regiones:
| América | Europa | Oriente Medio | África | Asia Pacífico |
|---|---|---|---|---|
| Sur de Brasil | Centro de Francia | Norte de Emiratos Árabes Unidos | Norte de Sudáfrica | Centro de Australia |
| Sur de Brasil | Norte de Europa | Este de Australia | ||
| Centro de Canadá | Este de Noruega | Sudeste de Australia | ||
| Este de Canadá | Norte de Suiza | Centro de la India | ||
| Este de EE. UU. | Oeste de Suiza | Este de Asia | ||
| Este de EE. UU. 2 | Sur de Reino Unido | Japón Oriental | ||
| Centro-sur de EE. UU. | Oeste de Reino Unido | JIO del Oeste de la India | ||
| Oeste de EE. UU. | Oeste de Europa | Centro de Corea del Sur | ||
| Oeste de EE. UU. 3 | Sudeste de Asia |
Debe crear la Asociación de reglas de recopilación de datos (DCRA) en la misma región que el centro de eventos. El área de trabajo de Log Analytics puede estar en cualquier región, pero la regla de recopilación de datos (DCR) y el punto de conexión de recopilación de datos (DCE) deben estar en la misma región que el área de trabajo de Log Analytics.
Para una latencia mínima, se recomienda colocar todos los recursos en la misma región.
Recopilación de la información necesaria
En los siguientes pasos, necesitará su ID de suscripción, nombre del grupo de recursos, nombre del espacio de trabajo, ID del recurso del espacio de trabajo e ID del recurso de la instancia del centro de eventos:
Vaya a su área de trabajo en el menú Áreas de trabajo de Log Analytics y seleccione Propiedades y copie su Id. de suscripción, Grupo de recursos y Nombre del área de trabajo. Necesita estos detalles para crear recursos en este tutorial.
Seleccione JSON para abrir la pantalla Recurso JSON y copie el ID de recurso del área de trabajo. Necesita el identificador de recurso del área de trabajo para crear una regla de recopilación de datos.
Vaya a su instancia de centro de eventos, seleccione JSON para abrir la pantalla Recurso JSON y copie el Id. de recurso de la instancia del centro de eventos. Necesita el ID de recurso de la instancia del hub de eventos para asociar la regla de recopilación de datos al hub de eventos.
Cree una tabla de destino en su área de trabajo de Log Analytics
Antes de poder ingestar datos, debe configurar una tabla de destino. Puede ingerir datos en tablas personalizadas y en tablas Azure compatibles.
Para crear una tabla personalizada en la que ingerir eventos, en el Azure Portal:
Seleccione el botón Cloud Shell y asegúrese de que el entorno está configurado como PowerShell.
Ejecute este comando de PowerShell para crear la tabla, proporcione el nombre de tabla (
<table_name>) en json (con sufijo _CL para una tabla personalizada) y establezca los<subscription_id>valores ,<resource_group_name>,<workspace_name>,<table_name>y<api_version>en elInvoke-AzRestMethod -Pathcomando :$tableParams = @' { "properties": { "schema": { "name": "<table_name>", "columns": [ { "name": "TimeGenerated", "type": "datetime", "description": "The time at which the data was ingested." }, { "name": "RawData", "type": "string", "description": "Body of the event." }, { "name": "Properties", "type": "dynamic", "description": "Additional message properties." } ] } } } '@ $restMethodParams = @{ Path = "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=<api_version>" Method = "PUT" Payload = $tableParams} Invoke-AzRestMethod @restMethodParams
Importante
- Los nombres de las columnas deben comenzar con una letra y pueden consistir en hasta 45 caracteres alfanuméricos y subrayados (
_). -
_ResourceId,id,_SubscriptionId,TenantId,Type,UniqueIdyTitleson nombres de columna reservados. - Los nombres de columna distinguen mayúsculas de minúsculas. Asegúrese de usar el caso correcto en la regla de recopilación de datos.
Nota:
Para obtener más información sobre las versiones de API admitidas actualmente, consulte Registro de cambios de versión de API para la implementación de Microsoft.OperationalInsights/workspaces/tables.
Creación de un punto de conexión de recopilación de datos
Para recopilar datos con una regla de recopilación de datos, necesita un punto de conexión de recopilación de datos:
Cree un punto de conexión de recopilación de datos.
Importante
Cree el punto de conexión de recopilación de datos en la misma región que el espacio de trabajo de Log Analytics.
En la pantalla de resumen del punto final de recopilación de datos, seleccione Vista JSON.
Copie el identificador de recurso de la regla de recopilación de datos. Esta información se usa en el paso siguiente.
Creación de una regla de recopilación de datos
Azure Monitor utiliza reglas de recopilación de datos para definir qué datos recopilar, cómo transformarlos y dónde enviarlos.
Para crear una regla de recopilación de datos en el Azure Portal:
En el cuadro de búsqueda del portal, escriba plantilla y, a continuación, seleccione Implementar una plantilla personalizada.
Seleccione Cree su propia plantilla en el editor.
Pegue la siguiente plantilla de Resource Manager en el editor y seleccione Guardar.
Observe los detalles siguientes en la regla de recopilación de datos:
identity- Define qué tipo de identidad administrada se va a utilizar. En nuestro ejemplo, utilizamos la identidad asignada por el sistema. También puede configurar la identidad administrada asignada por el usuario.dataCollectionEndpointId: Identificador de recurso del punto de conexión de recopilación de datos.streamDeclarations: define qué datos ingerir desde el centro de eventos (datos entrantes). La declaración del flujo no puede modificarse.-
TimeGenerated: la hora a la que los datos fueron ingeridos desde el centro de eventos a los registros de Azure Monitor. -
RawData: Cuerpo del evento. Para obtener más información, consulte Leer eventos. -
Properties: Propiedades de usuario del evento. Para obtener más información, consulte Leer eventos.
-
datasources: especifica el grupo de consumidores de centro de eventos y el flujo al que se ingestan los datos.destinations: especifica todos los destinos a los que se enviarán los datos. Puede ingestar datos en una o varias áreas de trabajo de Log Analytics.dataFlows: hace coincidir el flujo con el área de trabajo de destino y especifica la consulta de transformación y la tabla de destino. En nuestro ejemplo, ingerimos datos en la tabla personalizada que creamos anteriormente. También puede ingerir en una tabla de Azure compatible.transformKql: especifica una transformación para aplicar a los datos entrantes (declaración de flujo) antes de enviarlos al área de trabajo. En nuestro ejemplo, establecemostransformKqlysource, esto no modifica de ninguna manera los datos del origen, ya que estamos mapeando los datos entrantes a una tabla personalizada creada específicamente con el esquema correspondiente. Si está ingiriendo datos a una tabla con un esquema diferente o para filtrar datos antes de la ingestión, defina una transformación de recopilación de datos.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the data collection Rule to create." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } }, "endpointResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the data collection endpoint to use." } }, "tableName": { "type": "string", "metadata": { "description": "Specifies the name of the table in the workspace." } }, "consumerGroup": { "type": "string", "metadata": { "description": "Specifies the consumer group of event hub." }, "defaultValue": "$Default" } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[resourceGroup().location]", "apiVersion": "2022-06-01", "identity": { "type": "systemAssigned" }, "properties": { "dataCollectionEndpointId": "[parameters('endpointResourceId')]", "streamDeclarations": { "Custom-MyEventHubStream": { "columns": [ { "name": "TimeGenerated", "type": "datetime" }, { "name": "RawData", "type": "string" }, { "name": "Properties", "type": "dynamic" } ] } }, "dataSources": { "dataImports": { "eventHub": { "consumerGroup": "[parameters('consumerGroup')]", "stream": "Custom-MyEventHubStream", "name": "myEventHubDataSource1" } } }, "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "MyDestination" } ] }, "dataFlows": [ { "streams": [ "Custom-MyEventHubStream" ], "destinations": [ "MyDestination" ], "transformKql": "source", "outputStream": "[concat('Custom-', parameters('tableName'))]" } ] } } ] }En la pantalla Implementación personalizada, especifique una Suscripción y un Grupo de recursos para almacenar la regla de recopilación de datos y, a continuación, proporcione valores para los parámetros definidos en la plantilla, incluidos:
- Región: región para la regla de recopilación de datos. Se rellena automáticamente en función del grupo de recursos seleccionado.
- Nombre de la regla de recopilación de datos: asigne un nombre a la regla.
- ID de recurso del área de trabajo: consulte Recopilación de datos necesarios.
- Id. de recurso de punto de conexión: se genera al crear el punto de conexión de recopilación de datos.
-
Nombre de la tabla - El nombre de la tabla de destino. En nuestro ejemplo, y siempre que utilice una tabla personalizada, el nombre de la tabla debe terminar con el sufijo _CL. Si ingiere datos a una tabla Azure, introduzca el nombre de la tabla, por ejemplo,
Syslog- sin el sufijo. -
Grupo de consumidores: de manera predeterminada, el grupo de consumidores se establece en
$Default. Si es necesario, cambie el valor a otro grupo de consumidores del centro de eventos.
Seleccione Revisar y crear y, a continuación, Crear cuando revise los detalles.
Una vez completada la implementación, expanda el cuadro Detalles de la implementación y seleccione la regla de recopilación de datos para ver sus detalles. Seleccione Vista JSON.
Copie el identificador de recurso de la regla de recopilación de datos. Esta información se usa en el paso siguiente.
Configurar la identidad administrada asignada por el usuario (opcional)
Para configurar la regla de recopilación de datos para admitir la identidad asignada por el usuario, en la plantilla de DCR, reemplace:
"identity": {
"type": "systemAssigned"
},
Con:
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"<identity_resource_Id>": {
}
}
},
Para encontrar el <identity_resource_Id> valor, navegue hasta su recurso de identidad administrada asignada por el usuario en el portal de Azure, seleccione JSON para abrir la pantalla JSON del recurso y copie el ID de recurso de la identidad administrada.
Ingesta de datos de registro en una tabla Azure (opcional)
Para ingerir datos en una tabla Azure soportada:
En la regla de recopilación de datos, cambie
outputStream:Desde:
"outputStream": "[concat('Custom-', parameters('tableName'))]"Para:
"outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"En
transformKql, defina una transformación que envíe los datos ingeridos a las columnas de destino en la tabla Azure de destino.
Concesión del permiso del centro de eventos a la regla de recopilación de datos
Con identidad administrada, puede conceder cualquier centro de eventos o espacio de nombres de Event Hubs, permiso para enviar eventos a la regla de recopilación de datos y al punto de conexión de recopilación de datos que creó. Cuando se conceden los permisos al espacio de nombres Event Hubs, todos los centros de eventos dentro del espacio de nombres heredan los permisos.
Desde el centro de eventos o el espacio de nombres de centros de eventos en el Azure Portal, seleccione Control de acceso (IAM)>Añadir asignación de funciones.
Seleccione Azure Event Hubs Data Receiver y seleccione Siguiente.
Seleccione Identidad administrada para Asignar acceso a y haga clic en Seleccionar miembros. Seleccione Regla de recopilación de datos, busque la regla de recopilación de datos por nombre y haga clic en Seleccionar.
Seleccione Revisar + asignar y verifique los detalles antes de guardar la asignación de roles.
Asociar la regla de recopilación de datos con el centro de eventos
El paso final es asociar la regla de recopilación de datos al centro de eventos desde el que desea recopilar eventos.
Puede asociar una única regla de recopilación de datos con varios centros de eventos que compartan el mismo grupo de consumidores e ingieran datos en el mismo flujo. Como alternativa, puede asignar una única regla de recopilación de datos a cada centro de eventos.
Importante
Debe asociar al menos una regla de recopilación de datos al centro de eventos para ingerir datos de un centro de eventos. Al eliminar todas las asociaciones de reglas de recopilación de datos relacionadas con el centro de eventos, dejará de ingerir datos del centro de eventos.
Para crear una asociación de reglas de recopilación de datos en Azure Portal:
En el cuadro de búsqueda de Azure Portal, escriba plantilla y, a continuación, seleccione Implementar una plantilla personalizada.
Seleccione Cree su propia plantilla en el editor.
Pegue la siguiente plantilla de Resource Manager en el editor y seleccione Guardar.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "eventHubResourceID": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the event hub to use." } }, "associationName": { "type": "string", "metadata": { "description": "The name of the association." } }, "dataCollectionRuleID": { "type": "string", "metadata": { "description": "The resource ID of the data collection rule." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRuleAssociations", "apiVersion": "2021-09-01-preview", "scope": "[parameters('eventHubResourceId')]", "name": "[parameters('associationName')]", "properties": { "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.", "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]" } } ] }En la pantalla Implementación personalizada, especifique una Suscripción y un Grupo de recursos para almacenar la asociación de reglas de recopilación de datos y, a continuación, proporcione valores para los parámetros definidos en la plantilla, incluidos:
- Región: se rellena automáticamente en función del grupo de recursos seleccionado.
- Identificación del recurso de la instancia del centro de eventos: Consulte Recopilación de información requerida.
- Nombre de la asociación: asigne un nombre a la asociación.
- Id. de regla de recopilación de datos: se genera al crear la regla de recopilación de datos.
Seleccione Revisar y crear y, a continuación, Crear cuando revise los detalles.
Comprobación de la tabla de destino para ver los eventos ingeridos
Los registros de Azure Monitor ingieren todos los eventos que existen en el Centro de eventos en el momento de la creación del DCRA, siempre que su período de retención no haya expirado, así como todos los eventos nuevos.
Para comprobar la tabla de destino para ver los eventos ingeridos:
Vaya a su área de trabajo y seleccione Registros.
Escriba una consulta simple en el editor de consultas y seleccione Ejecutar:
<table_name>Debería ver eventos del centro de eventos.
Limpieza de recursos
En este tutorial, ha creado los siguientes recursos:
- Tabla personalizada
- Punto de conexión de recopilación de datos
- Regla de recopilación de datos
- Asociación de reglas para la recopilación de datos.
Evalúa si todavía necesitas estos recursos. Eliminar los recursos que no necesita individualmente, o eliminar todos estos recursos a la vez eliminando el grupo de recursos. Los recursos que deja en ejecución pueden costar dinero.
Para dejar de ingerir datos del centro de eventos, elimine todas las asociaciones de reglas de recopilación de datos relacionadas con el centro de eventos, o elimine las propias reglas de recopilación de datos. Estas acciones también restablecen el punto de comprobación del hub de eventos.
Problemas y limitaciones conocidos
- Si transfiere una suscripción entre directorios de Microsoft Entra, deberá seguir los pasos descritos en Problemas conocidos con identidades gestionadas para recursos Azure para continuar ingiriendo datos.
- Puede ingerir mensajes de hasta 64 KB desde Event Hubs a los registros de Azure Monitor.
Pasos siguientes
Más información acerca de: