Transmitir logs da plataforma Azure para os hubs de eventos do AzureStream Azure platform logs to Azure Event Hubs

Os logs de plataforma no Azure, incluindo logs de recursos e log de atividades do Azure, fornecem informações detalhadas de diagnóstico e auditoria para recursos do Azure e a plataforma do Azure da qual dependem.Platform logs in Azure, including Azure Activity log and resource logs, provide detailed diagnostic and auditing information for Azure resources and the Azure platform they depend on. Este artigo descreve os logs da plataforma de streaming para os hubs de eventos para enviar dados a sistemas externos, como SIEMs de terceiros e outras soluções do log Analytics.This article describes streaming platform logs to event hubs to send data to external systems such as third-party SIEMs and other log analytics solutions.

O que você pode fazer com os logs de plataforma enviados para um hub de eventosWhat you can do with platform logs sent to an event hub

Transmita logs da plataforma no Azure para os hubs de eventos para fornecer a seguinte funcionalidade:Stream platform logs in Azure to event hubs to provide the following functionality:

  • Transmita logs para sistemas de registro em log e telemetria de terceiros – transmita todos os seus logs de plataforma para um único Hub de eventos para canalizar dados de log para uma ferramenta Siem ou log Analytics de terceiros.Stream logs to 3rd party logging and telemetry systems – Stream all of your platform logs to a single event hub to pipe log data to a third-party SIEM or log analytics tool.

  • Crie uma plataforma de registro em log e telemetria personalizada – a natureza altamente escalonável de publicação-assinatura dos hubs de eventos permite que você inscreva com flexibilidade os logs da plataforma em uma plataforma teletry personalizada.Build a custom telemetry and logging platform – The highly scalable publish-subscribe nature of event hubs allows you to flexibly ingest platform logs into a custom teletry platform. Consulte projetando e dimensionando uma plataforma de telemetria de escala global nos hubs de eventos do Azure para obter detalhes.See Designing and Sizing a Global Scale Telemetry Platform on Azure Event Hubs for details.

  • Exibir a integridade do serviço transmitindo dados para Power bi – use os hubs de eventos, Stream Analytics e Power bi para transformar os dados de diagnóstico em informações quase em tempo real nos serviços do Azure.View service health by streaming data to Power BI – Use Event Hubs, Stream Analytics, and Power BI to transform your diagnostics data into near real-time insights on your Azure services. Consulte Stream Analytics e Power bi: um painel de análise em tempo real para dados de streaming para obter detalhes sobre essa solução.See Stream Analytics and Power BI: A real-time analytics dashboard for streaming data for details on this solution.

    O código SQL a seguir é um exemplo de consulta do Stream Analytics que você pode usar para analisar todos os dados de log em uma tabela do Power BI:The following SQL code is a sample Stream Analytics query that you can use to parse all the log data in to a Power BI table:

    SELECT
    records.ArrayValue.[Properties you want to track]
    INTO
    [OutputSourceName – the Power BI source]
    FROM
    [InputSourceName] AS e
    CROSS APPLY GetArrayElements(e.records) AS records
    

Pré-requisitosPrerequisites

Você precisará criar um hub de eventos se ainda não tiver um.You need to create an event hub if you don't already have one. Se você já tiver uma configuração de diagnóstico usando esse namespace de hubs de eventos, esse Hub de eventos será reutilizado.If you already have a diagnostic setting using this Event Hubs namespace, then that event hub will be reused.

A política de acesso compartilhado para o namespace define as permissões que o mecanismo de streaming tem.The shared access policy for the namespace defines the permissions that the streaming mechanism has. O streaming para hubs de eventos requer permissões de gerenciar, enviar e escutar.Streaming to Event Hubs requires Manage, Send, and Listen permissions. Você pode criar ou modificar políticas de acesso compartilhado no portal do Azure na guia Configurar para seu namespace de hubs de eventos.You can create or modify shared access policies in the Azure portal under the Configure tab for your Event Hubs namespace.

Para atualizar a configuração de diagnóstico para incluir streaming, você deve ter a permissão ListKey nessa regra de autorização de hubs de eventos.To update the diagnostic setting to include streaming, you must have the ListKey permission on that Event Hubs authorization rule. O namespace dos Hubs de Eventos não precisa estar na mesma assinatura que emite os logs, desde que o usuário que define a configuração tenha acesso RBAC adequado a ambas as assinaturas e as duas assinaturas estejam no mesmo locatário do ADD.The Event Hubs namespace does not have to be in the same subscription as the subscription that's emitting logs, as long as the user who configures the setting has appropriate RBAC access to both subscriptions and both subscriptions are in the same AAD tenant.

