Ao fazer upgrade de um bucket de registros para usar a Análise de Observabilidade, é possível executar consultas SQL para analisar os dados de registro armazenados nesse bucket. Se o upgrade de um bucket de registros falhar ou for interrompido, use este documento para diagnosticar e resolver erros de validação síncrona, erros de provisionamento assíncrono e operações bloqueadas. Para saber como fazer upgrade de um bucket de registros, consulte Fazer upgrade de um bucket para usar a Análise de Observabilidade.
Sobre o processo de upgrade
O Cloud Logging usa um processo de duas etapas quando você emite um comando para fazer upgrade de um bucket de registros para usar a Análise de Observabilidade:
- Validação síncrona: o Logging valida os parâmetros do comando. Se a validação falhar, o comando vai retornar um erro imediatamente.
- Provisionamento assíncrono: se a validação for bem-sucedida, o Logging vai iniciar uma operação de longa duração que geralmente é concluída em 10 minutos.
Os upgrades de buckets de registros são operações auditadas. Para verificar o status da operação de longa duração ou encontrar detalhes de erro, pesquise a operação usando o método Operations.GetOperation ou consulte os registros de auditoria.
Estado do bucket de registros durante um upgrade
Quando a validação síncrona de uma solicitação de upgrade é bem-sucedida,
o Logging muda o estado do bucket de registros de ACTIVE para
UPDATING e inicia a operação de longa duração. Quando a operação
for concluída, o estado do bucket de registros vai voltar para ACTIVE.
Para determinar o estado atual de um bucket de registros, execute o
comando gcloud logging buckets describe:
gcloud logging buckets describe LOG_BUCKET_ID \
--location=LOCATION_ID \
--project=PROJECT_ID
Antes de executar o comando, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- LOCATION_ID: o local do bucket.
- LOG_BUCKET_ID: o ID do bucket.
O campo lifecycleState na resposta mostra o estado do bucket:
description: Default bucket
lifecycleState: ACTIVE
name: projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID
retentionDays: 30
No console do Google Cloud , enquanto o bucket de registros estiver no estado UPDATING:
- Na página Armazenamento de registros, a coluna Análise de Observabilidade disponível mostra Fazendo upgrade… enquanto a operação de longa duração está ativa (ou Não qualificado para upgrade se o console não conseguir recuperar o status da operação).
- Nos painéis Editar bucket e Fazer upgrade do bucket de registros, a opção de upgrade do bucket está desativada, e a dica lista Não há atualizações pendentes como um requisito não atendido.
Considerações sobre o perímetro do VPC Service Controls
Os upgrades de buckets de registro dentro de um perímetro do VPC Service Controls podem falhar devido ao bloqueio de APIs pelo perímetro ou a configurações entre projetos.
APIs que o perímetro precisa permitir
Para fazer upgrade de um bucket de registros que está dentro de um perímetro do VPC Service Controls, o perímetro não pode restringir os seguintes serviços:
logging.googleapis.comcloudkms.googleapis.com: obrigatório para fazer upgrade de um bucket de registros que usa uma chave de criptografia gerenciada pelo cliente (CMEK).
A restrição desses serviços causa o seguinte comportamento:
logging.googleapis.comrestrito: o comando de upgrade falha imediatamente com um erroPERMISSION_DENIED, e o bucket de registros permanece no estadoACTIVE.Resolução: atualize o perímetro para permitir as APIs listadas no início desta seção e tente executar o comando novamente.
cloudkms.googleapis.comrestrito: para buckets de registros protegidos por CMEK, a operação de longa duração falha com um erroINTERNAL, e o bucket de registros retorna ao estadoACTIVE.Resolução: atualize o perímetro para permitir as APIs listadas no início desta seção e tente executar o comando novamente.
Configurações de CMEK entre perímetros
Não é possível usar regras de entrada ou saída baseadas em identidade para conceder acesso entre perímetros à chave do Cloud Key Management Service quando o bucket de registros e a chave do Cloud KMS estão em perímetros diferentes do VPC Service Controls.
Para essa configuração, se a regra de entrada especificar apenas a identidade da conta de serviço do Logging, ocorrerá o seguinte:
- O provisionamento assíncrono falha com um erro
INTERNAL, e o bucket de registros retorna ao estadoACTIVE. - Um registro de auditoria de política do projeto do Cloud KMS registra a falha.
Esse registro de auditoria mostra que o método
google.cloud.kms.v1.KeyManagementService.Encryptfalhou com uma violação de entradaNO_MATCHING_ACCESS_LEVELe indica que é para uma conta de serviço de criptografia do BigQuery.
Resolução: na regra de entrada que permite o acesso ao perímetro do Cloud KMS, defina identityType como ANY_IDENTITY e especifique o projeto que contém o bucket de registros como o recurso de origem:
- ingressFrom:
identityType: ANY_IDENTITY
sources:
- resource: projects/PROJECT_NUMBER
ingressTo:
operations:
- serviceName: cloudkms.googleapis.com
methodSelectors:
- method: '*'
resources:
- projects/KMS_PROJECT_NUMBER
No exemplo anterior, substitua o seguinte:
- PROJECT_NUMBER: o número do projeto que contém o bucket de registros.
- KMS_PROJECT_NUMBER: o número do projeto que contém a chave do Cloud KMS.
Se você também especificar uma regra de saída, ela também precisará definir
identityType: ANY_IDENTITY.
Consultar registros de auditoria para ver informações sobre falhas
As consultas nesta seção podem ajudar você a encontrar entradas de registro que relatam falhas ao atualizar ou fazer upgrade de um bucket de registros. Essas consultas são para uso com a Análise de registros.
No console do Google Cloud , acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Consultar todas as atualizações ou upgrades de bucket com falha em um projeto
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync")
severity=ERROR
Se você usar o console do Google Cloud para fazer upgrade do bucket de registros para usar a Análise de Observabilidade e criar um conjunto de dados vinculado do BigQuery, use a seguinte consulta:
log_id("cloudaudit.googleapis.com/activity")
(protoPayload.serviceName="logging.googleapis.com" OR
protoPayload.serviceName="bigquery.googleapis.com")
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync" OR
protoPayload.methodName="google.cloud.bigquery.v2.DatasetService.InsertDataset")
severity=ERROR
Os resultados da consulta anterior incluem entradas de registro que indicam que a criação do conjunto de dados vinculado do BigQuery falhou. A mensagem de erro pode ajudar você a resolver a causa da falha.
Consultar atualizações ou upgrades de bucket com falha para um bucket específico
Antes de usar a consulta a seguir, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- LOCATION_ID: o local do bucket.
- LOG_BUCKET_ID: o ID do bucket.
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync")
protoPayload.resourceName="projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID"
severity=ERROR
Consultar falhas de operação de longa duração
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync"
operation.last=true
severity=ERROR
INVALID_ARGUMENT (3)
A mensagem de erro fornecida com um código do erro INVALID_ARGUMENT (3) contém informações suficientes para você resolver a falha. Por esse motivo, esta seção não enumera todas as mensagens de erro possíveis.
Problemas com nomes de recursos
Para resolver problemas com nomes de recursos, transmita
um nome de recurso de bucket válido no formato
projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID.
Verifique se o comprimento do nome do recurso está dentro dos limites.
Problemas com a máscara de atualização
Uma mensagem de erro que contém o texto update_mask ou Update mask indica
um valor ausente ou incorreto.
Para resolver esse problema, no comando da API, especifique update_mask e defina o
valor como "analytics_enabled".
Problemas de qualificação do bucket de registros
Não é possível fazer upgrade de um bucket de registros
_Defaultbloqueado ou de buckets personalizados bloqueados. É possível fazer upgrade do bucket_Requiredenquanto ele estiver bloqueado.Quando um bucket de registros está bloqueado, a mensagem de erro é
"Bucket is not eligible for an upgrade to enable analytics".Para resolver essa falha, crie um novo bucket com análise de dados ativada e encaminhe os registros para ele.
Não é possível fazer upgrade de um bucket de registros ao mesmo tempo em que você faz outras alterações nele. Por exemplo, não é possível fazer upgrade de um bucket de registros e atualizar a descrição dele.
Para resolver essa falha, envie uma solicitação
UpdateBucketouUpdateBucketAsyncseparada com apenasanalytics_enabledemupdate_maske atualize outros campos do bucket de registros em uma solicitação separada.Não é possível fazer upgrade de buckets de registros em organizações, pastas ou contas de faturamento. Só é possível fazer upgrade de buckets de registros que tenham um projeto do Google Cloud como pai.
Não é possível fazer upgrade de um bucket de registros que já foi ou está sendo atualizado.
Use
GetBucketouListOperationspara determinar se um upgrade já foi concluído ou está em andamento.
Problemas com a chave do Cloud KMS
Mensagens de erro:
"Not a valid key reference (wrong type): 'KMS_KEY_NAME'""Name "KMS_KEY_NAME" is missing the COMPONENT component. Expected the form projects/[PROJECT_ID]/locations/[ID]/keyRings/[ID]/cryptoKeys/[ID]"
Resolução: atualize o cmek_settings.kms_key_name do bucket de registros para um nome de recurso válido do Cloud KMS CryptoKey antes de fazer upgrade do bucket.
É preciso atualizar o nome do recurso, não a versão da chave, CryptoKeyVersion.
Mensagem de argumento inválido
Se a mensagem "Request contains an invalid argument." aparecer, tente o seguinte para buckets de registro com CMEK ativada:
- Verifique se a conta de serviço do Logging associada à configuração de CMEK do bucket foi inicializada.
- Verifique se o bucket tem um período de armazenamento positivo.
Para encontrar o nome da conta de serviço, execute o seguinte comando depois de atualizar o bucket de registros, o local e os IDs do projeto:
gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION_ID --project=PROJECT_ID
A conta de serviço pode estar em um projeto, uma pasta ou uma organização.
DEADLINE_EXCEEDED (4)
Use UpdateBucketAsync e pesquise a operação de longa duração retornada usando o método Operations.GetOperation ou chame GetBucket após o término do upgrade em segundo plano.
NOT_FOUND (5)
Para resolver essas falhas, tente o seguinte:
- Verifique se o ID do projeto ou o número do projeto está correto e se o projeto está ativo. Se o projeto estiver com a exclusão pendente, restaure-o primeiro.
- Verifique se o local especificado é compatível com o Logging.
- Verifique se o ID do bucket de registros e o local existem no projeto
e se o bucket de destino não é
_CloudTrace.
PERMISSION_DENIED (7)
Um erro de permissão negada indica que a ação solicitada não é permitida.
Permissões do usuário ausentes
Para fazer upgrade de um bucket de registros, verifique se o autor da chamada tem um
papel do Identity and Access Management (IAM) que inclui a
permissão logging.buckets.update (como roles/logging.configWriter ou
roles/logging.admin) e se nenhuma política personalizada da organização bloqueia
a atualização.
Restrições da política da organização
Para resolver a mensagem de erro
"Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: [ID]",
verifique se o perímetro do VPC Service Controls não restringe o
serviço logging.googleapis.com. Para mais informações, consulte
Considerações sobre o perímetro do VPC Service Controls.
Problemas com endpoints regionais
Para resolver erros de permissão negada quando endpoints regionais são especificados,
envie a solicitação para o endpoint global (logging.googleapis.com) ou para o
endpoint regional que corresponde ao local do bucket de registros.
RESOURCE_EXHAUSTED (8)
Para resolver essa falha, aguarde a conclusão das operações de provisionamento em andamento e tente novamente com espera exponencial.
FAILED_PRECONDITION (9)
Para resolver essas falhas, tente o seguinte:
Verifique se o bucket de registros está no estado
ACTIVE. Não é possível fazer upgrade de um bucket de registros que está sendo excluído ou que está passando por uma operação de atualização ou provisionamento.Para saber como determinar o estado de um bucket de registros, consulte Estado do bucket de registros durante um upgrade.
Não é possível fazer upgrade de um bucket de registros bloqueado.
A mensagem genérica
"Precondition check failed."indica que o estado do bucket não éACTIVE. Aguarde até que as operações em andamento sejam concluídas e tente fazer o upgrade novamente.
INTERNAL (13)
Mensagens de erro:
- Operação de longa duração (
Operations.GetOperation):"Failed to create analytics enabled bucket." - Registros de auditoria do Cloud e
UpdateBucketsíncrono:"Internal error encountered."
Resolução: tente o seguinte:
Para um bucket de registros com CMEK, verifique se a chave do Cloud KMS está ativada, se a conta de serviço do Logging associada à configuração de CMEK do bucket tem o papel
roles/cloudkms.cryptoKeyEncrypterDecrypterna chave, se a chave está acessível ao BigQuery e se nenhuma política da organização ou perímetro do VPC Service Controls bloqueia o acesso ao Cloud KMS.Para encontrar o nome da conta de serviço, execute o seguinte comando:
gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION_ID --project=PROJECT_IDA conta de serviço pode estar em um projeto, uma pasta ou uma organização.
Inspecione as visualizações de registro atuais no bucket (
logging.views.list) para garantir que os filtros sejam válidos e tente fazer o upgrade do bucket novamente.Verifique se o bucket de registros não foi excluído (
DELETE_REQUESTED) e se nenhuma ação administrativa conflitante está ocorrendo no bucket. Em seguida, tente fazer o upgrade novamente.Tente fazer o upgrade do bucket de registros novamente depois que os erros temporários de criação de índice da Pesquisa ou conjunto de dados de armazenamento do BigQuery forem resolvidos ou quando a disponibilidade do BigQuery, do Cloud KMS ou do serviço de provisionamento downstream for restaurada. Se a falha persistir, entre em contato com o Cloud Customer Care.
UNAVAILABLE (14)
Se a mensagem "The service is currently unavailable." aparecer, tente novamente a solicitação UpdateBucketAsync com espera exponencial.