Cloud Logging para el Servicio de transferencia de Storage

En esta página se describe cómo configurar y ver los registros de Cloud Logging del Servicio de transferencia de Storage.

Cloud Logging es compatible con todas las transferencias del servicio de transferencia de Storage. Las operaciones de FIND no se registran en las transferencias basadas en agentes.

En las transferencias de sistemas de archivos, también se pueden configurar registros de transferencia de sistemas de archivos.

Antes de empezar

Antes de empezar, comprueba que tienes acceso a Cloud Logging. Te recomendamos el rol de Gestión de Identidades y Accesos Visor de registros (roles/logging.viewer). Para obtener más información sobre el acceso a Logging, consulta Control de acceso con IAM.

A continuación, se describe cómo verificar y conceder acceso de gestión de identidades y accesos:

Acciones registrables

Se pueden registrar las siguientes acciones:

  • FIND: buscar trabajo, como enumerar archivos en un directorio, enumerar objetos en un contenedor o enumerar carpetas gestionadas en un contenedor. No se admite en las transferencias basadas en agentes.
  • COPY: copiar archivos u objetos en Cloud Storage.
  • DELETE: elimina archivos u objetos en el origen o en el destino. En el caso de las transferencias entre dos sistemas de archivos, también se registra la eliminación de archivos del segmento de Cloud Storage intermediario.

Estados registrables

En cada acción, puedes registrar uno o varios de los siguientes estados:

  • SUCCEEDED: la acción se ha realizado correctamente.
  • FAILED: no se ha podido realizar la acción.
  • SKIPPED: Solo se aplica a la acción COPY y solo se admite en las tareas de transferencia basadas en agentes. Debe configurarse mediante gcloud o la API REST. Este estado significa que se ha omitido la copia. Esto ocurre cuando el archivo ya existe en el receptor y la tarea de transferencia está configurada para ignorar los archivos que ya existen.

Activar el almacenamiento de registros

Para habilitar el registro, especifica las acciones y los estados que se deben registrar.

CLI de gcloud

Cuando crees una tarea de transferencia con gcloud transfer jobs create, usa las siguientes marcas para habilitar el registro:

gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped

Debe especificar al menos un valor para cada marca.

REST

Para crear una configuración de registro, usa transferJobs.create con un 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/"
      },
   }
}

Ajusta loggingConfig para incluir el logActions y el logActionStates específicos que quieras registrar. Por ejemplo, para registrar cuándo fallan las acciones de copiar y buscar, proporciona el siguiente loggingConfig:

"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}

Actualizar una configuración de registro

CLI de gcloud

Para actualizar la configuración de registro de un trabajo, usa las marcas adecuadas con el comando gcloud transfer jobs update:

gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped

Para inhabilitar el registro de esta tarea, especifica --clear-log-config:

gcloud transfer jobs update NAME --clear-log-config

REST

Para actualizar la configuración de registro de una tarea de transferencia, usa transferJobs.patch con 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"
}

El campo updateTransferJobFieldMask especifica el campo que se va a actualizar en esta solicitud y es obligatorio.

Para inhabilitar el registro de este trabajo, envía un loggingConfig con listas vacías para logActions y logActionStates:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

Ver registros

Para ver los registros de transferencias, sigue estos pasos:

Google Cloud consola

  1. Ve al Google Cloud menú de navegación y selecciona Registro > Explorador de registros :<br\></br\>

    Ir al Explorador de registros

  2. Selecciona un Google Cloud proyecto.

  3. En el menú Actualizar, cambia de Visualizador de registros antiguo a Explorador de registros.

  4. Para filtrar los registros y que solo se muestren las entradas de Storage Transfer Service, escribe storage_transfer_job en el campo de consulta y haz clic en Ejecutar consulta.

  5. En el panel Resultados de la consulta, haga clic en Editar hora para cambiar el periodo del que quiere obtener resultados.

Para obtener más información sobre cómo usar el Explorador de registros, consulta el artículo Usar el Explorador de registros.

CLI de gcloud

Para usar la CLI de gcloud y buscar registros de Servicio de transferencia de Storage, usa el comando gcloud logging read.

Especifica un filtro para limitar los resultados a los registros del Servicio de transferencia de Storage.

gcloud logging read "resource.type=storage_transfer_job"

API de registro en la nube

Usa el método de la API entries.list Cloud Logging.

Para filtrar los resultados de forma que solo se incluyan las entradas relacionadas con el Servicio de transferencia de Storage, utilice el campo filter. A continuación, se muestra un objeto de solicitud JSON de ejemplo.

{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}

