Configura Logging y Monitoring para GKE


Google Kubernetes Engine (GKE) incluye integración en Cloud Logging y Cloud Monitoring, incluido el Google Cloud Managed Service para Prometheus.

Esta integración te permite supervisar tus clústeres de GKE en ejecución, administrar tu sistema y los registros de depuración y analizar el rendimiento del sistema mediante funciones avanzadas de perfilado y seguimiento.

Esta integración también proporciona un panel para observar tus clústeres de GKE.

Nota: Los registros de seguridad, incluidos los registros de auditoría básicos, están disponibles para GKE y la mayoría de los demás servicios de Google Cloud, incluso cuando Cloud Logging no está habilitado para un clúster de GKE. Para obtener más información, consulta Registros de auditoría de Cloud.

En esta página, se describe cómo hacer lo siguiente:

  • Crea un clúster nuevo y configura Cloud Logging, Cloud Monitoring y Google Cloud Managed Service para Prometheus.

  • Selecciona qué registros y métricas se recopilarán.

  • Inhabilita Cloud Logging, Cloud Monitoring y Google Cloud Managed Service para Prometheus en un clúster.

En los clústeres de GKE Autopilot, no puedes inhabilitar la integración de Cloud Logging y Cloud Monitoring.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.
  • Asegúrate de ser el propietario del proyecto que contiene el clúster.

  • Asegúrate de haber habilitado la API de Cloud Logging. Puedes verificar el estado de la API de Cloud Logging en la página de resumen.

Registros y métricas

Tienes la opción de enviar o no registros y métricas desde tu clúster de GKE a Cloud Logging y Cloud Monitoring. En las siguientes secciones, se describe cuáles registros y métricas están disponibles y cuáles están habilitados de forma predeterminada en el momento de la creación del clúster.

Registros disponibles

Si eliges enviar registros a Cloud Logging, debes enviar registros del sistema y, de forma opcional, enviar registros desde fuentes adicionales.

Obtén más información sobre los precios de Cloud Logging.

En la siguiente tabla, se indican los valores admitidos para la marca --logging en los comandos create y update.

Fuente del archivo de registro --logging Valor Registros recopilados
Ninguno NONE No se enviaron registros a Cloud Logging. No hay agentes de recopilación de registros instalados en el clúster. Este valor no es compatible con los clústeres de GKE Autopilot.
Sistema SYSTEM Recopila los siguientes registros:
  • Todos los Pods que se ejecutan en los espacios de nombres kube-system, istio-system, knative-serving, gke-system y config-management-system.
  • Servicios clave que no están alojados en contenedores, incluidos el entorno de ejecución docker/containerd, kubelet, kubelet-monitor, node-problem-detector y kube-container-runtime-monitor.
  • La salida de los puertos en serie del nodo, si los metadatos de la instancia de VM serial-port-logging-enable se configuran como verdaderos.

Además, recopila eventos de Kubernetes. Este valor es obligatorio para todos los tipos de clústeres.

Cargas de trabajo WORKLOAD Todos los registros generados por contenedores que no son del sistema y que se ejecutan en nodos de usuario Este valor está activado de forma predeterminada, pero opcional para todos los tipos de clústeres.
Servidor de la API API_SERVER Todos los registros que genera kube-apiserver Este valor es opcional para todos los tipos de clústeres.
Programador SCHEDULER Todos los registros que genera kube-scheduler Este valor es opcional para todos los tipos de clústeres.
Administrador del controlador CONTROLLER_MANAGER Todos los registros que genera kube-controller-manager Este valor es opcional para todos los tipos de clústeres.

Métricas disponibles

Si eliges enviar métricas a Cloud Monitoring, debes enviar métricas del sistema y, de forma opcional, enviar métricas adicionales.

Obtén información sobre los precios de Cloud Monitoring, incluidas las métricas que no son cobrables.

En la siguiente tabla, se indican los valores admitidos para la marca --monitoring en los comandos create y update.

