Administra registros de GKE

En esta página, se proporciona una descripción general de las opciones de registro disponibles en Google Kubernetes Engine (GKE).

Resumen

Cuando habilitas la integración de operaciones de Kubernetes Engine con Cloud Logging y Cloud Monitoring para tu clúster, tus registros se almacenan en un almacén de datos dedicado y persistente. 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 del contenedor y del sistema, GKE implementa, de forma predeterminada, un agente de registro por nodo que lee los registros del contenedor, agrega metadatos útiles y luego los almacena. El agente de registros busca registros de contenedores 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 usa una implementación en el espacio de nombres de kube-system que recopila eventos automáticamente y los envía a Logging.

Qué registros se recopilan

De forma predeterminada, GKE recopila registros de las cargas de trabajo del sistema y de la aplicación implementadas en el clúster.

  • Registros del sistema: estos registros incluyen los registros de auditoría del clúster, incluidos el registro de actividad de administrador, el registro de acceso a los datos y el registro de eventos. Para obtener información detallada sobre los registros de auditoría de GKE, consulta la documentación de Registros de auditoría de GKE. Algunos registros del sistema se ejecutan como contenedores, como los de el kube-system, y se describen en Control de la colección de registros de tu aplicación.

  • Registros de aplicación: los contenedores de Kubernetes recopilan registros para tus cargas de trabajo, escritas en STDOUT y STDERR.

Recopila tus registros

Cuando creas un clúster de GKE nuevo, la integración de operaciones de Kubernetes Engine con Cloud Logging y Cloud Monitoring está habilitada de forma predeterminada.

Para Cloud Logging heredado, puedes seguir la documentación sobre cómo habilitar o inhabilitar la integración de Logging.

Valores predeterminados de registro

Cuando se habilita, un agente dedicado se implementa y administra automáticamente. Se ejecuta en el nodo de GKE para recopilar registros, agrega metadatos útiles sobre el contenedor, el pod y el clúster y, luego, envía los registros a Cloud Logging. Luego, los registros del sistema y los registros de tu carga de trabajo se entregan al router de registros en Cloud Logging.

Desde allí, los registros se transfieren a Cloud Logging o se excluyen. El Router de registros también proporciona un paso opcional para exportar tus registros a BigQuery, Pub/Sub o Cloud Storage.

Personaliza la recopilación de registros solo para los registros del sistema

A partir de la versión 1.15.7 de GKE, puedes configurar las operaciones de Kubernetes Engine para capturar solo los registros del sistema y no recopilar los registros de la aplicación.

Recopila registros con fluentd personalizado

El agente de registro predeterminado de GKE proporciona una solución administrada para implementar y administrar los agentes que envían los registros de tus clústeres a Cloud Logging. Si deseas alterar el comportamiento predeterminado de los agentes fluentd, puedes ejecutar un agente fluentd personalizado.

Los casos prácticos comunes incluyen los siguientes:

  • Quita datos sensibles de tus registros

  • Recopila registros adicionales que no se escriben en STDOUT o STDER

Recopila registros auditd de Linux para nodos de GKE

Puedes habilitar los registros de auditoría del sistema operativo detallados en los nodos de Google Kubernetes Engine que ejecutan Container-Optimized OS. Los registros del sistema operativo en tus nodos proporcionan información valiosa sobre el estado del clúster y las cargas de trabajo, como los mensajes de error, los intentos de acceso y las ejecuciones binarias. Puedes usar esta información para depurar problemas o investigar los incidentes de seguridad.

Para obtener más información, ve a la sección sobre cómo habilitar registros de auditoría de Linux en nodos de GKE.

Registros de auditoría de GKE

Para obtener información detallada sobre las entradas de registro que se aplican a los tipos de recursos de operaciones de clúster de Kubernetes y GKE, ve a Registro de auditoría.

Control de acceso de Logging

Existen dos aspectos del control de acceso de registro: acceso a la aplicación y acceso del usuario. Cloud Logging proporciona funciones de IAM que puedes usar para otorgar el acceso adecuado.

Acceso a las aplicaciones

Las aplicaciones necesitan permiso para escribir registros que se otorgan mediante la asignación de la función de IAM roles/logging.logWriter a la cuenta de servicio para una aplicación. Cuando creas un clúster de GKE, la función roles/logging.logWriter está habilitada de forma predeterminada.

Acceso de vista de usuario

Debes tener la función roles/logging.viewer para ver tus registros en tu proyecto. Si necesitas tener acceso a los registros de acceso a los datos, debes tener el permiso de IAM logging.privateLogViewer.

Para obtener más información sobre los permisos y las funciones, consulta la guía Control de acceso. También puedes revisar el documento Recomendaciones para registros de auditoría de Cloud, que también se aplica a Cloud Logging en general.

Acceso de administrador del usuario

Las funciones de IAM roles/logging.configWriter y roles/logging.admin proporcionan las capacidades administrativas. La función de IAM roles/logging.configWriter es necesaria para crear un receptor de registros que se usa comúnmente para dirigir tus registros a un proyecto específico o centralizado. Por ejemplo, es posible que quieras usar un receptor de registros junto con un filtro de registro para dirigir todos tus registros de un espacio de nombres a un depósito de registro centralizado.

Si deseas obtener más información, ve a la guía Control de acceso para Cloud Logging.

Recomendaciones

  • Registro estructurado: las strings JSON de una sola línea escritas en un resultado estándar o error estándar se leerán en Google Cloud's operations suite como entradas de registro estructuradas. Consulta Registro estructurado para obtener más detalles. Puedes usar los Filtros avanzados de registros 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.
  • Exporta 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. Consulta Descripción general de las exportaciones de registros para obtener más información.
  • Alertas: puedes usar métricas basadas en registros para configurar políticas de alertas cuando Logging registra un comportamiento inesperado. Para ver un ejemplo, consulta Crea una política de alertas simple en una métrica de contador. Para obtener información detallada sobre las métricas basadas en registros, consulta Descripción general de las métricas basadas en registros.
  • Error Reporting: puedes usar Error Reporting para recopilar los errores que se produjeron en tus clústeres.