Resolva problemas de encaminhamento e armazenamento de registos

Este documento explica os problemas comuns de encaminhamento e armazenamento, e como usar a Google Cloud consola para ver e resolver erros de configuração ou resultados inesperados.

Para obter informações gerais sobre a visualização de dados de registo, consulte o artigo Veja registos em destinos de sincronização.

Resolva problemas de encaminhamento de registos

Esta secção descreve como resolver problemas comuns ao encaminhar as suas entradas de registo.

O destino contém entradas de registo indesejadas

Está a ver as entradas de registo encaminhadas para um destino e determina que o destino contém entradas de registo indesejadas.

Para resolver esta condição, atualize os filtros de exclusão dos seus destinos que encaminham entradas de registo para o destino. Os filtros de exclusão permitem-lhe excluir entradas de registo selecionadas do encaminhamento para um destino.

Por exemplo, suponha que cria um destino agregado para encaminhar entradas de registo numa organização para um destino. Para excluir as entradas de registo de um projeto específico do encaminhamento para o destino, adicione o seguinte filtro de exclusão ao destino:

logName:projects/PROJECT_ID

Também pode excluir entradas de registo de vários projetos usando o operador lógico OU para juntar cláusulas logName.

O destino não tem entradas do registo

Talvez o problema mais comum relacionado com o destino seja o facto de as entradas de registo parecerem estar em falta no destino de um destino.

Em alguns casos, não é gerado um erro, mas pode reparar que as entradas do registo estão indisponíveis quando tenta aceder às mesmas no seu destino. Se suspeitar que o destino não está a encaminhar corretamente as entradas do registo, verifique as métricas baseadas no registo do sistema do destino:

  • exports/byte_count: número de bytes nas entradas de registo que foram encaminhadas.
  • exports/log_entry_count: número de entradas de registo encaminhadas.
  • exports/error_count: número de entradas de registo que não foram encaminhadas.

As métricas têm etiquetas que registam as contagens por nome do coletor e nome do destino, e informam se o coletor está a encaminhar as entradas do registo com êxito ou a falhar. Para ver detalhes sobre como ver métricas, consulte o artigo Vista geral das métricas baseadas em registos.

Se as métricas do destino indicarem que o destino não está a ter o desempenho esperado, seguem-se alguns motivos possíveis e o que fazer em relação a eles:

Latência

  • Não foram recebidas entradas de registo correspondentes desde que criou ou atualizou o seu destino. Apenas as novas entradas de registo são encaminhadas.

    Experimente aguardar uma hora e verifique novamente o seu destino.

  • As entradas do registo correspondentes estão a chegar com atraso.

    Pode haver um atraso antes de poder ver as entradas do registo no destino. As entradas de registo que chegam tarde são especialmente comuns para destinos que configuraram contentores do Cloud Storage como destinos. Experimente aguardar algumas horas e verifique novamente o destino.

O âmbito/filtro de visualização está incorreto

  • O âmbito que está a usar para ver as entradas de registo armazenadas num contentor de registo está incorreto.

    Restrinja a pesquisa a uma ou mais vistas de registo da seguinte forma:

    • Se estiver a usar o Explorador de registos, use o botão Refinar âmbito.

    • Se estiver a usar a CLI gcloud, use o comando gcloud logging read e adicione uma flag --view=AllLogs.

  • O intervalo de tempo que está a usar para selecionar e ver dados no destino de sincronização é demasiado curto.

    Experimente alargar o intervalo de tempo que está a usar quando seleciona dados no destino de sincronização.

Erro no filtro de destino

  • O filtro do coletor está incorreto e não está a capturar as entradas de registo que esperava ver no seu destino.

    Edite o filtro do seu destino usando o Log Router na Google Cloud consola. Para verificar se introduziu o filtro correto, selecione Pré-visualizar registos no painel Editar destino. Esta ação abre o Explorador de registos num novo separador com o filtro pré-preenchido. Para ver instruções sobre como ver e gerir os seus destinos, consulte o artigo Faça a gestão dos destinos.

Ver erros

Para cada um dos destinos de encaminhamento suportados, o Logging fornece mensagens de erro para os destinos de encaminhamento configurados incorretamente.

Existem várias formas de ver estes erros relacionados com o destino. Estes métodos são descritos nas secções seguintes:

  • Veja os registos de erros gerados para o destino.
  • Receba notificações de erros de destino por email. O remetente deste email é logging-noreply@google.com.

Registos de erros

O método recomendado para inspecionar os erros relacionados com o destino em detalhe é ver as entradas do registo de erros geradas pelo destino. Para ver detalhes sobre a visualização de entradas de registo, consulte o artigo Veja registos através do Logs Explorer.

Pode usar a seguinte consulta no painel do editor de consultas no Logs Explorer para rever os registos de erros do seu destino. A mesma consulta funciona na API Logging e na CLI gcloud.

Antes de copiar a consulta, substitua a variável SINK_NAME pelo nome do destino que está a tentar resolver. Pode encontrar o nome do destino na página Log Router na Google Cloud consola.

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"

Por exemplo, se o nome do lava-louça for my-sink-123, a entrada do registo pode ser semelhante à seguinte:

{
   errorGroups: [
   0: {
   id: "COXu96aNws6BiQE"
   }]
   insertId: "170up6jan"
   labels: {
      activity_type_name: "LoggingSinkConfigErrorV2"
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      error_code: "topic_not_found"
      error_detail: ""
      sink_id: "my-sink-123"
   }
   logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
   receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
   resource: {
   labels: {
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      name: "my-sink-123"
      project_id: "my-project"
   }
   type: "logging_sink"
   }
   severity: "ERROR"
   textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
   timestamp: "2024-07-11T14:41:41.296157014Z"
}

O campo LogEntry labels e as respetivas informações de chave-valor aninhadas ajudam a segmentar a origem do erro do seu destino. Contém o recurso afetado, o destino afetado e o código de erro. O campo labels.error_code contém uma descrição abreviada do erro, que lhe indica que componente do seu destino tem de ser reconfigurado.

Para resolver esta falha, edite o seu destino. Por exemplo, pode editar o seu destino usando a página Log Router:

Aceda a Registar router

Notificações por email

Os contactos essenciais enviam notificações por email de erro de configuração de sincronização para os contactos atribuídos à categoria de notificação técnica de um Google Cloud projeto ou do respetivo recurso principal. Se o recurso não tiver um contacto configurado para notificações técnicas, os utilizadores listados como proprietários do projeto do IAM roles/owner para o recurso recebem a notificação por email.

A mensagem de email contém as seguintes informações:

  • ID do recurso: o nome do Google Cloud projeto ou de outro Google Cloud recurso onde o destino foi configurado.
  • Nome do destino: o nome do destino que contém o erro de configuração.
  • Destino do coletor: o caminho completo do destino de encaminhamento do coletor; por exemplo, pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
  • Código de erro: descrição abreviada da categoria de erro; por exemplo, topic_not_found.
  • Detalhes do erro: informações detalhadas sobre o erro, incluindo recomendações para resolver o erro subjacente.

O remetente deste email é logging-noreply@google.com.

Para ver e gerir os seus destinos, use a página Log Router:

Aceda a Registar router

Todos os erros de configuração de destino que se aplicam ao recurso aparecem na lista como Cloud Logging sink configuration error. Cada erro contém um link para uma das entradas de registo geradas pelo destino com falhas. Para examinar os erros subjacentes em detalhe, consulte a secção Registos de erros.

Tipos de erros de destino

As secções seguintes descrevem categorias gerais de erros relacionados com o destino e como pode resolvê-los.

Destino incorreto

Se configurar um destino, mas vir um erro de configuração a indicar que não foi possível encontrar o destino quando o Logging tentou encaminhar as entradas do registo, seguem-se alguns motivos possíveis:

  • A configuração do destino contém um erro ortográfico ou outro erro de formatação no destino especificado.

    Tem de atualizar a configuração do destino para especificar corretamente o destino existente.

  • O destino especificado pode ter sido eliminado.

    Pode alterar a configuração do destino para usar um destino existente diferente ou recriar o destino com o mesmo nome.

Para resolver estes tipos de falhas, edite o seu destino. Por exemplo, pode editar o seu destino usando a página Log Router:

Aceda a Registar router

O seu coletor começa a encaminhar entradas de registo quando o destino é encontrado e o Logging recebe novas entradas de registo que correspondem ao seu filtro.

Gerir problemas de lava-louças

Se desativou um coletor para parar de armazenar entradas de registo num contentor de registos, mas continua a ver entradas de registo a serem encaminhadas, aguarde alguns minutos para que as alterações ao coletor sejam aplicadas.

Problemas de autorizações

Quando um destino tenta encaminhar uma entrada de registo, mas não tem as autorizações do IAM adequadas para o destino do destino, o destino comunica um erro, que pode ver, e ignora a entrada de registo.

Quando cria um ponto de recolha, a conta de serviço do ponto de recolha tem de receber as autorizações de destino adequadas. Se criar o destino na Google Cloud consola no mesmo Google Cloud projeto, a Google Cloud consola atribui normalmente estas autorizações automaticamente. No entanto, se criar o destino numGoogle Cloud projeto diferente ou usar a CLI gcloud ou a API Logging, tem de configurar as autorizações manualmente.

Se estiver a ver erros relacionados com autorizações para o seu destino, adicione as autorizações necessárias ou atualize o destino para usar um destino diferente. Para ver instruções sobre como atualizar estas autorizações, consulte o artigo Autorizações de destino.

Existe um ligeiro atraso entre a criação do destino e a utilização da nova conta de serviço do destino para autorizar a escrita no destino. O seu destino começa a encaminhar entradas do registo quando as autorizações são corrigidas e o Logging recebe novas entradas do registo que correspondem ao seu filtro.

Problemas de políticas organizacionais

Se estiver a tentar encaminhar uma entrada de registo, mas encontrar uma política da organização que restrinja o registo de escrever no destino do coletor, o coletor não pode encaminhar para o destino selecionado e comunica um erro.

Se estiver a ver erros relacionados com políticas da organização, pode fazer o seguinte:

  • Atualize a política da organização para remover as restrições que impedem o encaminhamento de entradas de registo; isto pressupõe que tem as autorizações adequadas para atualizar a política da organização.

    Pode verificar se existe uma restrição de localização de recursos (constraints/gcp.resourceLocations). Esta restrição determina as localizações onde os dados podem ser armazenados. Além disso, alguns serviços suportam restrições que podem afetar um destino de registo. Por exemplo, existem várias restrições que podem aplicar-se quando é selecionado um destino do Pub/Sub. Para ver uma lista de possíveis restrições, consulte as restrições da política da organização.

    Para ver instruções, consulte o artigo Criar e editar políticas.

  • Se não conseguir atualizar a política da organização, atualize o seu ponto de recolha na página Log Router para usar um destino em conformidade.

    Aceda a Registar router

O seu coletor começa a encaminhar entradas de registo quando a política da organização deixa de impedir que o coletor escreva no destino e o Logging recebe novas entradas de registo que correspondem ao seu filtro.

Problemas com a chave de encriptação

Se estiver a usar chaves de encriptação, quer sejam geridas com o Cloud Key Management Service ou por si, para encriptar os dados no destino do ponto de recolha, pode ver erros relacionados. Seguem-se alguns problemas possíveis e formas de os corrigir:

  • A faturação não está a ser ativada para o Google Cloud projeto que contém a chave do Cloud KMS.

    • Mesmo que o destino tenha sido criado com êxito com o destino correto, esta mensagem de erro é apresentada se não existir uma conta de faturação válida associada ao projeto que contém a chave. Google Cloud

    • Certifique-se de que existe uma conta de faturação válida associada ao Google Cloud projeto que contém a chave. Se uma conta de faturação não estiver associada ao Google Cloud projeto, ative a faturação para esse Google Cloud projeto ou use uma chave do Cloud KMS contida num Google Cloud projeto que tenha uma conta de faturação válida associada.

  • Não é possível encontrar a chave do Cloud KMS.

    • Não foi possível encontrar o Google Cloud projeto que contém a chave do Cloud KMS configurada para encriptar os dados.

    • Use uma chave do Cloud KMS válida de umGoogle Cloud projeto existente.

  • A localização da chave do Cloud KMS não corresponde à localização do destino.

    • Se o Google Cloud projeto que contém a chave do Cloud KMS estiver localizado numa região diferente da região do destino, a encriptação falha e o destino não consegue encaminhar dados para esse destino.

    • Use uma chave do Cloud KMS contida num projeto cuja região corresponda ao destino do contentor. Google Cloud

  • O acesso à chave de encriptação é negado à conta de serviço do coletor.

    • Mesmo que o destino tenha sido criado com êxito com as autorizações da conta de serviço corretas, esta mensagem de erro é apresentada se o destino usar uma chave de encriptação que não conceda à conta de serviço autorizações suficientes para encriptar ou desencriptar os dados.

    • Conceda a função de encriptador/desencriptador de CryptoKey do Cloud KMS à conta de serviço especificada no campo writerIdentity do destino para a chave usada no destino. Verifique também se a API Cloud KMS está ativada.

Problemas de quota

Quando os destinos escrevem entradas de registo, as quotas específicas do destino aplicam-se aos Google Cloud projetos nos quais os destinos foram criados. Se as quotas estiverem esgotadas, o destino deixa de encaminhar entradas do registo para o destino.

Por exemplo, quando encaminha dados para o BigQuery, pode ver um erro a indicar que excedeu a quota de inserção por stream por tabela para uma determinada tabela no seu conjunto de dados. Neste caso, o destino pode estar a encaminhar demasiadas entradas do registo demasiado rapidamente. O mesmo conceito aplica-se aos outros destinos de sincronização suportados, por exemplo, aos tópicos do Pub/Sub.

Para corrigir os problemas de esgotamento da quota, diminua a quantidade de dados de registo encaminhados atualizando o filtro do seu coletor para corresponder a menos entradas de registo. Pode usar a função sample no filtro para selecionar uma fração do número total de entradas do registo.

Quando a quota está disponível, o destino do coletor recebe as entradas de registo dos trajetos do coletor.

Para ver detalhes sobre os limites que podem ser aplicados quando encaminha entradas de registo, reveja as informações de quota do destino adequado:

Além dos tipos de erros de destino gerais, seguem-se os tipos de erros específicos do destino mais comuns e como os pode corrigir.

Erros de encaminhamento para o Cloud Storage

Seguem-se os erros mais comuns ao encaminhar entradas do registo para o Cloud Storage:

  • Entradas de registo que chegam tarde:

    • As entradas de registo encaminhadas são guardadas em lotes horários nos contentores do Cloud Storage. As primeiras entradas podem demorar entre 2 e 3 horas a aparecer.

    • Os fragmentos de ficheiros de registo encaminhados com o sufixo An ("Append") contêm entradas de registo que chegaram tarde. Se o destino do Cloud Storage sofrer uma indisponibilidade, o Cloud Logging armazena os dados em buffer até a indisponibilidade terminar.

  • Não é possível conceder as autorizações corretas ao destino:

    • Confirme se a conta de serviço do destino do registo tem as autorizações corretas. Para mais informações, consulte a secção Problemas de autorizações deste documento.

Erros de encaminhamento para o BigQuery

Seguem-se os erros mais comuns ao encaminhar entradas do registo para o BigQuery:

  • Esquema da tabela inválido:

    • As entradas de registo transmitidas para a tabela no conjunto de dados do BigQuery não correspondem ao esquema da tabela atual. Os problemas comuns incluem a tentativa de encaminhar entradas de registo com diferentes tipos de dados, o que provoca uma incompatibilidade de esquema. Por exemplo, um dos campos na entrada do registo é um número inteiro, enquanto uma coluna correspondente no esquema tem um tipo de string.

    • Certifique-se de que as entradas do registo correspondem ao esquema da tabela. Depois de corrigir a origem do erro, pode mudar o nome da tabela atual e permitir que o Logging crie novamente a tabela.

    • O BigQuery suporta o carregamento de dados aninhados nas respetivas tabelas. No entanto, ao carregar dados do registo, o limite máximo de profundidade aninhada para uma coluna é de 13 níveis.

    Quando o BigQuery identifica uma incompatibilidade de esquema, cria uma tabela no conjunto de dados correspondente para armazenar as informações de erro. O tipo de uma tabela determina o nome da tabela. Para tabelas divididas por datas, o formato de nomenclatura é export_errors_YYYYMMDD. Para tabelas particionadas, o formato de nomenclatura é export_errors. Para obter informações sobre o esquema das tabelas de erros e sobre como evitar futuras incompatibilidades de tipos de campos, consulte o artigo Incompatibilidades no esquema.

  • As entradas de registo estão fora dos limites de tempo permitidos:

    • As entradas de registo transmitidas para a tabela do BigQuery particionada estão fora dos limites de tempo permitidos. O BigQuery não aceita entradas de registo que estejam demasiado no passado ou no futuro.

    • Pode atualizar o destino para encaminhar essas entradas de registo para o Cloud Storage e usar uma tarefa de carregamento do BigQuery. Consulte a documentação do BigQuery para obter mais instruções.

  • O conjunto de dados não permite que a conta de serviço associada ao destino do registo escreva no mesmo:

    • Mesmo que o destino tenha sido criado com êxito com as autorizações da conta de serviço corretas, esta mensagem de erro é apresentada se não existir uma conta de faturação válida associada ao Google Cloud projeto que contém o destino do destino.

    • Certifique-se de que existe uma conta de faturação associada ao seu Google Cloud projeto. Se uma conta de faturação não estiver associada ao projeto de destino do Google Cloud coletor, ative a faturação para esse Google Cloud projeto ou atualize o destino do coletor para que esteja localizado num Google Cloud projeto que tenha uma conta de faturação válida associada.

  • O conjunto de dados contém entradas de registo duplicadas:

    • As entradas de registo duplicadas podem ocorrer quando existem falhas nas entradas de registo de streaming para o BigQuery, inclusive devido a novas tentativas ou configurações incorretas. O Cloud Logging remove as entradas de registo duplicadas com o mesmo timestamp e insertId no momento da consulta. O BigQuery não elimina as entradas de registo duplicadas.

    • Para ignorar entradas de registo duplicadas no BigQuery, inclua a cláusula SELECT DISTINCT na sua consulta. Por exemplo:

    SELECT DISTINCT insertId, timestamp FROM TABLE_NAME
    
  • As entradas de registo são preenchidas após um incidente do Cloud Logging:

    O registo gera automaticamente tabelas com um prefixo backfill_ como parte de uma operação de preenchimento que ocorre quando um incidente do Cloud Logging impede o encaminhamento de dados de registo para o BigQuery.

    As tabelas com o prefixo backfill_ contêm todas as entradas de registo que deviam ter sido encaminhadas para o BigQuery durante o intervalo de tempo do incidente. Estas tabelas podem conter algumas entradas de registo que foram encaminhadas com êxito para a tabela especificada pelo coletor.

    Para evitar dados duplicados, recomendamos que faça a união dos dados das tabelas de preenchimento com as tabelas originais e, em seguida, elimine as tabelas de preenchimento.