Origen --monitoring Valor Métricas recopiladas
Ninguno NONE No se enviaron métricas a Cloud Monitoring. No hay ningún agente de recopilación de métricas instalado en el clúster. Este valor no es compatible con los clústeres de GKE Autopilot.
Sistema SYSTEM Métricas de los componentes esenciales del sistema que se requieren para Kubernetes. Para obtener una lista completa de las métricas, consulta Métricas de Kubernetes.
Servidor de la API API_SERVER Métricas de kube-apiserver Para obtener una lista completa de las métricas, consulta Métricas del servidor de la API.
Programador SCHEDULER Métricas de kube-scheduler Para obtener una lista completa de las métricas, consulta Métricas del programador.
Administrador del controlador CONTROLLER_MANAGER Métricas de kube-controller-manager Para obtener una lista completa de las métricas, consulta Métricas del Administrador de controladores.
Volumen persistente (almacenamiento) STORAGE Métricas de almacenamiento de kube-state-metrics Incluye métricas para los volúmenes persistentes y las reclamaciones de volúmenes persistentes. Para obtener una lista completa de las métricas, consulta Métricas de almacenamiento.
Pod POD Métricas del Pod de kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas del Pod.
Deployment DEPLOYMENT Métricas de implementación desde kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas de implementación.
StatefulSet STATEFULSET Métricas de StatefulSet de kube-state-metrics. Para obtener una lista completa de las métricas, consulta Métricas de StatefulSet.
DaemonSet DAEMONSET Métricas de DaemonSet de kube-state-metrics Para obtener una lista completa de las métricas, consulta Métricas de DaemonSet.
HorizonalPodAutoscaler HPA Métricas del HPA de kube-state-metrics. Consulta una lista completa de las métricas de HorizonalPodAutoscaler.
cAdvisor CADVISOR Métricas de cAdvisor del paquete de métricas de cAdvisor/Kubelet. Para obtener una lista completa de las métricas, consulta Métricas de cAdvisor.
Kubelet KUBELET Métricas de Kubelet de cAdvisor/Kubelet. Para obtener una lista completa de las métricas, consulta el paquete de métricas. Métricas de Kubelet.

Además, puedes recopilar métricas de estilo Prometheus que expone cualquier carga de trabajo de GKE mediante Google Cloud Managed Service para Prometheus, que te permite supervisar y generar alertas sobre tus cargas de trabajo mediante Prometheus, sin tener que administrar y operar Prometheus de forma manual a gran escala.

Registros y métricas habilitados de forma predeterminada

Cuando creas un clúster de GKE nuevo en Google Cloud, algunos registros y métricas se habilitan de forma predeterminada durante la creación del clúster.

  • Los registros y las métricas del sistema están habilitados para todos los tipos de clústeres y no se pueden inhabilitar.
  • Los registros de cargas de trabajo están habilitados de forma predeterminada para todos los clústeres de Autopilot, pero se pueden inhabilitar. No recomendamos inhabilitar los registros de cargas de trabajo debido al impacto en la compatibilidad.
  • Para los proyectos de la edición GKE Enterprise, los registros y las métricas útiles adicionales están habilitados de forma predeterminada si te registras en una flota mientras creas el clúster. Si quieres habilitar esos registros y métricas después de crear un clúster, consulta Cambia tu clúster.

En las siguientes tablas () se indica qué registros y métricas están habilitados de forma predeterminada cuando creas y registras un clúster nuevo en un proyecto con GKE Enterprise habilitado:

Registros

Nombre del registro Autopilot Estándar
Sistema
Cargas de trabajo -
Servidor de la API
Programador
Administrador del controlador

Los registros del plano de control (servidor de la API, programador y administrador del controlador) generan cargos de Cloud Logging.

Métricas

Nombre de la métrica Autopilot Estándar
Sistema
Servidor de la API
Programador
Administrador del controlador
Volumen persistente (almacenamiento)
Pods
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet

Todos los clústeres registrados en un proyecto que tiene GKE Enterprise habilitado pueden usar los paquetes para Métricas del plano de control, Kube State Metrics y Métricas de cAdvisor/Kubelet sin cargos adicionales. De lo contrario, estas métricas generarán cargos de Cloud Monitoring.

