arrow_back

Análisis de registros en Google Cloud

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Análisis de registros en Google Cloud

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP1088

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, conocerás las funciones y herramientas que ofrece Cloud Logging para obtener estadísticas de tus aplicaciones.

Qué aprenderás

  • Cómo usar Cloud Logging de forma eficaz y obtener estadísticas sobre las aplicaciones que se ejecutan en GKE
  • Cómo crear y ejecutar consultas eficaces con el Análisis de registros

La aplicación de demostración que se usa en el lab

Para practicar en un ejemplo concreto, trabajarás en esta app de ejemplo con una demostración de microservicios implementada en un clúster de GKE. En esta app de demostración, hay muchos microservicios y dependencias entre ellos.

gráfico con muchos microservicios y sus dependencias

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1: Configura la infraestructura

Verifica el clúster de GKE

Conéctate a un clúster de Google Kubernetes Engine y verifica que se haya creado correctamente.

1. En Cloud Shell, configura la zona usando el comando gcloud:

gcloud config set compute/zone {{{project_0.default_zone|placeholder}}}
  1. Usa el siguiente comando para ver el estado del clúster:
gcloud container clusters list

Deberías ver un estado similar al que se muestra aquí:

NAME: day2-ops LOCATION: {{{project_0.default_zone|placeholder}}} MASTER_VERSION: 1.24.3-gke.2100 MASTER_IP: 34.68.183.6 MACHINE_TYPE: e2-standard-2 NODE_VERSION: 1.24.3-gke.2100 NUM_NODES: 4 STATUS: RUNNING

El estado del clúster será RUNNING. Si estado sigue siendo PROVISIONING, espera un momento y vuelve a ejecutar el comando anterior. Repite estos pasos hasta que el estado sea RUNNING.

También puedes revisar el progreso en la consola de Cloud desde el Menú de navegación > Kubernetes Engine > Clústeres.

  1. Cuando el estado del clúster sea RUNNING, obtén sus credenciales:
gcloud container clusters get-credentials day2-ops --region {{{project_0.default_region|placeholder}}}

(Resultado)

Fetching cluster endpoint and auth data. kubeconfig entry generated for day2-ops.
  1. Verifica si se crearon los nodos:
kubectl get nodes

El resultado debería ser similar al siguiente:

NAME STATUS ROLES AGE VERSION gke-day2-ops-default-pool-b3081059-bskv Ready <none> 3m32s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-dt73 Ready <none> 3m30s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-g1m3 Ready <none> 3m31s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-wq4b Ready <none> 3m31s v1.24.3-gke.2100

Tarea 2: Implementa la aplicación

A continuación, implementarás una aplicación de microservicios llamada Online Boutique en tu clúster para crear una carga de trabajo real que se pueda supervisar.

  1. Ejecuta el siguiente comando para clonar el repo:
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
  1. Cambia al directorio microservices-demo:
cd microservices-demo
  1. Instala la app con kubectl:
kubectl apply -f release/kubernetes-manifests.yaml
  1. Confirma que todo se ejecute en forma correcta:
kubectl get pods

El resultado debería ser similar al siguiente: Antes de continuar con el paso siguiente, vuelve a ejecutar el comando hasta que todos los pods tengan el estado Running.

NAME READY STATUS RESTARTS AGE adservice-55f94cfd9c-4lvml 1/1 Running 0 20m cartservice-6f4946f9b8-6wtff 1/1 Running 2 20m checkoutservice-5688779d8c-l6crl 1/1 Running 0 20m currencyservice-665d6f4569-b4sbm 1/1 Running 0 20m emailservice-684c89bcb8-h48sq 1/1 Running 0 20m frontend-67c8475b7d-vktsn 1/1 Running 0 20m loadgenerator-6d646566db-p422w 1/1 Running 0 20m paymentservice-858d89d64c-hmpkg 1/1 Running 0 20m productcatalogservice-bcd85cb5-d6xp4 1/1 Running 0 20m recommendationservice-685d7d6cd9-pxd9g 1/1 Running 0 20m redis-cart-9b864d47f-c9xc6 1/1 Running 0 20m shippingservice-5948f9fb5c-vndcp 1/1 Running 0 20m
  1. Ejecuta el siguiente fragmento para obtener la IP externa de la aplicación. Solo se devuelve una dirección IP si el servicio se implementó. Por eso, es posible que debas repetir los comandos hasta que haya una dirección IP externa asignada.