Erros de encaminhamento para contentores do Cloud Logging

Pode deparar-se com uma situação em que vê entradas de registo no Explorador de registos que excluiu com o seu destino. Pode continuar a ver estas entradas do registo se alguma das seguintes condições for verdadeira:

  • Está a executar a consulta no Google Cloud projeto que gerou as entradas de registo.

    Para corrigir este problema, verifique se está a executar a consulta noGoogle Cloud projeto correto.

  • As entradas de registo excluídas foram enviadas para vários contentores de registos. Está a ver uma cópia do mesmo registo que pretendia excluir.

    Para corrigir este problema, verifique os seus destinos na página Log Router para confirmar que não está a incluir as entradas de registo nos filtros de outros destinos.

  • Tem acesso às vistas no contentor de registos para onde as entradas de registos foram enviadas. Neste caso, pode ver essas entradas de registo por predefinição.

    Para evitar ver estas entradas de registo no Explorador de registos, pode refinar o âmbito da sua pesquisa para o projeto ou o contentor de origem Google Cloud .

Resolva problemas de armazenamento de registos

Por que motivo não consigo eliminar este contentor?

Se estiver a tentar eliminar um contentor, faça o seguinte:

  • Verifique se tem as autorizações corretas para eliminar o contentor. Para ver a lista das autorizações de que precisa, consulte o artigo Controlo de acesso com a IAM.

  • Determine se o contentor está bloqueado listando os atributos do contentor. Se o contentor estiver bloqueado, verifique o período de retenção do contentor. Não é possível eliminar um contentor bloqueado até que todos os registos no contentor tenham cumprido o período de retenção do contentor.

  • Verifique se o contentor de registos não tem um conjunto de dados do BigQuery associado. Não é possível eliminar um contentor de registos com um conjunto de dados associado.

    O seguinte erro é apresentado em resposta a um comando delete num contentor de registos que tem um conjunto de dados associado:

    FAILED_PRECONDITION: This bucket is used for advanced analytics and has an active link. The link must be deleted first before deleting the bucket
    

    Para listar os links associados a um segmento de registo, execute o comando gcloud logging links list ou o método da API projects.locations.buckets.links.list.

Que contas de serviço estão a encaminhar registos para o meu contentor?

Para determinar se alguma conta de serviço tem autorizações da IAM para encaminhar registos para o seu contentor, faça o seguinte:

  1. Na Google Cloud consola, aceda à página IAM:

    Aceda ao IAM

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é IAM e administração.

  2. No separador Autorizações, veja por Funções. É apresentada uma tabela com todas as funções e os principais da IAM associados ao seuGoogle Cloud projeto.

  3. Na caixa de texto Filtro da tabela, introduza Logs Bucket Writer.

    Verá todos os principais com a função Logs Bucket Writer. Se um principal for uma conta de serviço, o respetivo ID contém a string gserviceaccount.com.

  4. Opcional: se quiser impedir que uma conta de serviço encaminhe registos para o seu projeto Google Cloud , selecione a caixa de verificação da conta de serviço e clique em Remover.

Por que motivo vejo registos de um Google Cloud projeto, mesmo que os tenha excluído do meu destino _Default?

Pode estar a ver registos num contentor de registos num projeto centralizado Google Cloud , que agrega registos de toda a sua organização.

Se estiver a usar o Explorador de registos para aceder a estes registos e vir registos que excluiu do destino _Default, a sua vista pode estar definida ao Google Cloud nível do projeto.

Para corrigir este problema, selecione Vista de registo no menu Refinar âmbito e, em seguida, selecione a vista de registo associada ao contentor _Default no seu Google Cloud projeto. Já não deve ver os registos excluídos.