Puedes inhabilitar los registros y las métricas predeterminados durante la creación del clúster o después de crear el clúster.

Configura la asistencia de Monitoring y Logging para un clúster nuevo

Las instrucciones de creación de clústeres en esta sección solo abarcan las opciones relevantes para Cloud Logging y Cloud Monitoring. Si deseas obtener instrucciones completas para crear un clúster de GKE, consulta la documentación a fin de crear un clúster de Standard o Autopilot.

Para configurar manualmente el registro y la supervisión mientras creas un clúster de GKE, completa los siguientes pasos:

Console

Para un clúster de Autopilot:

  1. En la página de creación de clústeres de Autopilot, en el panel de navegación, haz clic en Configuración avanzada.

    Crea un clúster de Autopilot

  2. En la lista Operaciones, elige los registros y las métricas que deseas recopilar.

    • En la lista Componentes de Cloud Logging, selecciona los componentes de los que deseas recopilar registros.

    • En la lista Componentes de Cloud Monitoring, elige los componentes de los que deseas recopilar métricas.

    Los clústeres de Autopilot siempre usan las prácticas recomendadas de Google para la recopilación de telemetría, lo que significa que el registro del sistema y la carga de trabajo siempre están habilitados y la supervisión del sistema siempre está habilitada.

  3. Haz clic en Crear.

Para un clúster de Standard:

  1. En la página de creación de clústeres de Standard, en el panel de navegación, en Clúster, haz clic en Funciones.

    Crea un clúster de Kubernetes

  2. En la lista Operaciones, elige los registros y las métricas que deseas recopilar.

    • En la lista Componentes de Cloud Logging, selecciona los componentes de los que deseas recopilar registros.

    • En la lista Componentes de Cloud Monitoring, elige los componentes de los que deseas recopilar métricas.

    • Para inhabilitar Cloud Logging (excepto los registros de auditoría), desmarca la casilla de verificación Habilitar Cloud Logging.

    • Para inhabilitar Cloud Monitoring, desmarca la casilla de verificación Habilitar Cloud Monitoring.

    • Si deseas inhabilitar Google Cloud Managed Service para Prometheus, desmarca la casilla de verificación Habilitar Google Cloud Managed Service para Prometheus.

gcloud

  1. Para los clústeres nuevos, Cloud Logging y Cloud Monitoring están habilitados de forma predeterminada. Para crear tu clúster, ejecuta el siguiente comando:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION
    

    Reemplaza lo siguiente:

    1. Como alternativa, puedes configurar qué registros se envían a Cloud Logging si pasas una lista de valores separados por comas a la marca --logging del comando create. Para no recopilar registros, pasa --logging=NONE. Para recopilar registros del sistema, el servidor de la API, el programador y el administrador de controladores, pasa --logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER. Para recopilar registros del sistema y de las cargas de trabajo, pasa --logging=SYSTEM,WORKLOAD. Por ejemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --logging=SYSTEM,WORKLOAD
      
    2. De manera similar, puedes configurar qué métricas se envían a Cloud Monitoring con una lista de valores separados por comas que puedes pasar a la marca --monitoring. Para no recopilar métricas, pasa --monitoring=NONE. Para recopilar métricas del sistema, pasa --monitoring=SYSTEM. Para recopilar todas las métricas, pasa --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA,CADVISOR,KUBELET. Por ejemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA,CADVISOR,KUBELET
      
    3. Por separado, puedes habilitar Google Cloud Managed Service para Prometheus mediante la marca --enable-managed-prometheus. Por ejemplo:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --enable-managed-prometheus
      

      La marca --enable-managed-prometheus habilita el colector administrado, que se debe configurar.

Terraform

  • A fin de configurar la recopilación de registros y métricas mediante Terraform, consulta los bloques logging_config y monitoring_config en el registro de Terraform para google_container_cluster. Para habilitar la recopilación de registros del servidor de la API, el programador y el administrador de controladores, se requiere la versión 4.44.0 o posterior del proveedor de Google Cloud de Terraform.

  • Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Configura la asistencia de Monitoring y Logging para un clúster existente

En la siguiente sección, se detalla cómo modificar la integración de Cloud Logging y Cloud Monitoring para un clúster de GKE existente.

Cambiar la asistencia de Monitoring y Logging y la versión de Kubernetes del clúster son acciones distintas. Si cambias la versión de Kubernetes del clúster, no se modifica la asistencia configurada de Monitoring y Logging.

¿Qué tipo de asistencia de Monitoring y Logging usa mi clúster?

Para ver la configuración de integración de Cloud Logging y Cloud Monitoring en tu clúster, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres de Kubernetes.

    Ir a clústeres de Kubernetes

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Kubernetes Engine.

  2. En el panel Detalles del clúster, consulta el estado de Cloud Logging, Cloud Monitoring y Google Cloud Managed Service para Prometheus.

Modifica tu clúster

Para cambiar la configuración de la integración de Cloud Logging o Cloud Monitoring en un clúster existente, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Clústeres de Kubernetes.

    Ir a clústeres de Kubernetes

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Kubernetes Engine.

  2. Haz clic en el nombre de tu clúster.

  3. Para modificar qué registros se envían a Cloud Logging, qué métricas se envían a Cloud Monitoring o si Google Cloud Managed Service para Prometheus está habilitado, haz clic en Editar junto a Cloud Logging, Cloud Monitoring o Google Cloud Managed Service para Prometheus.

  4. Haz clic en Guardar.

gcloud

En las siguientes instrucciones de gcloud, se trata la actualización de la asistencia de Monitoring y Logging del clúster mediante el comando gcloud container clusters update. Ten en cuenta que usas el comando update, no el comando upgrade.

  • Para configurar qué registros se envían a Cloud Logging, pasa una lista de valores separados por comas a la marca --logging del comando gcloud container clusters update. Consulta una lista completa de las fuentes de registros disponibles. Por ejemplo, para recopilar registros del sistema y de la carga de trabajo, pasa --logging=SYSTEM,WORKLOAD. Para recopilar solo los registros del sistema, pasa --logging=SYSTEM. O bien, para no recopilar registros, pasa --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Para configurar qué métricas se envían a Cloud Monitoring, pasa una lista de valores separados por comas a la marca --monitoring del comando gcloud container clusters update. Consulta una lista completa de fuentes de métricas disponibles. Por ejemplo, para recopilar métricas del sistema, pasa --monitoring=SYSTEM. O bien, para no recopilar métricas, pasa --monitoring=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --monitoring=NONE
    
  • Configura si Google Cloud Managed Service para Prometheus se habilita con las marcas --enable-managed-prometheus o --disable-managed-prometheus. Por ejemplo:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus
    

Terraform

  • A fin de configurar la recopilación de registros y métricas mediante Terraform, consulta los bloques logging_config y monitoring_config en el registro de Terraform para google_container_cluster. Para habilitar la recopilación de registros del servidor de la API, el programador y el administrador de controladores, se requiere la versión 4.44.0 o posterior del proveedor de Google Cloud de Terraform.

  • Para obtener información general sobre el uso de Google Cloud con Terraform, consulta Terraform con Google Cloud.

Parámetros de configuración obsoletos

Si ya usaste los parámetros de configuración anteriores a fin de configurar la asistencia de Logging y Monitoring para el clúster de GKE, esos parámetros estarán obsoletos. En la siguiente tabla, se muestran los parámetros de configuración equivalentes para reemplazar las marcas obsoletas.

Configuración anterior Argumentos create antiguos Argumentos update antiguos Argumentos create y update nuevos
Inhabilitado --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Solo supervisión del sistema (Logging inhabilitado) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Solo registro del sistema y cargas de trabajo (Monitoring inhabilitado) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Solo registro y supervisión del sistema (Beta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Registros y supervisión del sistema y la carga de trabajo --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

¿Qué sigue?

  • Obtén información sobre los costos asociados con Cloud Logging, Cloud Monitoring y Google Cloud Managed Service para Prometheus en la página Precios.