export EXTERNAL_IP=$(kubectl get service frontend-external -o jsonpath="{.status.loadBalancer.ingress[0].ip}") echo $EXTERNAL_IP

(Resultado de ejemplo)

35.222.235.86
  1. Por último, confirma que la app se esté ejecutando:
curl -o /dev/null -s -w "%{http_code}\n" http://${EXTERNAL_IP}

La confirmación se verá de la siguiente manera:

200

Luego de que se haya implementado la aplicación, puedes ir a la consola de Cloud y ver el estado.

  1. En la página de Kubernetes Engine > Cargas de trabajo, verás que todos los Pods tienen el estado Sin errores.
página Cargas de trabajo con los Pods en estado Sin errores
  1. Ahora, haz clic en Ingress y servicios y verifica que todos los servicios tengan el estado Sin errores.

Abre la aplicación

En Ingress y servicios, haz clic en la IP del extremo del servicio frontend-external:

imagen destacada de la dirección IP externa del servicio frontend-external

Con esto debería abrirse la aplicación y verse una página como la siguiente:

página web de la aplicación de demostración

Haz clic en Revisar mi progreso para verificar el objetivo. Implementar la aplicación

Tarea 4: Administra buckets de registros

Existen dos formas de habilitar el Análisis de registros: actualizar un bucket existente y crear un bucket de registros nuevo que lo tenga habilitado.

Actualiza un bucket existente

Puedes seguir los pasos que se indican a continuación para actualizar un bucket de registros existente.

  1. En el menú de la izquierda, haz clic en Logging y, luego, en Almacenamiento de registros.

  2. Haz clic en ACTUALIZAR en un bucket existente, por ejemplo, el bucket _Default.

panel de detalles del bucket con 2 casillas de verificación marcadas
  1. Haz clic en ACTUALIZAR en la ventana emergente.

  2. Espera a que se complete la actualización. Al principio, verás el estado No apto para la actualización y, luego, el estado cambiará a Actualizado.

  3. Haz clic en el botón ABRIR del menú desplegable.

  4. Selecciona la vista _AllLogs y se abrirá la página Análisis de registros.

Crea un bucket de registros nuevo

Como alternativa, puedes configurar Cloud Logging para crear un bucket de registros nuevo con el Análisis de registros habilitado.

  1. En el menú de la izquierda, haz clic en Logging y, luego, en Almacenamiento de registros.

  2. Haz clic en CREAR BUCKET DE REGISTROS en la parte superior de la pantalla.

  3. Ingresa un nombre para el bucket, como day2ops-log.

  4. Marca las opciones Actualiza para usar el análisis de registros y Crear un conjunto de datos vinculado en BigQuery.

  5. Ingresa un nombre para el conjunto de datos, como day2ops_log.

panel de detalles del bucket con 2 casillas de verificación marcadas

Si seleccionas Crear un conjunto de datos vinculado en BigQuery, se creará un conjunto de datos en BigQuery en el caso de que no haya uno. De este modo, puedes ejecutar consultas en BigQuery si es necesario.

  1. Por último, haz clic en Crear bucket para crear el bucket de registros.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear un bucket de registros

Escribe en el nuevo bucket de registros

Puedes crear un receptor de registros para usar el bucket de registros nuevo. Esto se puede llevar a cabo directamente desde el Enrutador de registros. Otra forma fácil de hacerlo es desde el Explorador de registros. Puedes ejecutar consultas para seleccionar y filtrar los registros que quieres ver y crear un receptor. Un beneficio de esta alternativa es que la consulta de los registros se copiará automáticamente en la configuración del receptor como filtro.

  1. En la parte superior derecha del Explorador de registros, habilita Mostrar consulta y ejecuta la siguiente consulta en el campo correspondiente:
resource.type="k8s_container"
  1. Haz clic en Crear un receptor.
La página Explorador de registros con el botón Crear receptor destacado
  1. Ingresa un nombre para el receptor, como day2ops-sink.

  2. Haz clic en SIGUIENTE.

  3. Selecciona el bucket de Cloud Logging de la lista desplegable de servicios del receptor.

  4. Selecciona el nuevo bucket de registros que creaste.

  5. Haz clic en SIGUIENTE.

Deberías ver la consulta de tipos de recursos en el filtro.

detalles del receptor con el tipo de recurso visualizado
  1. Haz clic en CREAR UN RECEPTOR.

