Resolver problemas de configuração da Análise de dados de registros

Neste documento, mostramos como resolver erros que podem ocorrer ao usar a página Log Analytics do console do Google Cloud.

Mensagens de erro

Esta seção descreve as mensagens de erro que podem aparecer e como resolver as condições de erro correspondentes.

Mensagem de erro No completion signal within allotted timeframe

Você insere uma consulta SQL e seleciona Executar consulta. A consulta não é concluída e você recebe a seguinte mensagem de erro:

The query failed to execute and return results due to error: No completion signal within allotted timeframe.

Para resolver esse erro, faça o seguinte:

  • Reduza o intervalo em que os registros são consultados e tente novamente. Por exemplo, se um intervalo de consulta for de 14 dias, reduza-o para 7 dias e execute a consulta.

  • Crie um conjunto de dados vinculado do BigQuery e execute a consulta na interface do BigQuery. A interface do BigQuery oferece suporte a consultas que exigem um tempo de execução maior do que a interface do Cloud Logging. Para mais informações, consulte Consultar um conjunto de dados vinculado do BigQuery.

Mensagens de erro de consulta em buckets com chaves CMEK distintas

Você insere uma consulta SQL que consulta vários buckets de registro e seleciona Executar consulta. A consulta não é concluída e você recebe a seguinte mensagem de erro:

Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.

Para resolver esse problema, faça uma das seguintes ações:

  • Configure seus buckets de registro para usar a mesma chave do Cloud Key Management Service (Cloud KMS).
  • Quando os buckets de registro estão no mesmo local, é possível configurar uma pasta ou organização que seja um recurso pai para os buckets de registro com uma chave padrão do Cloud KMS. A chave padrão do pai precisa estar no mesmo local que os buckets de registro. Com essa configuração, a chave padrão do pai criptografa todos os dados temporários gerados pela consulta do Log Analytics. Para mais informações, consulte Restrições do Log Analytics.

A cláusula FROM precisa conter exatamente uma mensagem de erro de visualização

Você insere uma consulta SQL no painel de consulta da página Análise de Registros no console do Google Cloud, mas o analisador SQL exibe o seguinte erro:

FROM clause must contain exactly one log view

O erro anterior é informado quando a tabela especificada na instrução FROM não pode ser resolvida para uma visualização de registro específica.