Criar uma configuração de diagnósticoCreate a diagnostic setting

Envie os logs da plataforma para um hub de eventos e outros destinos criando uma configuração de diagnóstico para um recurso do Azure.Send platform logs to an event hub and other destinations by creating a diagnostic setting for an Azure resource. Consulte criar configuração de diagnóstico para coletar logs e métricas no Azure para obter detalhes.See Create diagnostic setting to collect logs and metrics in Azure for details.

Coletar dados de recursos de computaçãoCollect data from compute resources

As configurações de diagnóstico coletarão logs de recursos para recursos de computação do Azure como qualquer outro recurso, mas não seu sistema operacional convidado ou cargas de trabalho.Diagnostic settings will collect resource logs for Azure compute resources like any other resource, but not their guest operating system or workloads. Para coletar esses dados, instale o agente de log Analytics.To collect this data, install the Log Analytics agent.

Consumindo dados de log dos hubs de eventosConsuming log data from event hubs

Os logs de plataforma dos hubs de eventos são consumidos no formato JSON com os elementos na tabela a seguir.Platform logs from event hubs are consumed in JSON format with the elements in the following table.

Nome do elementoElement Name DescriptionDescription
recordsrecords Uma matriz de todos os eventos de log nessa carga.An array of all log events in this payload.
timetime A hora na qual o evento ocorreu.Time at which the event occurred.
categorycategory Categoria do log desse evento.Log category for this event.
resourceIdresourceId ID de recurso do recurso que gerou esse evento.Resource ID of the resource that generated this event.
operationNameoperationName Nome da operação.Name of the operation.
levellevel Opcional.Optional. Indica o nível do evento de log.Indicates the log event level.
propertiesproperties Propriedades do evento.Properties of the event. Elas irão variar para cada serviço do Azure, conforme descrito em .These will vary for each Azure service as described in .

Veja a seguir exemplos de dados de saída dos hubs de eventos para um log de recursos:Following is sample output data from Event Hubs for a resource log:

{
    "records": [
        {
            "time": "2016-07-15T18:00:22.6235064Z",
            "workflowId": "/SUBSCRIPTIONS/DF602C9C-7AA0-407D-A6FB-EB20C8BD1192/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/DF602C9C-7AA0-407D-A6FB-EB20C8BD1192/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330013509921957/ACTIONS/SEND_EMAIL",
            "category": "WorkflowRuntime",
            "level": "Error",
            "operationName": "Microsoft.Logic/workflows/workflowActionCompleted",
            "properties": {
                "$schema": "2016-04-01-preview",
                "startTime": "2016-07-15T17:58:55.048482Z",
                "endTime": "2016-07-15T18:00:22.4109204Z",
                "status": "Failed",
                "code": "BadGateway",
                "resource": {
                    "subscriptionId": "df602c9c-7aa0-407d-a6fb-eb20c8bd1192",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330013509921957",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "29a9862f-969b-4c70-90c4-dfbdc814e413",
                    "clientTrackingId": "08587330013509921958"
                }
            }
        },
        {
            "time": "2016-07-15T18:01:15.7532989Z",
            "workflowId": "/SUBSCRIPTIONS/DF602C9C-7AA0-407D-A6FB-EB20C8BD1192/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA",
            "resourceId": "/SUBSCRIPTIONS/DF602C9C-7AA0-407D-A6FB-EB20C8BD1192/RESOURCEGROUPS/JOHNKEMTEST/PROVIDERS/MICROSOFT.LOGIC/WORKFLOWS/JOHNKEMTESTLA/RUNS/08587330012106702630/ACTIONS/SEND_EMAIL",
            "category": "WorkflowRuntime",
            "level": "Information",
            "operationName": "Microsoft.Logic/workflows/workflowActionStarted",
            "properties": {
                "$schema": "2016-04-01-preview",
                "startTime": "2016-07-15T18:01:15.5828115Z",
                "status": "Running",
                "resource": {
                    "subscriptionId": "df602c9c-7aa0-407d-a6fb-eb20c8bd1192",
                    "resourceGroupName": "JohnKemTest",
                    "workflowId": "243aac67fe904cf195d4a28297803785",
                    "workflowName": "JohnKemTestLA",
                    "runId": "08587330012106702630",
                    "location": "westus",
                    "actionName": "Send_email"
                },
                "correlation": {
                    "actionTrackingId": "042fb72c-7bd4-439e-89eb-3cf4409d429e",
                    "clientTrackingId": "08587330012106702632"
                }
            }
        }
    ]
}

Próximos passosNext steps