Ajude a moldar o futuro das operações de software e manifeste-se na pesquisa de estado de DevOps 1202.

Coletores agregados

Esta página descreve como criar um coletor agregado que direcione as entradas de registro de todos os projetos, pastas e contas de faturamento do Google Cloud de uma organização do Google Cloud. Por exemplo, é possível agregar e encaminhar entradas de registro de auditoria dos projetos do Cloud da organização para um destino central.

Conceito

Sem o recurso de coletor agregado, os coletores estão limitados a rotear 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 coletores agregados, 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á rotear 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.

Criar o destino

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 Cloud em qualquer organização.

Criar um coletor agregado

Para criar um coletor agregado nas pastas, contas de faturamento ou organizações do Google Cloud, use o comandoAPI Cloud Logging ou gcloud ferramenta de linha de comando para começar.

API

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, faça o seguinte:

    • Defina includeChildren como True.

    • Defina a propriedade filter. O Logging compara todas as entradas de registro de todos os projetos com o filtro.

      Para ver exemplos de filtros úteis, acesse Criar filtros para 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 do campo writer_identity retornado da resposta da API.

  5. Conceda permissão à 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 mais informações sobre como conceder permissões a contas de serviço para recursos, consulte os links a seguir do destino do coletor:

    buckets do Cloud Storage Tópicos do Pub/Sub Tabelas do BigQuery buckets do Cloud Logging

command-line

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, o filtro e o código da pasta, a conta de faturamento ou a 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 só roteará 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 alguns exemplos de filtros úteis, acesse os exemplos da ferramenta de linha de comando gcloud para Como criar coletores.

  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 os links a seguir do destino do coletor:

Criar filtros para 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 filtro extra.
  • As variáveis são indicadas por texto colorido. As substitua por valores válidos.

Selecione a origem do registro

Para rotear registros de pastas, organizações ou projetos específicos do Cloud, 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 ... 

Selecionar o recurso monitorado

Para rotear registros de apenas um recurso monitorado específico em um projeto do Cloud, use várias comparações para especificar o recurso exatamente:

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.

Selecionar uma amostra de entradas de registro

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

sample(insertId, 0.10) AND ...

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

Para mais informações sobre os filtros do Cloud Logging, acesse Linguagem de consulta do Logging.

Preços

Não há cobranças para registros de roteamento, mas cobranças de destino podem ser aplicadas. Para detalhes, consulte a página de preços do produto apropriado: