Registros y supervisión

GKE On-Prem incluye varias opciones de registro y supervisión de clústeres, incluidos los servicios administrados basados en la nube, herramientas de código abierto y compatibilidad validada con soluciones comerciales de terceros. En esta página, se explican estas opciones y se proporciona una orientación básica sobre cómo seleccionar la solución adecuada para tu entorno.

Opciones para GKE On-Prem

Tienes varias opciones de registro y supervisión para los clústeres de GKE On-Prem:

  • Cloud Logging y Cloud Monitoring, implementados mediante GKE On-Prem y habilitados por agentes internos del clúster
  • Prometheus y Grafana, que están inhabilitados de forma predeterminada
  • Opciones de configuración validadas con soluciones de terceros

Cloud Logging y Cloud Monitoring

Google Cloud's operations suite es la solución de observabilidad integrada para Google Cloud. Ofrece una solución de registro completamente administrada, recopilación de métricas, supervisión, paneles y alertas. Cloud Monitoring supervisa los clústeres de GKE On-Prem de manera similar a como supervisa los clústeres de GKE basados en la nube.

Los agentes se pueden configurar con dos niveles de registro y supervisión diferentes:

  • Solo componentes del sistema (configuración predeterminada)
  • Logging y Monitoring inhabilitados (antes de inhabilitarlos, consulta la página de asistencia para conocer cómo se usan con fines de asistencia)

Logging y Monitoring proporcionan una solución ideal para los clientes que buscan una única solución de observabilidad basada en la nube que sea potente y fácil de configurar. Recomendamos usar Logging y Monitoring cuando se ejecutan cargas de trabajo solo en GKE On-Prem, o en GKE y GKE On-Prem. En el caso de las aplicaciones con componentes en ejecución en GKE On-Prem y en la infraestructura local tradicional, puedes considerar otras soluciones para obtener una vista de extremo a extremo de estas aplicaciones.

  • Para obtener detalles sobre la arquitectura, la configuración y los datos que se replican en el proyecto de Google Cloud de forma predeterminada en GKE On-Prem, consulta la sección Cómo funcionan Logging y Monitoring en GKE On-Prem.

  • Para obtener más información sobre Logging, consulta la documentación de Cloud Logging.

  • Para obtener más información sobre Monitoring, consulta la documentación de Cloud Monitoring.

Prometheus y Grafana

Prometheus y Grafana son dos productos populares de supervisión de código abierto:

  • Prometheus recopila métricas de aplicaciones y sistemas.

  • Alertmanager maneja el envío de alertas con varios mecanismos de alerta diferentes.

  • Grafana es una herramienta de paneles.

Prometheus y Grafana se pueden habilitar en cada clúster de administrador y de usuario. Prometheus y Grafana se recomiendan para equipos de aplicaciones con experiencia previa en esos productos o equipos operativos que prefieren conservar las métricas de la aplicación dentro del clúster y, también, a fin de solucionar los problemas cuando se pierde la conectividad de red.

Soluciones de terceros

Google trabajó con varios proveedores de soluciones de registro y supervisión de terceros para ayudar a que sus productos funcionen bien con GKE On-Prem. Entre estos, se incluyen Datadog, Elastic y Splunk. En el futuro, se agregarán más proveedores validados.

Las siguientes guías de soluciones están disponibles para usar soluciones de terceros con GKE On-Prem:

Cómo funcionan Logging y Monitoring en GKE On-Prem

Cloud Logging y Cloud Monitoring se instalan y se activan en cada clúster cuando creas un nuevo clúster de administrador o de usuario.

