Coletores agregados

É possível criar 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, você pode agregar e exportar entradas de registro de auditoria dos projetos de uma organização para um local central.

Conceito

Sem o recurso de coletor agregado, os coletores sã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 o filtro do coletor para especificar entradas de registro de projetos, tipos de recursos ou registros específicos.

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 a seguir 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.sinks.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 a essa conta de serviço permissã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 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 IAM para que o pai crie o coletor. Para mais informações sobre os papéis do IAM do Logging, 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 a essa conta de serviço permissã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 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 filtros com coletores agregados

Como qualquer outro coletor, o coletor agregado contém um filtro que seleciona entradas de registro individuais. Para mais detalhes sobre filtros, acesse Linguagem de consulta do Logging.

Veja a seguir alguns exemplos de comparações de filtros 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 de consulta do Logging.

Preços

Os registros exportados não estão sujeitos às cobranças do Cloud Logging, mas é possível que haja cobranças de destino. Para detalhes, consulte a página de preços do produto apropriado: