Encaminhar registros para destinos compatíveis

Neste documento, explicamos como criar e gerenciar coletores, que roteiam entradas de registro originadas em um projeto do Google Cloud para destinos compatíveis.

Quando o destino de um coletor não é um bucket de registros no projeto do Google Cloud em que uma entrada de registro é originada, uma conta de serviço é necessária. O Cloud Logging cria e gerencia essa conta de serviço automaticamente. No entanto, talvez seja necessário modificar as permissões concedidas à conta de serviço. É possível criar e gerenciar uma conta de serviço usada por sinks em vários projetos. Para mais informações, consulte Configurar receptores de registro com contas de serviço gerenciado pelo usuário.

Visão geral

Os Sinks determinam como o Cloud Logging encaminha entradas de registro. Com coletores, é possível rotear algumas ou todas as suas entradas de registro para os seguintes destinos:

  • Bucket do Cloud Logging: oferece armazenamento no Cloud Logging. Um bucket de registro pode armazenar entradas de registro que são recebidas por vários projetos do Google Cloud. O bucket de registros pode estar no mesmo projeto em que as entradas de registro são originadas ou em um projeto diferente. Para informações sobre como visualizar entradas de registro armazenadas em buckets de registro, consulte Visão geral dos registros de consulta e visualização e Visualizar registros roteados para buckets do Cloud Logging.

    É possível combinar seus dados do Cloud Logging com outros dados atualizando um bucket de registros para usar a Análise de dados de registros e, em seguida, criando um conjunto de dados vinculado, que é um conjunto de dados somente leitura que pode ser consultado pelas páginas BigQuery Studio e Looker Studio.

  • Conjunto de dados do BigQuery: oferece armazenamento de entradas de registro em um conjunto de dados do BigQuery gravável. O conjunto de dados do BigQuery pode estar no mesmo projeto em que as entradas de registro são originadas ou em um projeto diferente. É possível usar os recursos de análise de Big Data nas entradas de registro armazenadas. Para saber como visualizar entradas de registro roteadas para o BigQuery, consulte Conferir registros roteados para o BigQuery.

  • Bucket do Cloud Storage: armazena entradas de registro no Cloud Storage. O bucket do Cloud Storage pode estar no mesmo projeto em que as entradas de registro são originadas ou em um projeto diferente. As entradas de registro são armazenadas na forma de arquivos JSON. Para informações sobre como visualizar entradas de registro roteadas para o Cloud Storage, consulte Visualizar registros roteados para o Cloud Storage.
  • Tópico do Pub/Sub: oferece suporte a integrações de terceiros. As entradas de registro são formatadas em JSON e encaminhadas para um tópico do Pub/Sub. O tópico pode estar no mesmo projeto em que as entradas de registro originam ou em um projeto diferente. Para informações sobre como conferir as entradas de registro roteadas para o Pub/Sub, consulte Conferir registros roteados para o Pub/Sub.

  • Projeto do Google Cloud: roteie entradas de registro para outro projeto do Google Cloud. Nessa configuração, os coletores no projeto de destino processam as entradas de registro.

Os coletores pertencem a um determinado recurso do Google Cloud: um projeto do Google Cloud, uma conta de faturamento, uma pasta ou uma organização. Quando o recurso recebe uma entrada de registro, todos os coletores no recurso processam a entrada de registro. Quando uma entrada de registro corresponde aos filtros do coletor, ela é roteada para o destino do coletor.

Normalmente, os coletores só encaminham as entradas de registro que se originam em um recurso. No entanto, para pastas e organizações, é possível criar coletores agregados, que encaminham entradas de registro da pasta ou organização e dos recursos que ela contém. Este documento não aborda sinks agregados. Para mais informações, consulte Agrupar e rotear registros no nível da organização para destinos compatíveis.

Para criar e gerenciar coletores, use o console do Google Cloud, a API Cloud Logging e a Google Cloud CLI. Recomendamos que você use o Console do Google Cloud:

  • A página Roteador de registros lista todos os coletores e oferece opções para gerenciar esses coletores.
  • Ao criar um coletor, você pode conferir quais entradas de registro são correspondidas pelos filtros dele.
  • É possível configurar destinos de coletor ao criar um coletor.
  • Algumas etapas de autorização são concluídas para você.

Antes de começar

As instruções neste documento descrevem a criação e o gerenciamento de coletores no nível do projeto do Google Cloud. Você pode usar o mesmo procedimento para criar um coletor que roteie entradas de registro originadas em uma organização, pasta ou conta de faturamento.

Para começar, faça o seguinte:

  1. Enable the Cloud Logging API.

    Enable the API

  2. Verifique se o projeto do Google Cloud contém entradas de registro que podem ser vistas no Explorador de registros.

  3. Para receber as permissões necessárias para criar, modificar ou excluir um sink, peça ao administrador para conceder a você o papel do IAM Gravador de configuração de registros (roles/logging.configWriter) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

    Para informações sobre como conceder papéis do IAM, consulte o Guia de controle de acesso do Logging.

  4. Você tem um recurso em um destino compatível ou pode criar um.

    Para encaminhar entradas de registro a um destino, ele precisa existir antes da criação do coletor. É possível criar o destino em qualquer projeto do Google Cloud em qualquer organização.

  5. Antes de criar um coletor, analise as limitações que se aplicam ao destino do coletor. Para mais informações, consulte a seção Limitações de destino neste documento.

  6. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Criar um coletor

Confira a seguir as instruções para criar um coletor em um projeto do Google Cloud. Use o mesmo procedimento para rotear entradas de registro que se originam em uma organização, pasta ou conta de faturamento:

  • É possível criar até 200 coletores por projeto do Google Cloud.
  • Não coloque informações sensíveis em filtros de sumidouro. Os filtros de sumidouro são tratados como dados de serviço.
  • Os novos coletores de registro em buckets do Cloud Storage podem levar várias horas para começar a rotear as entradas de registro. Os coletores para o Cloud Storage são processados a cada hora, enquanto outros tipos de destino são processados em tempo real.
  • Os sinks não podem encaminhar entradas de registro para conjuntos de dados vinculados do BigQuery, que são somente leitura. Se você quiser encaminhar entradas de registro para o BigQuery, o conjunto de dados de destino precisa ter permissão de gravação.

  • Os coletores não definem o esquema dos conjuntos de dados do BigQuery. Em vez disso, a primeira entrada de registro recebida pelo BigQuery determina o esquema da tabela de destino. Para mais informações, consulte Esquema do BigQuery para registros roteados.

  • Para informações sobre como visualizar as entradas de registro no destino de um coletor, consulte Conferir registros roteados para buckets do Cloud Logging.

  • Para conferir o número e o volume de entradas de registro roteadas, acesse as métricas logging.googleapis.com/exports/.

  • Quando uma consulta contém várias instruções, é possível especificar como elas são agrupadas ou confiar no Cloud Logging para adicionar implicitamente a restrição conjuntiva AND entre as instruções. Por exemplo, suponha que uma caixa de diálogo de consulta ou filtro contenha duas instruções, resource.type = "gce_instance" e severity >= "ERROR". A consulta real é resource.type = "gce_instance" AND severity >= "ERROR". O Cloud Logging oferece suporte a restrições disjuntivas, OR, e restrições conjuntivas, AND. Ao usar instruções OR, recomendamos que você agrupe as cláusulas com parênteses. Para mais informações, consulte a Linguagem de consulta do Logging.

Para criar um coletor, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a página Roteador de registros:

    Acessar o roteador de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Selecione o projeto do Google Cloud em que as entradas de registro que você quer encaminhar se originam.

    Por exemplo, se você quiser encaminhar as entradas de registro de acesso a dados do projeto Project-A para um bucket de registros no projeto Project-B, selecione Project-A.

  3. Selecione Criar coletor.

  4. No painel Detalhes do coletor, insira os seguintes detalhes:

    • Nome do coletor: forneça um identificador para o coletor. Depois de criar o coletor, não será possível renomeá-lo, mas será possível excluí-lo e criar um novo coletor.

    • Descrição do coletor (opcional): descreva a finalidade ou o caso de uso do coletor.

  5. No painel Destino do coletor, selecione o serviço de coletor e o destino usando o menu Selecionar serviço do coletor. Faça uma das seguintes ações:

    • Para encaminhar entradas de registro para um serviço no mesmo projeto do Google Cloud, selecione uma das seguintes opções:

      • Conjunto de dados do BigQuery: selecione ou crie o conjunto de dados gravável para receber as entradas de registro roteadas. Você também tem a opção de usar tabelas particionadas.
      • Bucket do Cloud Storage: selecione ou crie o bucket específico do Cloud Storage para receber as entradas de registro roteadas.
      • Tópico do Pub/Sub: selecione ou crie o tópico específico para receber as entradas de registro roteadas.
      • Splunk: selecione o tópico do Pub/Sub do serviço Splunk.
    • Para encaminhar entradas de registro a um projeto diferente do Google Cloud, selecione Projeto do Google Cloud e insira o nome totalmente qualificado do destino. Para informações sobre a sintaxe, consulte os Formatos de caminho de destino.

    • Para rotear entradas de registro para um serviço em um projeto diferente do Google Cloud, faça o seguinte:

      1. Selecione Outro recurso.
      2. Insira o nome totalmente qualificado do destino. Para informações sobre a sintaxe, consulte os Formatos de caminho de destino.
  6. Especifique as entradas de registro a serem incluídas:

    1. Acesse o painel Escolha os registros para incluir no coletor.

    2. No campo Criar filtro de inclusão, insira uma expressão de filtro que corresponda às entradas de registro que você quer incluir. Para saber mais sobre a sintaxe para escrever filtros, consulte Linguagem de consulta do Logging.

      Se você não definir um filtro, todas as entradas de registro do recurso selecionado serão roteadas para o destino.

      Por exemplo, para encaminhar todas as entradas de registro de acesso a dados para um bucket do Logging, use o seguinte filtro:

      log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
      

      O comprimento de um filtro não pode exceder 20.000 caracteres.

    3. Para conferir se você inseriu o filtro correto, selecione Visualizar registros. O Explorador de registros é aberto em uma nova guia com o filtro pré-preenchido.

  7. (Opcional) Configure um filtro de exclusão para eliminar algumas das entradas de registro incluídas:

    1. Acesse o painel Escolher registros para filtrar do coletor.

    2. No campo Nome do filtro de exclusão, insira um nome.

    3. No campo Criar um filtro de exclusão, insira uma expressão de filtro que corresponda às entradas de registro que você quer excluir. Também é possível usar a função sample para selecionar uma parte das entradas de registro a serem excluídas.

    É possível criar até 50 filtros de exclusão por coletor. O comprimento de um filtro não pode exceder 20.000 caracteres.

  8. Selecione Criar coletor.

  9. Conceda à conta de serviço do coletor a permissão para gravar entradas de registro no destino do coletor. Para mais informações, consulte Definir permissões de destino.

gcloud

Para criar um coletor, faça o seguinte:

  1. Execute este comando gcloud logging sinks create:

    gcloud logging sinks create SINK_NAME SINK_DESTINATION
    

    Antes de executar o comando, faça estas substituições:

    • SINK_NAME: o nome do coletor de registros. Não é possível mudar o nome de uma sink depois de criá-la.
    • SINK_DESTINATION: o serviço ou projeto para onde você quer que as entradas de registro sejam roteadas. Defina SINK_DESTINATION com o caminho adequado, conforme descrito em Formatos de caminho de destino.

      Por exemplo, se o destino do coletor for um tópico do Pub/Sub, SINK_DESTINATION vai ser semelhante a este:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

    Também é possível fornecer as seguintes opções:

    • --log-filter : use essa opção para definir um filtro que corresponde às entradas de registro que você quer incluir no coletor. Se você não fornecer um valor para o filtro de inclusão, ele vai corresponder a todas as entradas de registro.
    • --exclusion: use essa opção para definir um filtro de exclusão para as entradas de registro que você quer excluir do roteamento. Também é possível usar a função sample para selecionar uma parte das entradas de registro a serem excluídas. Essa opção pode ser repetida. É possível criar até 50 filtros de exclusão por coletor.
    • --description: use essa opção para descrever a finalidade ou o caso de uso do coletor.

    Por exemplo, para criar um coletor para um bucket do Logging, seu comando pode ter esta aparência:

    gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
     --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
    

    Para mais informações sobre como criar sinks usando a Google Cloud CLI, consulte a referência gcloud logging sinks.

  2. Se a resposta do comando contiver uma chave JSON com o rótulo "writerIdentity", conceda à conta de serviço do coletor a permissão para gravar no destino do coletor. Para mais informações, consulte Definir permissões de destino.

    Não é necessário definir permissões de destino quando a resposta não contém uma chave JSON com o rótulo "writerIdentity".

REST

  1. Para criar um coletor de geração de registros no seu projeto do Google Cloud, use projects.sinks.create na API Logging. No objeto LogSink, forneça os valores necessários apropriados no corpo da solicitação do método:

    • name: um identificador do coletor. Depois de criar o coletor, não será possível renomear o coletor, mas você poderá excluí-lo e criar um novo coletor.
    • destination: o serviço e o destino para onde você quer que as entradas de registro sejam roteadas. Para encaminhar entradas de registro para um projeto diferente ou para um destino que esteja em outro projeto, defina o campo destination com o caminho apropriado, conforme descrito em Formatos de caminho de destino.

      Por exemplo, se o destino do coletor for um tópico do Pub/Sub, o destination vai ser parecido com este:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      
  2. No objeto LogSink, forneça as informações opcionais adequadas:

    • filter : defina o campo filter para corresponder às entradas de registro que você quer incluir no coletor. Se você não definir um filtro, todas as entradas de registro do seu projeto do Google Cloud serão roteadas para o destino. O comprimento de um filtro não pode exceder 20.000 caracteres.
    • exclusions: defina esse campo para corresponder às entradas de registro que você quer excluir do coletor. Também é possível usar a função sample para selecionar uma parte das entradas de registro a serem excluídas. É possível criar até 50 filtros de exclusão por coletor.
    • description: defina esse campo para descrever a finalidade ou o caso de uso do coletor.
  3. Chame projects.sinks.create para criar o coletor.

  4. Se a resposta da API contiver uma chave JSON com o rótulo "writerIdentity", conceda à conta de serviço do sink a permissão para gravar no destino do sink. Para mais informações, consulte Definir permissões de destino.

    Não é necessário definir permissões de destino quando a resposta da API não contém uma chave JSON com o rótulo "writerIdentity".

Para mais informações sobre como criar coletores usando a API Logging, consulte a referência LogSink.

Se você receber notificações de erro, consulte Resolver problemas de roteamento e coletores.

Formatos de caminho de destino

Se você encaminhar entradas de registro para um serviço em outro projeto, forneça o coletor com o nome totalmente qualificado do serviço. Da mesma forma, se você encaminhar entradas de registro para um projeto diferente do Google Cloud, forneça ao sink o nome totalmente qualificado do projeto de destino:

  • Bucket de registros do Cloud Logging:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • Outro projeto do Google Cloud:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • Conjunto de dados do BigQuery:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • Cloud Storage:

    storage.googleapis.com/BUCKET_NAME
    
  • Tópico do Pub/Sub:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

Gerenciar coletores

Depois que os coletores são criados, é possível executar as seguintes ações neles. Qualquer mudança feita em um sink pode levar alguns minutos para ser aplicada:

  • Ver detalhes
  • Atualizar
  • Desativar

    • Não é possível desativar o coletor _Required.
    • É possível desativar o coletor _Default para que ele não roteie entradas de registro para o bucket de registro _Default.
    • Se você quiser desativar o coletor _Default para novos projetos ou pastas do Google Cloud criados na sua organização, configure as configurações de recursos padrão.
  • Excluir

    • Não é possível excluir os coletores _Default ou _Required.
    • Quando você exclui um coletor, ele não encaminha mais entradas de registro.
    • Se o coletor tiver uma conta de serviço dedicada, a exclusão dele também vai excluir a conta de serviço. Os sumidouros criados antes de 22 de maio de 2023 têm contas de serviço dedicadas. Os sumidouros criados a partir de 22 de maio de 2023 têm uma conta de serviço compartilhada. A exclusão do coletor não exclui a conta de serviço compartilhada.
  • Resolver falhas

  • Conferir o volume de registro e as taxas de erro

Confira a seguir as instruções para gerenciar um coletor em um projeto do Google Cloud. Em vez de um projeto do Google Cloud, é possível especificar uma conta de faturamento, pasta ou organização:

Console

  1. No Console do Google Cloud, acesse a página Roteador de registros:

    Acessar o roteador de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Na barra de ferramentas, selecione o recurso que contém a sink. O recurso pode ser um projeto, uma pasta, uma organização ou uma conta de faturamento.

A página Roteador de registros mostra os coletores no recurso selecionado. Cada linha da tabela contém informações sobre as propriedades de um coletor:

  • Ativado: indica se o estado do coletor está ativado ou desativado.
  • Tipo: o serviço de destino do coletor. por exemplo, Cloud Logging bucket.
  • Nome: o identificador do coletor, conforme fornecido quando o coletor foi criado. Por exemplo, _Default.
  • Descrição: a descrição do coletor, conforme fornecido quando o coletor foi criado.
  • Destino: o nome completo do destino para onde as entradas de registro roteadas são enviadas.
  • Criado: a data e hora em que o coletor foi criado.
  • Última atualização: é a data e a hora em que o coletor foi editado pela última vez.

Para cada linha da tabela, o menu Mais ações do oferece as seguintes opções:

  • Visualizar detalhes do coletor: exibe o nome, a descrição, o serviço de destino, o destino e os filtros de inclusão e exclusão do coletor. Selecione Editar para abrir o painel Editar coletor.
  • Editar coletor: abre o painel Editar coletor em que é possível atualizar os parâmetros do coletor.
  • Desativar coletor: permite desativar o coletor e interromper o roteamento de entradas de registro para o destino do coletor. Para mais informações sobre como desativar coletores, consulte Parar de armazenar registros em buckets de registro.
  • Ativar coletor: permite que você ative um coletor desativado e reinicie as entradas de registro de roteamento para o destino do coletor.
  • Excluir coletor: permite excluir o coletor e parar de rotear as entradas de registro para o destino do coletor.
  • Resolver problemas do coletor: abre o Explorador de registros, onde é possível resolver problemas com o coletor.
  • Conferir as taxas de erro e o volume de registro do coletor: abre o Metrics Explorer, onde é possível conferir e analisar dados do coletor.

Para classificar a tabela por uma coluna, selecione o nome dela.

gcloud

  • Para conferir a lista de coletores do projeto do Google Cloud, use o comando gcloud logging sinks list, que corresponde ao método da API Logging projects.sinks.list:

    gcloud logging sinks list
    

    Para conferir a lista de coletores agregados, use a opção adequada para especificar o recurso que contém o coletor. Por exemplo, se você criou o coletor no nível da organização, use a opção --organization=ORGANIZATION_ID para listar os coletores da organização.

  • Para descrever um coletor, use o comando gcloud logging sinks describe, que corresponde ao método da API Logging projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  • Para atualizar um coletor, use o comando gcloud logging sinks update, que corresponde ao método de API projects.sink.update.

    Atualize um coletor para alterar o destino, os filtros e a descrição, ou para desativar ou reativar o coletor:

    gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER

    Omita NEW_DESTINATION ou --log-filter se essas partes não mudarem.

    Por exemplo, para atualizar o destino do coletor denominado my-project-sink para um novo destino de bucket do Cloud Storage chamado my-second-gcs-bucket, o comando é semelhante a este:

    gcloud logging sinks update  my-project-sink storage.googleapis.com/my-second-gcs-bucket
    
  • Para desativar um coletor, use o comando gcloud logging sinks update, que corresponde ao método de API projects.sink.update, e inclua a opção --disabled:

    gcloud logging sinks update SINK_NAME --disabled
    

    Para reativar o coletor, use o comando gcloud logging sinks update, remova a opção --disabled e inclua a opção --no-disabled:

    gcloud logging sinks update SINK_NAME --no-disabled
    
  • Para excluir um coletor, use o comando gcloud logging sinks delete, que corresponde ao método de API projects.sinks.delete:

    gcloud logging sinks delete SINK_NAME
    

    Para mais informações sobre como gerenciar sinks usando a Google Cloud CLI, consulte a referência gcloud logging sinks.

REST

  • Para conferir os coletores do projeto do Google Cloud, chame projects.sinks.list.

  • Para visualizar os detalhes de um coletor, chame projects.sinks.get.

  • Para atualizar um coletor, chame projects.sink.update.

    É possível atualizar o destino, os filtros e a descrição de um coletor. Também é possível desativar ou reativar o coletor.

  • Para desativar um coletor, defina o campo disabled no objeto LogSink como true e chame projects.sink.update.

    Para reativar o coletor, defina o campo disabled no objeto LogSink como false e chame projects.sink.update.

  • Para excluir um coletor, chame projects.sinks.delete.

    Para mais informações sobre como gerenciar coletores usando a API Logging, consulte a referência LogSink.

Parar de armazenar entradas de registro em buckets de registro

É possível desativar o coletor _Default e qualquer coletor definido pelo usuário. Quando você desativa um coletor, ele para de rotear entradas de registro para o destino. Por exemplo, se você desativar o coletor _Default, nenhuma entrada de registro será roteada para o bucket _Default. O bucket _Default fica vazio quando todas as entradas de registro armazenadas anteriormente atendem ao período de armazenamento do bucket.

As instruções a seguir ilustram como desativar os coletores de projeto do Google Cloud que encaminham entradas de registro para os buckets de registro _Default:

Console

  1. No Console do Google Cloud, acesse a página Roteador de registros:

    Acessar o roteador de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Para encontrar todos os coletores que encaminham entradas de registro para o bucket de registros _Default, filtre os coletores por destino e insira _Default.
  3. Para cada coletor, selecione Menu e selecione Desativar coletor.

    Os coletores agora estão desativados, e os coletores de projetos do Google Cloud não estão mais registrando entradas de registro para o bucket _Default.

Para reativar um coletor desativado e reiniciar as entradas de registro de roteamento para o destino do coletor, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Roteador de registros:

    Acessar o roteador de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Para encontrar todos os coletores que encaminham entradas de registro para o bucket de registros _Default, filtre os coletores por destino e insira _Default.
  3. Para cada coletor, selecione Menu e Ativar coletor.

gcloud

  1. Para conferir a lista de coletores do projeto do Google Cloud, use o comando gcloud logging sinks list, que corresponde ao método da API Logging projects.sinks.list:

    gcloud logging sinks list
    
  2. Identifique os coletores que estão roteando para o bucket de registros _Default. Para descrever um coletor, incluindo a visualização do nome do destino, use o comando gcloud logging sinks describe, que corresponde ao método da API Logging projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  3. Execute o comando gcloud logging sinks update e inclua a opção --disabled. Por exemplo, para desativar o coletor _Default, use o seguinte comando:

    gcloud logging sinks update _Default  --disabled
    

    O coletor _Default agora está desativado. Ele não encaminha mais entradas de registro para o bucket de registros _Default.

Para desativar os outros coletores no projeto do Google Cloud que estão roteando para o bucket _Default, repita as etapas anteriores.

Para reativar um coletor, use o comando gcloud logging sinks update, remova a opção --disabled e inclua a opção --no-disabled:

gcloud logging sinks update _Default  --no-disabled

REST

  1. Para conferir os coletores do projeto do Google Cloud, chame o método da API Logging projects.sinks.list.

    Identifique os coletores que estão roteando para o bucket _Default.

  2. Por exemplo, para desativar o coletor _Default, defina o campo disabled no objeto LogSink como true e chame projects.sink.update.

    O coletor _Default agora está desativado. Ele não encaminha mais entradas de registro para o bucket _Default.

Para desativar os outros coletores no projeto do Google Cloud que estão roteando para o bucket _Default, repita as etapas anteriores.

Para reativar um coletor, defina o campo disabled no objeto LogSink como false e chame projects.sink.update.

Definir permissões de destino

Esta seção descreve como conceder ao Logging as permissões de Identity and Access Management para gravar entradas de registro no destino do coletor. Para conferir a lista completa de papéis e permissões do Logging, consulte Controle de acesso.

O Cloud Logging cria uma conta de serviço compartilhada para um recurso quando um sink é criado, a menos que a conta de serviço necessária já exista. A conta de serviço pode existir porque a mesma conta de serviço é usada para todos os destinos no recurso subjacente. Os recursos podem ser um projeto do Google Cloud, uma organização, uma pasta ou uma conta de faturamento.

A identidade do gravador de uma sink é o identificador da conta de serviço associada a ela. Todos os coletores têm uma identidade de gravador, exceto os que gravam em um bucket de registros no mesmo projeto do Google Cloud em que a entrada de registro é originada. Para a segunda configuração, não é necessária uma conta de serviço, e o campo identidade do gravador do coletor é listado como None no console. A API e os comandos da Google Cloud CLI não informam uma identidade de escritor.

As instruções a seguir se aplicam a projetos, pastas, organizações e contas de faturamento:

Console

  1. Verifique se você tem acesso de proprietário no projeto do Google Cloud que contém o destino. Se você não tiver acesso de proprietário ao destino do coletor, peça a um proprietário do projeto para adicionar a identidade do gravador como principal.

  2. Para conseguir a identidade de gravador do coletor, um endereço de e-mail, com o novo coletor, faça o seguinte:

    1. No Console do Google Cloud, acesse a página Roteador de registros:

      Acessar o roteador de registros

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

    2. Na barra de ferramentas, selecione o projeto que contém a sink.
    3. Selecione Menu e, depois, Ver detalhes do coletor. A identidade do gravador aparece no painel Detalhes do coletor.
  3. Se o valor do campo writerIdentity contiver um endereço de e-mail, prossiga para a próxima etapa. Quando o valor é None, não é necessário configurar as permissões de destino para o coletor.

  4. Copie a identidade do gravador do coletor para a área de transferência.

  5. Se o destino for um serviço em um projeto diferente ou se for outro projeto, selecione o projeto de destino na barra de ferramentas.

  6. Adicione a conta de serviço como um titular do IAM no projeto de destino:

    1. No console do Google Cloud, abra a página IAM.

      Acesse o IAM

      Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo IAM e administrador.

    2. Selecione o projeto de destino.

    3. Clique em CONCEDER ACESSO.

    4. Conceda à conta de serviço o papel do IAM necessário:

      • Para destinos do Cloud Storage, adicione a identidade do gravador do coletor como principal usando o IAM e conceda o papel de criador de objetos do Storage (roles/storage.objectCreator).
      • Para destinos do BigQuery, adicione a identidade do gravador do coletor como um principal usando o IAM e conceda a ele a função de editor de dados do BigQuery (roles/bigquery.dataEditor).
      • Para destinos do Pub/Sub, incluindo o Splunk, adicione a identidade do gravador do coletor como uma conta principal usando o IAM e conceda a função de editor do Pub/Sub (roles/pubsub.publisher).
      • Para destinos de bucket do Logging em diferentes projetos do Google Cloud, adicione a identidade de gravador do coletor como principal usando o IAM e conceda a ele o papel de gravador do bucket de registros (roles/logging.bucketWriter).
      • Para destinos de projetos do Google Cloud, adicione a identidade do gravador do coletor como principal usando o IAM e conceda a ele o papel de gravador de registros (roles/logging.logWriter). Especificamente, um principal precisa da permissão logging.logEntries.route.

gcloud

  1. Verifique se você tem acesso de proprietário no projeto do Google Cloud que contém o destino. Se você não tiver acesso de proprietário ao destino do coletor, peça a um proprietário do projeto para adicionar a identidade do gravador como principal.

  2. Consiga a conta de serviço do campo writerIdentity no seu coletor:

    gcloud logging sinks describe SINK_NAME
    
  3. Localize o coletor de permissões que você quer modificar e, se os detalhes do coletor contiverem uma linha com writerIdentity, prossiga para a próxima etapa. Quando os detalhes não incluem um campo writerIdentity, não é necessário configurar as permissões de destino para o coletor.

    A identidade do gravador para a conta de serviço é semelhante a esta:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  4. Adicione a conta de serviço como um titular do IAM no projeto de destino:

    Antes de usar o comando a seguir, faça as seguintes substituições:

    • PROJECT_ID: o identificador do projeto.
    • PRINCIPAL: um identificador do principal a quem você quer conceder o papel. Os identificadores dos principais geralmente têm o seguinte formato: PRINCIPAL-TYPE:ID. Por exemplo, user:my-user@example.com. Para uma lista completa dos formatos que PRINCIPAL pode ter, consulte Identificadores principais.
    • ROLE: um papel do IAM.

      • Para destinos do Cloud Storage, adicione a identidade do gravador do coletor como principal usando o IAM e conceda o papel de criador de objetos do Storage (roles/storage.objectCreator).
      • Para destinos do BigQuery, adicione a identidade do gravador do coletor como um principal usando o IAM e conceda a ele a função de editor de dados do BigQuery (roles/bigquery.dataEditor).
      • Para destinos do Pub/Sub, incluindo o Splunk, adicione a identidade do gravador do coletor como uma conta principal usando o IAM e conceda a função de editor do Pub/Sub (roles/pubsub.publisher).
      • Para destinos de bucket do Logging em diferentes projetos do Google Cloud, adicione a identidade de gravador do coletor como principal usando o IAM e conceda a ele o papel de gravador de bucket de registros (roles/logging.bucketWriter).
      • Para destinos de projetos do Google Cloud, adicione a identidade do gravador do coletor como principal usando o IAM e conceda a ele o papel de gravador de registros (roles/logging.logWriter). Especificamente, um principal precisa da permissão logging.logEntries.route.

    Execute o comando gcloud projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
    

REST

Recomendamos que você use o console do Google Cloud ou a Google Cloud CLI para conceder um papel à conta de serviço.

Limitações de destino

Esta seção descreve as limitações específicas da origem:

  • Se você encaminhar entradas de registro para um bucket de registros em um projeto diferente do Google Cloud, o Error Reporting não vai analisar essas entradas de registro. Para mais informações, consulte Visão geral da ferramenta de notificação de erros.
  • Se você encaminhar entradas de registro para o BigQuery, o conjunto de dados do BigQuery precisará ter gravação ativada. Não é possível encaminhar registros para conjuntos de dados vinculados, que são somente leitura.
  • As limitações a seguir se aplicam quando você encaminha suas entradas de registro para diferentes projetos do Google Cloud:

    • Há um limite de um salto.

      Por exemplo, se você encaminhar entradas de registro do projeto A para o projeto B, não será possível encaminhar as entradas do projeto B para outro projeto.

    • Os registros de auditoria não são roteados para o bucket de registros _Required no projeto de destino.

      Por exemplo, se você encaminhar entradas de registro do projeto A para o projeto B, o bucket de registros _Required no projeto A vai conter os registros de auditoria do projeto A. Os registros de auditoria do projeto A não são encaminhados para o projeto B. Para encaminhar essas entradas de registro, crie um coletor cujo destino seja um bucket de registros.

    • Quando o projeto de destino está em uma pasta ou organização diferente, os coletores agregados nessa pasta ou organização não encaminham a entrada de registro.

      Por exemplo, suponha que o projeto A esteja na pasta X. Quando uma entrada de registro é originada no projeto A, ela é processada pelos coletores agregados na pasta X e pelos coletores no projeto A. Agora, suponha que o projeto A contenha um coletor que encaminha as entradas de registro para o projeto B, que está na pasta Y. As entradas de registro do projeto A passam pelos coletores no projeto B. No entanto, elas não passam pelos coletores agregados na pasta Y.

  • Para usar o Explorador de registros e conferir as entradas roteadas para um projeto usando um sink agregado, defina o campo Refinar escopo como escopo de armazenamento e selecione uma visualização de registro que ofereça acesso a essas entradas.

Amostras de código

Para usar o código da biblioteca de cliente para configurar coletores nos idiomas escolhidos, consulte Bibliotecas de cliente do Logging: coletores de registros.

Exemplos de filtros

Veja a seguir alguns exemplos de filtro que são particularmente úteis ao criar coletores. Para outros exemplos que podem ser úteis ao criar seus filtros de inclusão e de exclusão, consulte Amostra de consultas.

Restaurar o filtro do coletor _Default

Se você editou o filtro para o coletor _Default, talvez queira restaurar esse coletor para a configuração original. Quando criado, o coletor _Default é configurado com o filtro de inclusão a seguir e um filtro de exclusão vazio:

  NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
  log_id("externalaudit.googleapis.com/activity") AND NOT \
  log_id("cloudaudit.googleapis.com/system_event") AND NOT \
  log_id("externalaudit.googleapis.com/system_event") AND NOT \
  log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
  log_id("externalaudit.googleapis.com/access_transparency")

Excluir registros de contêiner e de pod do Google Kubernetes Engine

Para excluir as entradas de registro de contêiner e pod do Google Kubernetes Engine do sistema GKE namespaces, use o seguinte filtro:

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

Para excluir as entradas de registro de nó do Google Kubernetes Engine do sistema GKE logNames, use o seguinte filtro:

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

Para conferir o volume de entradas de registro de nó, pod e contêiner do Google Kubernetes Engine armazenadas em buckets de registro, use o Metrics Explorer:

Exclua registros de Dataflow que não são necessários para compatibilidade

Para excluir as entradas de registro do Dataflow que não são necessárias para suporte, use o seguinte filtro:

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

Para conferir o volume de registros do Dataflow armazenados em buckets de registro, use o Metrics Explorer.

Compatibilidade

Embora o Cloud Logging permita excluir entradas de registro e impedir que elas sejam armazenadas em um bucket de registros, é recomendável manter as entradas de registro que ajudam na compatibilidade. O uso dessas entradas de registro pode ajudar a resolver e identificar problemas nos aplicativos.

Por exemplo, as entradas de registro do sistema do GKE são úteis para solucionar problemas de aplicativos e clusters do GKE porque são geradas para eventos que acontecem no cluster. Essas entradas de registro podem ajudar você a determinar se o código do aplicativo ou o cluster do GKE subjacente está causando o erro do aplicativo. Os registros do sistema do GKE também incluem o Kubernetes Audit Logging gerado pelo componente servidor da API Kubernetes, que inclui alterações feitas usando o comando kubectl e os eventos do Kubernetes.

Para o Dataflow, recomendamos que você grave pelo menos os registros do sistema (labels."dataflow.googleapis.com/log_type"="system") e de compatibilidade (labels."dataflow.googleapis.com/log_type"="supportability") em buckets de registro. Esses registros são essenciais para que os desenvolvedores observem e resolvam problemas nos pipelines do Dataflow, e os usuários talvez não consigam usar a página Detalhes do job do Dataflow para conferir os registros do job.

A seguir