Coletores agregados

Crie um coletor agregado capaz de exportar entradas de registro de todos os projetos, pastas e contas de faturamento de uma organização do Google Cloud. Por exemplo, é possível agregar e exportar entradas de registro de auditoria dos projetos da organização para um local central.

Conceito

Sem o recurso de coletor agregado, os coletores estão limitados à exportação de entradas de registro do recurso exato em que o coletor foi criado: um projeto, uma organização, uma pasta ou uma conta de faturamento do Google Cloud.

Para usar o recurso de coletor agregado, crie um coletor em uma organização ou pasta do Google Cloud e defina o parâmetro includeChildren do coletor como True. Assim, esse coletor poderá exportar entradas de registro da organização ou pasta e, de maneira recursiva, de qualquer pasta, contas de faturamento ou projetos contidos. Use a consulta do coletor para especificar entradas de registro de projetos, tipos de recursos ou registros nomeados.

Para mais informações sobre coletores e como criá-los, acesse Como exportar registros na API e Como usar a ferramenta de linha de comando para criar coletores.

Como criar o destino da exportação

O destino dos coletores de registros precisa ser criado antes do coletor, por meio da ferramenta de linha de comando gcloud, do Console do Cloud ou das APIs do Google Cloud.

Veja abaixo os destinos compatíveis com coletores:

Se a conta de serviço do coletor de registros tiver permissões para gravar no destino, será possível criar o destino em qualquer projeto do Google Cloud, em qualquer organização.

Como criar um coletor agregado

Para criar um coletor agregado nas pastas, contas de faturamento ou organizações do Google Cloud, use a API Cloud Logging ou a ferramenta de linha de comando gcloud.

API Logging

Para criar um coletor de geração de registros, use organications.sinks.create, folders.sinks.create ou billingAccounts.sinks.create na API Logging. Prepare os argumentos do método da seguinte maneira:

  1. Defina o parâmetro parent como a organização, a pasta ou a conta de faturamento do Google Cloud para criar o coletor. O pai precisa ser um dos seguintes parâmetros:

    • organizations/[ORGANIZATION_ID]
    • folders/[FOLDER_ID]
    • billingAccounts/[BILLING_ACCOUNT_ID]
  2. No objeto LogSink no corpo da solicitação do método:

    • Defina includeChildren como True.

    • Defina a propriedade query, tendo em mente que as entradas de registro de todos os projetos serão comparadas com a consulta.

      Para ver alguns exemplos de consultas úteis, acesse Como usar consultas com coletores agregados.

    • Defina os campos restantes do LogSink como faria para qualquer coletor. Para mais informações, consulte Como criar coletores.

  3. Chame organizations.sink.create ou folders.sinks.create para criar o coletor.

  4. Recupere o nome da conta de serviço usado para criar o coletor com base na resposta de API.

  5. Conceda permissão a essa conta de serviço para gravar no destino do coletor.

    Se você não tiver permissão para fazer essa alteração no destino do coletor, envie o nome da conta de serviço para alguém que possa fazer essa alteração para você.

    Para mais informações sobre como conceder permissões a contas de serviço para recursos, consulte Como atribuir papéis a uma conta de serviço.

gcloud

Para criar um coletor de geração de registros, use o comando logging sinks create.

  1. Forneça o nome do coletor, o destino do coletor, a consulta de registros e o ID da pasta, da conta de faturamento ou da organização.

    Por exemplo, configure um coletor agregado no nível da pasta desta forma:

        gcloud logging sinks create [SINK_NAME] \
        storage.googleapis.com/[BUCKET_NAME] --include-children \
        --folder=[FOLDER_ID] --log-filter="logName:activity"

    Notas:

    • Para criar um coletor no nível da organização, substitua --folder=[FOLDER_ID] por --organization=[ORGANIZATION_ID]. Para uma conta de faturamento, substitua por --billing-account=[BILLING_ACCOUNT_ID].

    • Para que o coletor inclua todos os projetos da organização, a sinalização --include-children precisa ser definida, mesmo quando a sinalização --organization for passada para create. Quando for definido como false (padrão), um coletor exportará apenas registros do recurso host.

    • É preciso ter o papel de Gravador de configuração de registros do Cloud IAM para que o pai crie o coletor. Para mais informações sobre os papéis do Logging Cloud IAM, consulte o Guia de controle de acesso.

    • Para ver alguns exemplos de consultas úteis, acesse Como usar consultas com coletores agregados.

  2. Recupere o nome da conta de serviço usado para criar o coletor com base na saída do comando.

  3. Conceda permissão a essa conta de serviço para gravar no destino do coletor.

    Se você não tiver permissão para fazer essa alteração no destino do coletor, envie o nome da conta de serviço para alguém que possa fazer essa alteração para você.

    Para mais informações sobre como conceder permissões a contas de serviço para recursos, consulte Como atribuir papéis a uma conta de serviço.

Como usar consultas com coletores agregados

Como qualquer outro, seu coletor agregado contém uma consulta que seleciona entradas de registro individuais. Para mais detalhes sobre consultas, acesse linguagem da consuta no Logging.

Veja a seguir alguns exemplos de comparações de consultas que são úteis ao usar o recurso de coletores agregados. Alguns exemplos utilizam a seguinte notação:

  • :: é o operador de substring. Não substitua o operador =.
  • ... representa qualquer comparação de consulta adicional.
  • As variáveis são indicadas por colchetes []. Substitua-os por valores válidos.

Como escolher a origem de exportação

Para exportar registros de pastas, organizações ou projetos específicos, use uma das seguintes comparações de amostra:

logName:"projects/[PROJECT_ID]/logs/" AND ... 
logName:("projects/[PROJECT_A_ID]/logs/" OR "projects/[PROJECT_B_ID]/logs/") AND ... 
logName:"folders/[FOLDER_ID]/logs/" AND ... 
logName:"organizations/[ORGANIZATION_ID]/logs/" AND ... 

Como selecionar recursos

Para exportar registros a partir de apenas um recurso específico em um projeto, use várias comparações para especificar o recurso de maneira exata:

    logName:"projects/[PROJECT_ID]/logs" AND
    resource.type=[RESOURCE_TYPE] AND
    resource.labels.instance_id=[INSTANCE_ID]
    

Para ver uma lista de tipos de recursos, acesse Tipos de recursos monitorados.

Amostragem de entradas de registro

Para exportar uma amostra aleatória de entradas de registro, adicione a função incorporada sample. Por exemplo, para exportar apenas 10% das entradas de registro correspondentes à sua consulta atual, use esta adição:

sample(insertId, 0.10) AND ...
    

Para mais informações, consulte a função sample.

Para mais informações sobre as consultas do Cloud Logging, vá para linguagem da consulta do Logging.