Los agentes de Stackdriver incluyen varios componentes en cada clúster:

  • Operador de Stackdriver (stackdriver-operator-*): Administra el ciclo de vida de todos los demás agentes de Stackdriver implementados en el clúster.

  • Recurso personalizado de Stackdriver: Es un recurso que se crea de forma automática como parte del proceso de instalación de GKE On-Prem. Los usuarios pueden cambiar el recurso personalizado para actualizar valores como el nombre y la ubicación del clúster y el ID del proyecto en cualquier momento.

  • Agregador de registros de Stackdriver (stackdriver-log-aggregator-*): Es un StatefulSet de Fluentd que envía registros a la API de Cloud Logging. Si no se pueden enviar los registros, el agregador de registros almacena en búfer hasta 200 GB de entradas de registro e intenta reenviarlas por hasta 24 horas. Si el búfer se llena o si el agregador de registros no puede acceder a la API de Logging dentro de las 24 horas, los registros se descartarán.

  • Servidor de reenvío de registros de Stackdriver (stackdriver-log-forwarder-*): Es un daemonset de Fluentbit que reenvía los registros de cada máquina al agregador de registros de Stackdriver.

  • Recopilador de métricas de Stackdriver (stackdriver-prometheus-k8s-): Es un StatefulSet de sidecar de Prometheus y Stackdriver para Prometheus que envía métricas de Prometheus a la API de Cloud Logging.

  • Recopilador de metadatos de Stackdriver (stackdriver-metadata-agent-): Es una implementación que envía metadatos de recursos de Kubernetes, como pods, implementaciones o nodos, a la API de metadatos de recursos de Stackdriver. Estos datos se usan para enriquecer las consultas de métricas, ya que te permite realizar consultas por nombre de implementación, de nodo o incluso de servicio de Kubernetes.

Puedes ver todos los agentes que instaló Stackdriver mediante la ejecución del siguiente comando:

  kubectl -n kube-system get pods | grep stackdriver

El resultado de este comando es similar al siguiente:

stackdriver-log-aggregator-0                  1/1     Running   0   4h31m
stackdriver-log-aggregator-1                  1/1     Running   0   4h28m
stackdriver-log-forwarder-bpf8g               1/1     Running   0   4h31m
stackdriver-log-forwarder-cht4m               1/1     Running   0   4h31m
stackdriver-log-forwarder-fth5s               1/1     Running   0   4h31m
stackdriver-log-forwarder-kw4j2               1/1     Running   0   4h29m
stackdriver-metadata-agent-cluster-level...   1/1     Running   0   4h31m
stackdriver-operator-76ddb64d57-4tcj9         1/1     Running   0   4h37m
stackdriver-prometheus-k8s-0                  2/2     Running   0   4h31m

Configura agentes de Stackdriver para GKE On-Prem

Los agentes de Stackdriver instalados mediante GKE On-Prem recopilan datos sobre los componentes del sistema, que están sujetos a la configuración, a fin de realizar el mantenimiento y solucionar problemas con los clústeres de GKE On-Prem. Para ello, usan uno de los siguientes modos.

Solo componentes del sistema (modo predeterminado)

Luego de la instalación, los agentes de Stackdriver se configuran de forma predeterminada para recopilar registros y métricas, incluidos los detalles de rendimiento (por ejemplo, el uso de CPU y memoria) y metadatos similares, que corresponden a componentes del sistema que proporciona Google. Entre estos, se incluyen todas las cargas de trabajo del clúster de administrador y, en el caso de los clústeres de usuario, las cargas de trabajo de los espacios de nombres de kube-system, gke-system, gke-connect, istio-system y config-management-system.

Stackdriver inhabilitado

Los agentes de Stackdriver se pueden inhabilitar por completo mediante la eliminación del recurso personalizado de Stackdriver. Antes de inhabilitar Stackdriver, consulta la página de asistencia para obtener detalles sobre cómo esto afecta a los ANS de Google Cloud Support.

Para inhabilitar Stackdriver en GKE On-Prem, haz lo siguiente:

kubectl -n kube-system delete stackdrivers stackdriver

Los agentes de Stackdriver capturan datos almacenados de forma local, que están sujetos a la configuración de almacenamiento y retención. Los datos se replican en el proyecto de Google Cloud especificado en la instalación mediante una cuenta de servicio autorizada para escribir datos en ese proyecto. Los agentes de Stackdriver se pueden inhabilitar en cualquier momento, como se describió antes. Los datos que recopilan los agentes de Stackdriver se pueden administrar y borrar como cualquier métrica o dato de registro, como se describe en la Documentación de Cloud Monitoring.