Formato del registro de transferencias

En la siguiente sección se describen los campos de los registros del Servicio de transferencia de Storage.

Todos los campos específicos del Servicio de transferencia de Storage se encuentran en un objeto jsonPayload.

FIND acciones

{
  "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"
    }
  }
}

Acciones de COPY y 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 Descripción
@type El valor es siempre type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Describe la acción de esta tarea concreta. Uno de los siguientes:

  • FIND: buscar trabajo que hacer, como enumerar archivos en un directorio u objetos en un contenedor. No se incluye en los informes de transferencias basadas en agentes.
  • COPY: copiar archivos u objetos en Cloud Storage.
  • DELETE: eliminar archivos u objetos en el origen, el destino o el segmento intermediario.
findAction

Especifica si el asunto de la acción de búsqueda era un objeto o una carpeta gestionada.

completeTime Marca de tiempo conforme a ISO 8601 en la que se completó la operación.
destinationContainer

Solo se incluye en las operaciones FIND. Las operaciones de FIND no se registran en las transferencias basadas en agentes.

El contenedor de destino de esta transferencia. Contiene dos subcampos:

  • gcsBucket.bucket: nombre del segmento de Cloud Storage de destino.
  • type: Siempre GCS.
destinationObject

Solo se incluye en las operaciones COPY y DELETE.

Información sobre el objeto de destino. Contiene dos subcampos:

  • Uno de los valores gcsObject, gcsManagedFolder o posixFile, según el destino. Todas las opciones contienen varios subcampos que especifican el nombre, la ubicación, la fecha y la hora y el hash del objeto o del archivo.
  • type puede ser GCS o POSIX_FS.

Por ejemplo:

"destinationObject": {
  "type": "POSIX_FS",
  "posixFile": {
    "crc32c": "0",
    "path": "/tmp/data/filename.txt",
    "lastModifiedTime": "2022-09-22T04:33:45Z"
  }
}
operation El nombre completo de transferOperations.
sourceContainer

Solo se incluye en las operaciones FIND. Las operaciones de FIND no se registran en las transferencias basadas en agentes.

El contenedor de origen de esta transferencia. Contiene dos subcampos:

  • Una entrada que especifica la ubicación de origen. El campo se denomina según el tipo de fuente. Estos son los campos posibles.
    • awsS3Bucket.bucket: nombre del segmento de AWS S3.
    • azureBlobContainer: contiene los subcampos account y container, que definen conjuntamente el URI de Microsoft Azure Blob Storage.
    • gcsBucket.bucket: el nombre del segmento de Cloud Storage.
    • httpManifest.url: la URL de una lista de URLs que especifica los archivos disponibles públicamente que se pueden descargar de un servidor HTTP(S).
  • type es uno de los siguientes valores: AWS_S3, AZURE_BLOB, GCS o HTTP.

Por ejemplo:

"sourceContainer": {
  "gcsBucket": {
    "bucket": "my-bucket-1"
  }
  type: "GCS"
}
sourceObject

Solo se incluye en las operaciones COPY y DELETE.

Información sobre el objeto de origen. Contiene dos subcampos:

  • Una entrada específica del host del objeto de origen. El campo se denomina según el tipo de fuente y contiene subcampos de metadatos. Estos son los campos posibles.
    • awsS3Object: un objeto de AWS S3.
    • azureBlob: un archivo de Azure Blob Storage.
    • gcsObject: un objeto de Cloud Storage.
    • gcsManagedFolder: una carpeta gestionada de Cloud Storage.
    • httpFile: un archivo especificado por una lista de URLs.
    • posixFile: un archivo de un sistema de archivos POSIX.
  • type es uno de los siguientes valores: AWS_S3, AZURE_BLOB, GCS, HTTP o POSIX_FS.

Por ejemplo:

"sourceObject": {
  "gcsObject": {
    "bucket": "my-bucket-1"
    "lastModifiedTime": "2021-12-07T16:41:09.456Z"
    "md5": "WgnCOIdfCXNTUDpQJSKb2w=="
    "objectKey": "README.md"
  }
  type: "GCS"
}
status

El estado de la acción. Si status.statusCode es OK, la acción se ha realizado correctamente. De lo contrario, la acción no se habrá podido realizar. Los campos status.errorType y status.errorMessage solo se rellenan si el estado no es OK.

Además, el campo resource de nivel superior contiene los siguientes campos.

"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
Campo de registro Descripción
resource.labels.job_id Nombre de la tarea del Servicio de transferencia de Storage a la que pertenece este registro.
resource.labels.project_id El Google Cloud ID del proyecto de esta transferencia.