Logging

En esta página se explica cómo utilizar Stackdriver Logging para recopilar y consultar registros de tus clústeres de Google Kubernetes Engine.

Descripción general

Cuando se habilita Stackdriver Logging en tu clúster, tus registros se guardan en un almacén de datos permanente y dedicado. Tu proyecto de Google Cloud Platform tiene varios registros que son relevantes para un clúster de GKE. Estos incluyen los registros de actividad del administrador, de acceso a los datos y de eventos.

Un registro es una colección de entradas de registro, y cada entrada se aplica a un tipo de recurso. Estos son los tipos de recursos más relevantes para los clústeres de GKE:

Tipo de recurso Nombre visible
k8s_cluster Clúster de Kubernetes
gke_cluster Operaciones del clúster de GKE
gke_container Contenedor de GKE
gke_nodepool Operaciones del grupo de nodos de GKE

Para obtener más información sobre las entradas de registro que se aplican a los tipos de recursos de las operaciones con clústeres de Kubernetes y de GKE, consulta Registro de auditoría.

Si bien GKE almacena los registros, no lo hace de forma permanente. Por ejemplo, los registros de contenedor de GKE se borran cuando se quita el pod de host, cuando el disco en el que están almacenados se queda sin espacio o cuando son reemplazados por registros más nuevos. Los registros del sistema se quitan periódicamente a fin de liberar espacio para nuevos registros. Los eventos de clústeres se quitan después de una hora.

Para los registros de contenedores y sistemas, GKE implementa un agente de registros por nodo que lee los registros de contenedores, agrega metadatos útiles y luego los almacena. El agente de registros busca registros de contenedor en las siguientes fuentes:

  • Registros de salida y de error estándar de procesos en contenedores
  • Registros de entorno de ejecución de contenedores y kubelet
  • Registros para los componentes del sistema, como las secuencias de comandos de inicio de VM

Para los eventos, GKE utiliza una implementación en el espacio de nombres de kube-system que recopila eventos automáticamente y los envía a Stackdriver Logging.

Stackdriver Logging es compatible con el formato JSON. Los registros se almacenan por hasta 30 días.

Antes de comenzar

Como preparación para esta tarea, realiza los siguientes pasos:

  • Asegúrate de habilitar la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de instalar el SDK de Cloud.
  • Configura el ID del proyecto predeterminado:
    gcloud config set project [PROJECT_ID]
  • Si trabajas con clústeres por zona, configura tu zona de procesamiento predeterminada:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Si trabajas con clústeres por región, configura tu región de procesamiento predeterminada:
    gcloud config set compute/region [COMPUTE_REGION]
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Cómo habilitar Stackdriver Logging

En la siguiente sección se explica cómo habilitar Stackdriver Logging.

Cómo crear un clúster con registro

Puedes crear un clúster con Stackdriver Logging habilitado, o habilitar Stackdriver Logging en un clúster existente.

gcloud

Cuando creas un clúster, el marcador --enable-cloud-logging se establece automáticamente, lo que habilita Stackdriver Logging en el clúster.

Para inhabilitar este comportamiento predeterminado, establece el marcador --no-enable-cloud-logging.

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en Crear clúster.

  3. Configura el clúster como quieras.

  4. Haz clic en Opciones avanzadas. En la sección Funciones adicionales, activa Habilitar servicio de Stackdriver Monitoring.

  5. Haz clic en Crear.

Cómo habilitar un registro para un clúster existente

gcloud

Para habilitar el registro de un clúster existente, ejecuta el siguiente comando, en el cual [CLUSTER_NAME] es el nombre del clúster.

gcloud container clusters update [CLUSTER_NAME] --logging-service logging.googleapis.com

console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en el botón Editar del clúster, que tiene forma de lápiz.

  3. Establece el valor desplegable de Stackdriver Logging en Habilitado.

  4. Haz clic en Guardar.

Cómo ver registros

Puedes ver los registros en el Visor de registros de Stackdriver de Google Cloud Platform Console.

Para obtener más información sobre cómo ver registros y crear consultas básicas y avanzadas, consulta Cómo ver registros en la documentación de Stackdriver Logging.

Ejemplos de consultas

Registros de consultas de pods, etiquetados nginx-deployment:

resource.type="container"
resource.labels.pod_id:"nginx-deployment-"

Registros de consultas en el espacio de nombres prod con gravedad WARNING o superior:

resource.type="container"
resource.labels.namespace_id="prod"
severity>WARNING

Registros de consultas de un contenedor específico, my-container, en un pod específico, my-pod, con una carga útil de texto:

resource.type="container"
resource.labels.container_name="my_container"
resource.labels.pod_id="my_pod"
textPayload:"abracadabra"

Limitaciones

Es posible que las entradas de varias líneas (entradas con caracteres de salto de línea) no se procesen correctamente. Para evitar este problema, une tus registros en strings JSON de una sola línea.

Recomendaciones

  • Registro estructurado: las strings JSON de una sola línea escritas para resultado estándar o error estándar se leerán en Stackdriver como entradas de registro estructurado. Puedes usar los filtros de registro avanzado para filtrar los registros según sus campos.
  • Gravedad: de manera predeterminada, los registros escritos en resultado estándar están en el nivel INFO y los registros escritos en error estándar están en el nivel ERROR. Los registros estructurados pueden incluir un campo severity, que define la gravedad del registro.
  • Cómo exportar a BigQuery: puedes exportar registros a los servicios externos, como BigQuery o Pub/Sub, para realizar un análisis adicional. Los registros exportados a BigQuery conservan su formato y estructura.
  • Alertas: puedes usar las métricas basadas en registros para configurar políticas de alertas cuando Stackdriver Logging registra un comportamiento inesperado.
  • Error Reporting: puedes usar Stackdriver Error Reporting para recopilar los errores que se produjeron en tus clústeres.

Cómo inhabilitar el registro

gcloud

Para inhabilitar el registro de un clúster existente, ejecuta el siguiente comando, en el cual [CLUSTER_NAME] es el nombre del clúster.

gcloud beta container clusters update [CLUSTER_NAME] --logging-service none

Console

  1. Ve al menú de Google Kubernetes Engine en GCP Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en el botón Editar (tiene forma de lápiz) del clúster que quieres cambiar.

  3. Establece el valor desplegable de Stackdriver Logging en Inhabilitado.

  4. Haz clic en Guardar.

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...