Espera un momento para que se cree tu receptor.

Haz clic en Revisar mi progreso para verificar el objetivo. Crear el receptor de registros

Lee desde el nuevo bucket de registros

Vuelve al Explorador de registros. Observa que hay muchos tipos de recursos diferentes para los registros, como se muestra en la captura de pantalla de abajo.

tipos de recursos y el botón Definir mejor el permiso destacado
  1. Para ver los registros del nuevo bucket de registros, haz clic en DEFINIR MEJOR EL PERMISO en la parte superior de la página.

  2. Selecciona Limitar alcance por almacenamiento y, luego, el bucket de registros que creaste recientemente.

  3. Haz clic en APLICAR.

Verás que Contenedores de Kubernetes ahora es el único tipo de recurso y que hay muchas menos entradas de registro. Eso se debe a que solo se enviarán los registros filtrados al bucket.

Tarea 5: Análisis de registros

  • En la parte izquierda de la página, debajo de Registros, haz clic en Análisis de registros para acceder a la función. Deberías ver un resultado similar al siguiente:
a7afa6a91515d206.png

Si el campo de consulta está vacío o no recuerdas cuál tabla querías usar, puedes hacer clic en el botón Consulta para recuperar la consulta de muestra.

Ahora, puedes ejecutar tus propias consultas en el campo. A continuación, se muestran algunos ejemplos.

Importante: El nombre de la vista del registro en la cláusula FROM es diferente a los buckets de registros. Debes asegurarte de usar el nombre de la vista correcto. Puedes usar el paso anterior para verificarlo.

Cómo buscar los errores más recientes

Usa esta consulta para buscar los errores más recientes en los contenedores:

SELECT TIMESTAMP, JSON_VALUE(resource.labels.container_name) AS container, json_payload FROM `logs_day2ops_US._AllLogs` WHERE severity="ERROR" AND json_payload IS NOT NULL ORDER BY 1 DESC LIMIT 50

Después de ejecutar la consulta, deberías ver un resultado como el que se muestra a continuación:

resultados de la consulta para encontrar errores recientes

Cómo hallar la latencia mínima, máxima y promedio

Usa esta consulta para ver las latencias mínima, máxima y promedio del servicio de frontend durante un plazo determinado:

SELECT hour, MIN(took_ms) AS min, MAX(took_ms) AS max, AVG(took_ms) AS avg FROM ( SELECT FORMAT_TIMESTAMP("%H", timestamp) AS hour, CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64 ) AS took_ms FROM `logs_day2ops_US._AllLogs` WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR) AND json_payload IS NOT NULL AND SEARCH(labels, "frontend") AND JSON_VALUE(json_payload.message) = "request complete" ORDER BY took_ms DESC, timestamp ASC ) GROUP BY 1 ORDER BY 1

Después de ejecutar la consulta, deberías ver un resultado como el que se muestra a continuación:

resultados de la consulta para hallar la latencia mínima, máxima y promedio

Número de visitas de la página de producto

Usa esta consulta para conocer la cantidad de veces que los usuarios visitaron una página de producto determinada en la última hora:

SELECT count(*) FROM `logs_day2ops_US._AllLogs` WHERE text_payload like "GET %/product/L9ECAV7KIM %" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)

Después de ejecutar la consulta, deberías ver un resultado como el que se muestra a continuación:

resultados de la consulta de visitas a una página de producto

Sesiones con confirmación de la compra del carrito

Puedes ejecutar la siguiente consulta para ver la cantidad de sesiones que terminan con una confirmación de la compra (llamada POST al servicio /cart/checkout):

SELECT JSON_VALUE(json_payload.session), COUNT(*) FROM logs_day2ops_US._AllLogs WHERE JSON_VALUE(json_payload['http.req.method']) = "POST" AND JSON_VALUE(json_payload['http.req.path']) = "/cart/checkout" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) GROUP BY JSON_VALUE(json_payload.session)

Después de ejecutar la consulta, deberías ver un resultado como el que se muestra a continuación:

resultado de la consulta de confirmaciones de compra del carrito

Felicitaciones

Ahora tienes experiencia en el uso de Cloud Logging para obtener estadísticas de las aplicaciones que se ejecutan en GKE, y puedes crear y ejecutar consultas con el Análisis de registros.

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 26 de septiembre de 2022

Prueba más reciente del lab: 26 de septiembre de 2022

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.