Esta página descreve como configurar o Serviço de transferência do Cloud Storage para gerar dados de registro que gravam ações e estados. É possível visualizar e analisar os dados de registro usando o Cloud Logging.
O Serviço de transferência do Cloud Storage pode gerar dados de registro para todas as transferências. No entanto, as operações FIND não são registradas para transferências baseadas em agentes.
As transferências do sistema de arquivos também podem configurar registros de transferência do sistema de arquivos.
Antes de começar
Antes de começar, verifique se você tem acesso ao Cloud Logging. Recomendamos o papel Leitor de registros (roles/logging.viewer). do Identity and Access Management. Para mais informações sobre o acesso ao Logging, consulte Controle de acesso com o IAM.
Os documentos a seguir descrevem como verificar seu acesso atual e como conceder papéis do IAM:
- Veja o acesso atual para verificar o acesso que cada principal tem.
- Conceda um papel aos principais relevantes do projeto.
Ações registráveis
As seguintes ações podem ser registradas:
FIND: buscar trabalho a fazer, como listar arquivos em um diretório, listar objetos em um bucket ou listar pastas gerenciadas em um bucket. Não há suporte para transferências baseadas em agentes.COPY: copiar arquivos ou objetos para o Cloud Storage.DELETE: excluir arquivos ou objetos na origem ou no destino. Para transferências entre dois sistemas de arquivos, também registra a exclusão de arquivos do bucket intermediário do Cloud Storage.
Estados registráveis
Para cada ação, também é possível registrar um ou mais dos seguintes estados:
SUCCEEDED: a ação foi bem-sucedida.FAILED: a ação falhou.SKIPPED: só se aplica à ação COPY e só é compatível com jobs de transferência baseados em agentes. Precisa ser definido usandogcloudou API REST. Esse estado significa que a cópia foi ignorada. Isso ocorre quando o arquivo já existe no coletor e o job de transferência está configurado para ignorar arquivos atuais.
Práticas recomendadas
Ativar a geração de registros para a ação FIND ou para o estado SUCCEEDED pode
resultar em um grande volume de dados de registro, o que pode afetar seus
custos do Cloud Logging.
É possível usar as seguintes estratégias para reduzir o volume de dados de registro armazenados:
Registrar apenas falhas. Se você não precisar de uma auditoria de conformidade completa no nível do objeto, configure o job para gravar registros apenas para ações de cópia e exclusão e somente quando ocorrer uma falha.
Use dados de métricas para monitorar a capacidade de processamento, as contagens de bytes e os objetos ignorados ou com falha. É possível criar gráficos e monitorar dados de métricas usando uma política de alertas. Para uma lista de métricas disponíveis, consulte Serviço de transferência do Cloud Storage.
Configure o Cloud Logging para descartar dados de registro de alto volume e baixo valor. Para fazer essa mudança, atualize os coletores de registro no projeto para excluir dados de registro de baixo valor do Serviço de transferência do Cloud Storage. Como todos os coletores de registro em um projeto avaliam todas as entradas de registro, talvez seja necessário atualizar vários coletores de registro.
Use o filtro de exclusão a seguir para excluir entradas de registro do Serviço de transferência do Cloud Storage que registram ações bem-sucedidas:
resource.type="storage_transfer_job" AND jsonPayload.status.statusCode="OK"Para informações sobre como encontrar e modificar os coletores de registro, consulte Rotear registros para destinos compatíveis.
Ativar a geração de registros
Para configurar o Serviço de transferência do Cloud Storage para gerar dados de registro, especifique as ações e os estados a serem registrados.
CLI gcloud
Ao criar um job de transferência com gcloud transfer jobs create, use as seguintes flags para ativar a geração de registros:
gcloud transfer jobs create SOURCE DESTINATION \
--log-actions=copy,delete,find \
--log-action-states=succeeded,failed,skipped
É preciso especificar pelo menos um valor para cada flag.
REST
Para criar uma configuração de geração de registros, use
transferJobs.create com um
LoggingConfig:
{
"name":"transferJobs/myFirstTransfer",
"status": "ENABLED",
"projectId": "test-id-001",
"loggingConfig": {
"logActions": ["FIND", "DELETE", "COPY"],
"logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
},
"transferSpec": {
"awsS3DataSource": {
"bucketName": "AWS_SOURCE_NAME",
"awsAccessKey": {
"accessKeyId": "AWS_ACCESS_KEY_ID",
"secretAccessKey": "AWS_SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "destination_bucket",
"path": "foo/bar/"
},
}
}
Ajuste loggingConfig para incluir os logActions e logActionStates específicos a serem registrados. Por exemplo, para registrar quando as ações de copiar e buscar falharem, forneça o seguinte loggingConfig:
"loggingConfig": {
"logActions": ["COPY", "FIND"],
"logActionStates": ["FAILED"],
}
Atualizar uma configuração de geração de registros
CLI gcloud
Para atualizar a configuração de geração de registros de um job atual, use as flags apropriadas
com o gcloud transfer jobs update comando:
gcloud transfer jobs update NAME \
--log-actions=copy,delete,find \
--log-action-states=succeeded,failed,skipped
Para desativar a geração de registros para esse job, especifique --clear-log-config:
gcloud transfer jobs update NAME --clear-log-config
REST
Para atualizar uma configuração de geração de registros de uma transferência atual, use
transferJobs.patch com
LoggingConfig:
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": ["FIND", "DELETE", "COPY"],
"logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
O updateTransferJobFieldMask especifica o campo que está sendo atualizado nesta solicitação e é obrigatório.
Para desativar a geração de registros para esse job, envie um loggingConfig com listas vazias para logActions e logActionStates:
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": [],
"logActionStates": [],
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
Ver registros
Para ver os registros de transferência, faça o seguinte:
Google Cloud Console do
Acesse o menu de navegação do Google Cloud menu e selecione Logging > Análise de registros :
Selecionar um Google Cloud projeto do
No menu Upgrade, alterne de Leitor de registros legados para Análise de registros.
Para filtrar seus registros e mostrar apenas entradas do Serviço de transferência do Cloud Storage, digite
storage_transfer_jobno campo de consulta e clique em Executar consulta.No painel Resultados da consulta, clique em Editar hora para alterar o período de retorno dos resultados.
Para mais informações sobre como usar a Análise de registros, consulte Como usar a Análise de registros.
CLI gcloud
Para usar a CLI gcloud para pesquisar registros do Serviço de transferência do Cloud Storage, use o
comando
gcloud logging read.
Especifique um filtro para limitar os resultados aos registros do Serviço de transferência do Cloud Storage.
gcloud logging read "resource.type=storage_transfer_job"
API Cloud Logging
Use o método entries.list
da API Cloud Logging.
Para filtrar os resultados e incluir apenas entradas relacionadas ao Serviço de transferência do Cloud Storage,
use o campo filter. Veja abaixo um exemplo de objeto de solicitação JSON.
{
"resourceNames":
[
"projects/my-project-name"
],
"orderBy": "timestamp desc",
"filter": "resource.type=\"storage_transfer_job\""
}
Formato do registro de transferência
A tabela a seguir descreve os campos para os registros do Serviço de transferência do Cloud Storage:
Todos os campos específicos do Serviço de transferência do Cloud Storage estão contidos em um objeto jsonPayload.
Ações FIND
{
"jsonPayload": {
"@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
"action": "FIND",
"completeTime": "2021-12-16T18:58:49.344509695Z",
"destinationContainer": {
"gcsBucket": {
"bucket": "my-bucket-2",
},
"type": "GCS",
},
"operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
"sourceContainer": {
"gcsBucket": {
"bucket": "my-bucket-1"
},
"type": "GCS"
},
"status": {
"statusCode": "OK"
}
}
}
Ações COPY e DELETE
{
"jsonPayload": {
"@type": "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog",
"action": "COPY",
"completeTime": "2021-12-16T18:59:00.510509049Z",
"destinationObject": {
"gcsObject": {
"bucket": "my-bucket-2",
"objectKey": "README.md"
},
"type": "GCS",
},
"operation": "transferOperations/transferJobs-7876027868280507149--3019866490856027148",
"sourceObject": {
"gcsObject": {
"bucket": "my-bucket-1",
"lastModifiedTime": "2021-12-07T16:41:09.456Z",
"md5": "WgnCOIdfCXNTUDpQJSKb2w==",
"objectKey": "README.md",
},
"type": "GCS",
},
"status": {
"statusCode": "OK"
}
}
}
| Campo de registro | Descrição |
|---|---|
@type |
O valor é sempre
type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
|
action |
Descreve a ação dessa tarefa específica. Opções:
|
findAction |
Especifica se o assunto da ação de busca era um objeto ou uma pasta gerenciada. |
completeTime |
O carimbo de data e hora em conformidade com a ISO 8601 em que a operação foi concluída. |
destinationContainer |
Presente apenas para operações O contêiner de destino dessa transferência. Contém dois subcampos:
|
destinationObject |
Presente apenas para Informações sobre o objeto no destino. Contém dois subcampos:
Exemplo: "destinationObject": { "type": "POSIX_FS", "posixFile": { "crc32c": "0", "path": "/tmp/data/filename.txt", "lastModifiedTime": "2022-09-22T04:33:45Z" } } |
operation |
O nome totalmente qualificado de
transferOperations. |
sourceContainer |
Presente apenas para operações O contêiner de origem dessa transferência. Contém dois subcampos:
Exemplo: "sourceContainer": { "gcsBucket": { "bucket": "my-bucket-1" }, type: "GCS" } |
sourceObject |
presente apenas para operações Informações sobre o objeto de origem. Contém dois subcampos:
Exemplo: "sourceObject": { "gcsObject": { "bucket": "my-bucket-1" "lastModifiedTime": "2021-12-07T16:41:09.456Z" "md5": "WgnCOIdfCXNTUDpQJSKb2w==" "objectKey": "README.md" }, type: "GCS" } |
status |
O status da ação. Se |
Além disso, o campo resource de nível superior contém os seguintes campos.
"resource": {
"labels": {
"job_id": "transferJobs/7876027868280507149"
"project_id": "my-project-id"
},
"type": "storage_transfer_job"
}
| Campo de registro | Descrição |
|---|---|
resource.labels.job_id |
O nome do job do Serviço de transferência do Cloud Storage a que o registro pertence. |
resource.labels.project_id |
O ID do projeto do Google Cloud para essa transferência. |