Nesta página, descrevemos como configurar o Serviço de transferência do Cloud Storage para gerar dados de registro que registram ações e estados. É possível ver e analisar os dados de registros 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 do 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. Indisponível 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, você também pode registrar um ou mais dos seguintes estados:
SUCCEEDED: a ação foi bem-sucedida.FAILED: a ação falhou.SKIPPED: se aplica apenas à ação COPY e é aceito somente para jobs de transferência baseados em agentes. Precisa ser definido usandogcloudou a 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 existentes.
Práticas recomendadas
Ativar o registro em registros da ação FIND ou do estado SUCCEEDED pode resultar em um grande volume de dados de registros, o que pode afetar seus custos do Cloud Logging.
É possível usar as seguintes estratégias para reduzir o volume de dados de registros armazenados:
Registrar apenas falhas. Se você não precisar de uma auditoria completa de conformidade 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 das 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 registros no seu projeto para excluir dados de registro do serviço de transferência do Cloud Storage de baixo valor. Como todos os coletores de registros em um projeto avaliam todas as entradas de registro, talvez seja necessário atualizar vários coletores.
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 seus coletores de registros, 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 da 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
É necessário 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 o logActions e o
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, use as flags apropriadas com o comando gcloud transfer jobs update:
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 o registro em registros desse 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:
Console do Google Cloud
Acesse o menu de navegação do Google Cloud menu e selecione Logging > Análise de registros :
Selecionar um projeto do Google Cloud
No menu Upgrade, alterne de Visualizador 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.
Veja mais informações em Como usar o Explorador 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 Storage Transfer Service estão contidos em um
objeto jsonPayload.
FIND ações
{
"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 localização 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 operações 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. |