Requisitos de configuración para Logging y Monitoring

Hay varios requisitos de configuración para habilitar Cloud Logging y Cloud Monitoring mediante GKE On-Prem. Estos pasos se incluyen en la Descripción general de la instalación de GKE On-Prem y en la siguiente lista:

  1. Se debe crear un lugar de trabajo de Cloud Monitoring dentro del proyecto de Cloud. Para ello, haz clic en Monitoring en Cloud Console y sigue el flujo de trabajo.
  2. Debes habilitar las siguientes API de Stackdriver:

  3. Debes asignar las siguientes funciones de IAM a la cuenta de servicio que usan los agentes de Stackdriver:

    • logging.logWriter
    • monitoring.metricWriter
    • stackdriver.resourceMetadata.writer

Precios

En Anthos, se incluye una asignación gratuita adicional de Cloud Logging que es superior a la asignación gratuita estándar de Cloud Logging.

Si deseas obtener más información sobre el crédito en las métricas de Cloud Logging, comunícate con Ventas para conocer los precios.

Cómo funcionan Prometheus y Grafana en GKE On-Prem

Cada clúster de GKE On-Prem se crea con Prometheus y Grafana inhabilitados de forma predeterminada. Puedes seguir la guía de instalación para habilitarlos.

El servidor de Prometheus se establece en una configuración de alta disponibilidad con dos réplicas en ejecución en dos nodos separados. Los requisitos de los recursos se ajustan para admitir clústeres que ejecuten hasta cinco nodos, cada uno de los cuales maneja hasta 30 pods que entregan métricas personalizadas. Prometheus tiene un PersistentVolume dedicado con espacio en disco asignado de forma previa para almacenar datos durante un período de retención de cuatro días, además de un búfer de seguridad adicional.

El plano de control del administrador y cada clúster de usuario tienen una pila de supervisión dedicada que puedes configurar de forma independiente. En cada clúster de administrador y de usuario, se incluye una pila de supervisión que ofrece un conjunto completo de funciones: el servidor de Prometheus para la supervisión, Grafana para la observabilidad y Alertmanager de Prometheus para las alertas.

Todos los extremos de supervisión, los datos de métricas transferidos y las API de supervisión están protegidos con componentes de Istio mediante reglas de mTLS y RBAC. El acceso a los datos de supervisión está restringido solo a los administradores del clúster.

Métricas recopiladas mediante Prometheus

Prometheus recopila los siguientes metadatos y métricas del plano de control de administrador y los clústeres de usuario:

  • El uso de los recursos, como el uso de CPU en los pods y los nodos
  • Las métricas del plano de control de Kubernetes
  • Las métricas de los complementos y los componentes del sistema de Kubernetes que se ejecutan en nodos, como kubelet
  • El estado del clúster, como el estado de los pods en un objeto Deployment
  • Métricas de la aplicación
  • Las métricas de la máquina, como la red, entropía y los inodos

Supervisión de varios clústeres

La instancia de Prometheus y Grafana instalada en el clúster de administrador se configura de forma especial para proporcionar estadísticas de toda la instancia de GKE On-Prem, lo que incluye el clúster de administrador y cada clúster de usuario. Esto te permite hacer lo siguiente:

  • Usar un panel de Grafana para acceder a las métricas de todos los clústeres de usuario y de administrador
  • Ver las métricas de clústeres de usuarios individuales en los paneles de Grafana, las cuales están disponibles para realizar consultas directas con resolución completa
  • Acceder a las métricas de nivel de nodo y de carga de trabajo de los clústeres de usuario para obtener consultas agregadas, paneles y alertas (las métricas de cargas de trabajo se limitan a las cargas de trabajo que se ejecutan en el espacio de nombres de kube-system)
  • Configurar alertas para clústeres específicos

Próximos pasos