Para resolver esse erro, verifique se o nome da tabela tem a sintaxe correta:

  • Confira se o nome da tabela segue a sintaxe exigida pelo esquema de nomenclatura do Log Analytics. O BigQuery e a Análise de registros têm requisitos diferentes para o nome da tabela. Para encontrar a sintaxe necessária para o nome da tabela, confira a consulta padrão.

  • Se o ID do projeto, a região, o ID do bucket ou o ID da visualização do Google Cloud de um bucket de registros contiverem caracteres de ponto, (.), verifique se cada um desses campos está envolvido por aspas simples, (`).

    Por exemplo, se o ID do projeto do Google Cloud for example.com:bluebird, para consultar a visualização _AllLogs do bucket de registros _Default, use a seguinte sintaxe para especificar a tabela:

    
    SELECT *
    FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`
    

    A consulta anterior pressupõe que o bucket _Default está na região global.

Não é possível salvar uma consulta

Se você inserir e executar uma consulta SQL e o Save estiver desativado, as configurações de recursos padrão da sua organização ou pasta definirão um local que não é permitido pela política da organização. Para resolver esse problema, peça ao administrador da sua organização para definir um local nas configurações de recursos padrão que corresponda a um local permitido pela política da organização. Para mais informações, consulte Definir configurações padrão para organizações e pastas.

Se o botão Save estiver ativado, mas você não conseguir concluir a caixa de diálogo e salvar a consulta, faça o seguinte:

  1. Verifique se a consulta não contém erros de sintaxe. Só é possível salvar consultas válidas.
  2. Opcional: copie a consulta para a área de transferência.
  3. Atualize a página.
  4. Se você copiou a consulta para a área de transferência, cole-a no painel Consulta, execute a consulta e realize a operação de salvamento.

Acesso negado à página Log Analytics

Você abre a página Análise de dados de registros no console do Google Cloud, e uma mensagem de erro de permissão negada é exibida.

Para receber as permissões necessárias para carregar a página Log Analytics, executar consultas e visualizar logs, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

Também é possível receber as permissões necessárias com papéis personalizados ou papéis predefinidos de registro.

As permissões necessárias para visualizar entradas de registro e executar consultas na página Análise de registros são as mesmas que você precisa para visualizar registros na página Explorador de registros. Para informações sobre outros papéis necessários para consultar visualizações em buckets definidos pelo usuário ou consultar a visualização _AllLogs do bucket de registros _Default, consulte Papéis do Cloud Logging.

O upgrade do bucket de registros para usar a Análise de registros falha

Crie um bucket de registros e selecione a opção de usar a Análise de dados de registros, ou faça upgrade de um bucket de registros atual para usar a Análise de dados de registros. A atualização falha com uma condição de erro semelhante a esta:

Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID  with location global.

A mensagem de erro anterior indica que sua organização configurou uma política organizacional que restringe as regiões que podem ser usadas. Os buckets de registro que podem ser atualizados para usar a Análise de dados de registros precisam usar a região global. Se você puder remover a política organizacional que restringe o uso da região global, faça upgrade do bucket de registros. Caso contrário, não será possível fazer upgrade dos buckets de registros.

A criação de um conjunto de dados vinculado do BigQuery falha

Você edita um bucket de registros para criar um conjunto de dados vinculado do BigQuery ou cria um novo bucket de registros e seleciona a opção para criar um conjunto de dados vinculado. No entanto, o conjunto de dados vinculado não é criado.

Para resolver esse erro, peça ao administrador do sistema do projeto do Google Cloud para conceder a você um papel do IAM que inclua a seguinte permissão:

  • logging.links.create

A permissão anterior está incluída nos papéis de administrador do Logging (roles/logging.admin) e gravador de configuração de registros (roles/logging.configWriter).

Para informações sobre papéis e permissões, consulte Controle de acesso com o IAM.

A exclusão de um conjunto de dados vinculado do BigQuery falha

Você não quer mais o conjunto de dados vinculado, mas a opção de exclusão está desativada.

Para resolver esse erro, peça ao administrador do sistema do projeto do Google Cloud para conceder a você um papel do IAM que inclua a seguinte permissão:

  • logging.links.delete

A permissão anterior está incluída nos papéis de administrador do Logging (roles/logging.admin) e gravador de configuração de registros (roles/logging.configWriter).

Com essa permissão, você pode excluir o conjunto de dados vinculado na página Logs Storage do console do Google Cloud. Para mais informações sobre papéis e permissões, consulte Controle de acesso com o IAM.

O botão de configurações do mecanismo de consulta está ausente

Se o botão Settings não aparecer ao lado do botão Run query, seu projeto do Google Cloud não terá slots reservados do BigQuery ativados. Para ativar o botão Settings, configure slots reservados do BigQuery para seu projeto.

O botão "Executar no BigQuery" está desativado

Se o botão Run on BigQuery aparecer, mas estiver desativado, uma visualização de registro referenciada pela consulta não terá um conjunto de dados vinculado. Para executar a consulta nas reservas Slot do BigQuery, crie um conjunto de dados vinculado do BigQuery na visualização de registros.

Nenhuma conta de serviço de monitoramento

Você quer criar uma política de alertas para monitorar os resultados de uma consulta SQL. As etapas de configuração exigem que você conceda papéis do IAM à conta de serviço do Monitoring, mas essa conta não existe.

A conta de serviço de monitoramento é chamada de agente de serviço, porque é criada e gerenciada pelo Google Cloud. A conta é criada automaticamente quando você configura um recurso ou serviço que a exige. Por exemplo, se você criar um canal de notificação do Pub/Sub, essa ação poderá causar a criação da conta de serviço de monitoramento. Dependendo do fluxo de criação, a conta de serviço de monitoramento pode receber o papel de Agente de serviço de monitoramento (monitoring.NotificationServiceAgent) no seu projeto. Você pode modificar os papéis concedidos à conta.

Se a conta de serviço de monitoramento não existir, siga estas etapas para criar uma política de alerta que monitore o resultado de uma consulta SQL:

  1. Crie um agente de serviço manualmente. Para saber mais sobre essa etapa, consulte Criar e conceder papéis a agentes de serviço.

  2. Conceda os papéis necessários à conta de serviço. Para informações sobre essas funções, consulte Monitorar os resultados da consulta SQL: antes de começar.

Há entradas de registro duplicadas nos resultados da Análise de registros

Você executa uma consulta que está contando ou informando entradas duplicadas. Como o Logs Explorer remove entradas duplicadas com base no nome, no carimbo de data/hora e no ID de inserção, é esperado que a Análise de dados de registros remova entradas duplicadas antes da execução de uma consulta.

A Análise de registros não realiza o mesmo tipo de eliminação de duplicação que é realizado pelo Explorador de registros.

Para resolver entradas de registro duplicadas, tente o seguinte:

  1. Determine se as entradas de registro duplicadas têm valores de carimbo de data/hora de recebimento diferentes. Quando os carimbos de data/hora são diferentes, isso indica que os mesmos dados foram gravados no registro várias vezes.

    Para resolver gravações duplicadas, investigue a integração de registro em busca de mensagens de erro ou configurações incorretas.

  2. Se o bucket estiver configurado para usar chaves do Cloud Key Management Service, verifique se você está dentro da cota e se a chave está acessível de forma consistente. O excesso de cota ou a perda de acesso à chave pode resultar em entradas de registro duplicadas.

    Para resolver essas falhas, verifique se você não excedeu sua cota e se a chave está acessível.

  3. Modifique a consulta para remover entradas de registro duplicadas.

    Por exemplo, suponha que o payload JSON contenha fieldA e fieldB. O primeiro é uma string, e o segundo é numérico. Além disso, suponha que o payload JSON contenha um campo rotulado como server, que contém uma string. Em seguida, considere a seguinte consulta:

    SELECT
      JSON_VALUE(json_payload.fieldA) AS fieldA
      SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB
    FROM
      `TABLE_NAME_OF_LOG_VIEW`
    WHERE
      JSON_VALUE(json_payload.server) = "test"
    GROUP BY
      fieldA;
    

    É possível modificar a consulta para remover entradas de registro duplicadas, em que o nome do registro, o carimbo de data/hora e o ID de inserção são examinados para determinar se uma entrada de registro é duplicada:

    WITH
      deduplicated AS (
      SELECT
        JSON_VALUE(json_payload.fieldA) AS fieldA
        IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB
      FROM
        `TABLE_NAME_OF_LOG_VIEW` a
      WHERE
        JSON_VALUE(json_payload.server) = "test"
      QUALIFY
        ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 )
    
    SELECT
      fieldA,
      SUM(fieldB) AS sum_fieldB
    FROM
      deduplicated
    GROUP BY
      fieldA;