Escribir y consultar entradas de registro con gcloud CLI

En este documento se presentan algunas de las funciones de Cloud Logging y se explica cómo hacer lo siguiente:

  • Escribe entradas de registro con Google Cloud CLI.
  • Muestra las entradas de registro con gcloud CLI.
  • Muestra las entradas de registro con la API Logging.
  • Consulta y busca entradas de registro con el Explorador de registros.

Antes de empezar

Para completar esta guía de inicio rápido, debes tener un Google Cloud proyecto con la facturación habilitada. Si no tienes ningún Google Cloud proyecto o no has habilitado la facturación en tu Google Cloud proyecto, haz lo siguiente:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Install the Google Cloud CLI.

  8. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  9. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  10. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Escribir entradas de registro con gcloud CLI

    El registro admite entradas de registro con datos estructurados y no estructurados. Los datos estructurados constan de una estructura de datos JSON; por ejemplo, {"weather": "partly cloudy"}. Los datos no estructurados son una cadena de caracteres, como "A simple entry".

    En los pasos siguientes, usarás gcloud CLI para escribir una entrada de registro con datos no estructurados y otra con datos estructurados. La CLI de gcloud proporciona una interfaz de línea de comandos a la API de Cloud Logging.

    1. Para escribir una entrada de registro con datos no estructurados en el registro my-test-log, ejecuta el comando gcloud logging write:

      gcloud logging write my-test-log "A simple entry."
      

      Cuando se complete el comando, verás el mensaje Created log entry.

    2. Escribe una entrada de registro con datos estructurados en el registro my-test-log:

      gcloud logging write --payload-type=json my-test-log '{ "message": "My second entry", "weather": "partly cloudy"}'
      

      Cuando escribas una entrada de registro con datos estructurados, debes incluir --payload-type=json. Si omite este campo, Logging interpretará la carga útil como datos sin estructurar.

    Si el registro my-test-log no existe, Logging lo crea cuando se recibe la entrada de registro.

    Mostrar entradas de registro con gcloud CLI

    Puedes obtener entradas de registro de Logging y mostrarlas con la CLI de gcloud. Por ejemplo, para recuperar y mostrar las entradas de registro con el tipo de recurso global, ejecuta el siguiente comando:

    gcloud logging read "resource.type=global"
    

    El comando devuelve un resultado similar al siguiente:

    ---
    insertId: jpj9zjf73t1mn
    jsonPayload:
      message: My second entry
      weather: partly cloudy
    logName: projects/myloggingproject/logs/my-test-log
    receiveTimestamp: '2018-11-01T18:39:31.114507977Z'
    resource:
      labels:
        project_id: myloggingproject
      type: global
    timestamp: '2018-11-01T18:39:31.114507977Z'
    ---
    insertId: vd4m1if7h7u1a
    logName: projects/myloggingproject/logs/my-test-log
    receiveTimestamp: '2018-11-01T18:39:19.718100792Z'
    resource:
      labels:
        project_id: myloggingproject
      type: global
    textPayload: A simple entry
    timestamp: '2018-11-01T18:39:19.718100792Z'
    

    Para obtener información sobre cómo leer los registros, consulta la documentación de referencia de gcloud logging read.

    Listar entradas de registro con el Explorador de APIs

    Para ejecutar métodos de la API Logging sin escribir código, consulta Usar el Explorador de APIs. Para leer una lista de entradas de registro de Logging, sigue estos pasos:

    1. Ve a la página de referencia de la API del método de la API entries.list:

      Ir a la página de la API entries.list

    2. Configura y ejecuta el comando de la API:

      1. Sustituye PROJECT_ID en el siguiente texto:

        "resourceNames": [
        "projects/PROJECT_ID"
        ],
        "filter": "resource.type=global",
        "orderBy": "timestamp desc"
        
      2. Copia el texto actualizado del paso anterior y pégalo en el campo Cuerpo de la solicitud del Explorador de APIs.

      3. Haz clic en la opción para ejecutar.

      El método devuelve una respuesta similar a la siguiente:

      {
        "entries": [
          {
            "textPayload": "A simple entry",
            "insertId": "vd4m1if7h7u1a",
            "resource": {
              "type": "global",
              "labels": {
                "project_id": "myloggingproject"
              }
            },
            "timestamp": "2018-11-01T18:39:19.718100792Z",
            "logName": "projects/myloggingproject/logs/my-test-log",
            "receiveTimestamp": "2018-11-01T18:39:19.718100792Z"
          },
          {
            "insertId": "jpj9zjf73t1mn",
            "jsonPayload": {
              "message": "My second entry",
              "weather": "partly cloudy"
            },
            "resource": {
              "type": "global",
              "labels": {
                "project_id": "myloggingproject"
              }
            },
            "timestamp": "2018-11-01T18:39:31.114507977Z",
            "logName": "projects/myloggingproject/logs/my-test-log",
            "receiveTimestamp": "2018-11-01T18:39:31.114507977Z"
          }
        ]
      }
      

    Ver entradas de registro en el explorador de registros

    Para ver las entradas de registro en la consola, puedes usar el Explorador de registros. Google Cloud La mayoría de los proyectos Google Cloud almacenan un gran número de registros, por lo que puedes seleccionar determinadas entradas de registro escribiendo una consulta.

    Para ver las entradas de registro que has escrito con el Explorador de registros, haz lo siguiente:

    1. En la Google Cloud consola, ve a la página Explorador de registros:

      Ve al Explorador de registros.

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.

      Asegúrate de que tu Google Cloud proyecto esté seleccionado en la Google Cloud barra de navegación. Si es necesario, usa la Google Cloud lista desplegable de proyectos para seleccionar tu Google Cloud proyecto.

    2. En el menú Recurso, selecciona Global.

      Si no ves la opción de menú Global o no ves tus entradas de registro, espera unos minutos y actualiza la página. Logging puede tardar unos minutos en recibir las entradas de registro.

    3. Para ver los detalles de una entrada de registro, haz clic en su menú.

      La primera entrada de registro tiene sus datos almacenados en textPayload. La segunda entrada de registro contiene datos estructurados que se almacenan en jsonPayload. La carga útil estructurada contiene las claves message y weather.

    Para obtener información sobre el formato de datos de las entradas de registro, consulta el tipo LogEntry.

    Consultar entradas de registro en el explorador de registros

    Puede consultar entradas de registro mediante el editor de consultas y, con los registros estructurados, por clave y valor. Por ejemplo, para mostrar todas las entradas de registro que contengan el texto simple, haga lo siguiente:

    1. En la Google Cloud consola, ve a la página Explorador de registros:

      Ve al Explorador de registros.

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.

    2. En el menú Recurso, selecciona Global.

    3. En el editor de consultas, escribe la cadena simple entre comillas. En la pantalla de registros solo se muestra la entrada de registro A simple entry.

    4. Después de ver el registro, quite la cadena de consulta que ha añadido y haga clic en Ejecutar consulta. Ambas entradas de registro vuelven a aparecer en la pantalla.

    Para mostrar todas las entradas de registro con datos estructurados que tengan la clave weather donde el campo value contenga partly, haz lo siguiente:

    1. El editor de consultas contiene la línea resource.type="global". Introduce el siguiente comando:

      jsonPayload.weather:partly
      
    2. Haz clic en Realizar una consulta. El resultado es la entrada de registro única My second entry.

    Explorador de registros también ofrece consultas guardadas, sugeridas y recientes. Para obtener más información sobre las consultas, consulta el artículo Crear consultas en el Explorador de registros.

    Para ver consultas de muestra, consulta Consultas de muestra con el Explorador de registros.

    Solución de problemas

    • Si hay errores tipográficos o nombres de campos desconocidos, los comandos de la interfaz de línea de comandos de gcloud se completarán con mensajes de argumento no válido. Por ejemplo, si olvidas el punto en resource.type, se produce el siguiente error:

       ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Field not found: 'resourcetype'.
      
    • Si no se han concedido los permisos de acceso necesarios a Cloud Logging, los comandos de la CLI de gcloud se completarán con mensajes de permiso denegado. Por ejemplo, si una instancia de VM de Compute Engine está configurada con los ajustes predeterminados de la API, el comando list se completa con un error de permiso denegado:

       ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.
      

      Para solucionar este problema, modifique los permisos de su instancia de VM de Compute Engine para conceder permiso de lectura a Cloud Logging. Para ello, siga estos pasos:

      1. Ve a la página Detalles de la instancia de VM de tu instancia de VM. Haz clic en Detener. Esta acción puede tardar un par de minutos en completarse.
      2. Para modificar la configuración, haz clic en Editar.
      3. Busca el encabezado Permisos de acceso a la API de Cloud y haz clic en Detalles para ver la configuración de cada API. Cambia la entrada de la API de Cloud Logging a Completo. Haz clic en Guardar.
      4. Para reiniciar la instancia de VM, haz clic en Iniciar. Al cabo de unos instantes, tu VM estará lista para usarse.
    • Si Explorador de APIs no puede completar tu comando o requiere autorización adicional, muestra un mensaje o un código de error:

      • Código de respuesta 200 y sin entradas: si se muestra el mensaje nextPageToken, significa que Explorador de APIs no ha tenido tiempo de completar la búsqueda. Añada un pageToken a su solicitud, asígnele el mismo valor que el de la clave nextPageToken y vuelva a intentar ejecutar el comando.
      • Código de respuesta 400: el valor de la consulta no es válido. Por ejemplo, si escribes global como gloobal, el mensaje será Unsupported resource type: gloobal.
      • Código de respuesta 404: el ID de proyecto no es válido. Comprueba que hayas escrito bien el identificador del proyecto.
      • Puede que se te pida que inicies sesión en tu proyectoGoogle Cloud y que permitas que Explorador de APIs acceda a tu cuenta.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.

    1. (Opcional) Para eliminar las entradas de registro que has creado, ejecuta el siguiente comando:gcloud

      gcloud logging logs delete my-test-log
      

      Si no eliminas las entradas de registro, caducarán y se eliminarán. Para obtener información sobre la conservación, consulta Cuotas y límites.

    Siguientes pasos

    • Para obtener información sobre la interfaz de línea de comandos de Logging, consulta las páginas de referencia del grupo de comandos gcloud logging.
    • Para consultar la documentación de la API Logging, consulta la API de Cloud Logging.
    • Para obtener información sobre el Explorador de registros, consulta el artículo Usar el Explorador de registros.