Container-Optimized OS incluye un agente de Logging que exporta algunos registros del sistema y del contenedor a Cloud Logging. Para las imágenes de Container-Optimized OS basadas en x86, el agente es un agente de registro heredado en contenedores de Google Cloud's operations suite. A partir de Container-Optimized OS 105, también tienes la opción de activar o desactivar el agente de registro de bits de fluidez para imágenes x86. Te recomendamos que migres al nuevo agente de bits fluidos, ya que el agente de registros heredado quedará obsoleto en las versiones posteriores, pero sin incluir, 105.
Para las imágenes de Container-Optimized OS basadas en ARM, el agente es un paquete nativo del SO llamado fluent-bit. Este documento se centra en cómo usar el agente de Logging en Container-Optimized OS y cómo acceder a los registros.
Habilita el agente de Logging
El agente de Logging está inhabilitado de forma predeterminada. Puedes habilitar esta función cuando creas una instancia nueva o actualizas una instancia existente.
Requisitos de acceso
Cloud Logging proporciona funciones de IAM que puedes usar para otorgar el acceso adecuado. A fin de ver los registros en un proyecto, debes tener la función roles/logging.viewer
y las aplicaciones deben tener permiso para escribir registros. Puedes otorgar este permiso mediante la asignación de la función de IAM roles/logging.logWriter
a la cuenta de servicio para una aplicación.
Para obtener más información sobre permisos y funciones, consulta Funciones predefinidas.
Crea una instancia con el agente de registro de fluent-bit habilitado en x86
Consola
Para ejecutar una instancia de Compute Engine en Container-Optimized OS con el agente de registro de fluent-bit habilitado, realiza lo siguiente:
Abre la página de creación de instancias de Compute Engine en la consola de Google Cloud.
Especifica un nombre para tu instancia.
En la sección Disco de arranque, selecciona una imagen de Container-Optimized OS
Haz clic en Administración, seguridad, discos, redes, usuario único para expandir las opciones adicionales.
En la pestaña Administración, desplázate hasta la sección Metadatos. Agrega una entrada de metadatos nueva, con Key como
google-logging-enabled
y Value comotrue
.Agrega una segunda entrada de metadatos, con Key como
google-logging-use-fluentbit
y Value comotrue
.De manera opcional, especifica otras opciones para tu caso de uso. Consulta Cómo crear y configurar instancias para obtener más detalles.
Haz clic en Crear para crear y, además, iniciar la instancia.
gcloud
Para ejecutar una instancia de Compute Engine en Container-Optimized OS con el agente de Logging habilitado, usa el comando gcloud compute instances create
e incluye google-logging-enabled=true
en los metadatos. Por ejemplo:
gcloud compute instances create instance-name \ --image-family cos-stable \ --image-project cos-cloud \ --zone compute-zone \ --metadata google-logging-enabled=true,google-logging-use-fluentbit=true
Reemplaza lo siguiente:
- instance-name por el nombre de tu instancia de VM.
- compute-zone por la zona de procesamiento de tu instancia.
Para obtener más información sobre el comando gcloud
, consulta la documentación de referencia gcloud compute instances create.
Para obtener más información sobre cómo crear instancias de Container-Optimized OS, consulta Crea y configura instancias.
Crea una instancia con el agente de Logging heredado habilitado
Consola
Para ejecutar una instancia de Compute Engine en Container-Optimized OS con el agente de Logging habilitado, sigue estos pasos:
Abre la página de creación de instancias de Compute Engine en la consola de Google Cloud.
Especifica un nombre para tu instancia.
En la sección Disco de arranque, selecciona una imagen de Container-Optimized OS
Haz clic en Administración, seguridad, discos, redes, usuario único para expandir las opciones adicionales.
En la pestaña Administración, desplázate hasta la sección Metadatos. Agrega una entrada de metadatos nueva, con Key como
google-logging-enabled
y Value comotrue
.De manera opcional, especifica otras opciones para tu caso de uso. Consulta Cómo crear y configurar instancias para obtener más detalles.
Haz clic en Crear para crear y, además, iniciar la instancia.
gcloud
Para ejecutar una instancia de Compute Engine en Container-Optimized OS con el agente de registro habilitado, usa el comando gcloud compute instances create
y, además, incluye google-logging-enabled=true
en los metadatos. Por ejemplo:
gcloud compute instances create instance-name \ --image-family cos-stable \ --image-project cos-cloud \ --zone compute-zone \ --metadata google-logging-enabled=true
Reemplaza lo siguiente:
- instance-name por el nombre de tu instancia de VM.
- compute-zone por la zona de procesamiento de tu instancia.
Para obtener más información sobre el comando gcloud
, consulta la documentación de referencia gcloud compute instances create.
Para obtener más información sobre cómo crear instancias de Container-Optimized OS, consulta Crea y configura instancias.
Actualiza una instancia existente para habilitar o inhabilitar el agente fluído de forma fluida
Consola
Ve a la página Instancias de VM
Haz clic en el nombre de la instancia de Container-Optimized OS que deseas actualizar.
Haga clic en Editar en la barra superior de Detalles de instancia de VM.
En la sección Metadatos personalizados agrega una entrada de metadatos nueva, con Clave como
google-logging-enabled
y Valor comotrue
para habilitar ofalse
para inhabilitarlo.Agrega la segunda entrada de metadatos, con Key como
google-logging-use-fluentbit
y Value como el mismo valor que usaste paragoogle-logging-enabled
.Haz clic en Guardar.
gcloud
Para habilitar o inhabilitar el agente de Logging en una instancia existente, usa el comando gcloud
compute instances add-metadata
:
gcloud compute instances add-metadata instance-name \ --zone compute-zone \ --metadata google-logging-enabled=enabled-value,google-logging-use-fluentbit=enabled-value
Reemplaza lo siguiente:
- enabled-value:
true
para habilitar,false
para inhabilitar. - instance-name por el nombre de tu instancia de VM.
- compute-zone por la zona de procesamiento de tu instancia.
Actualizar una instancia existente para habilitar o inhabilitar el agente de Logging heredado
Consola
Ve a la página Instancias de VM
Haz clic en el nombre de la instancia de Container-Optimized OS que deseas actualizar.
Haga clic en Editar en la barra superior de Detalles de instancia de VM.
En la sección Metadatos personalizados agrega una entrada de metadatos nueva, con Clave como
google-logging-enabled
y Valor comotrue
para habilitar ofalse
para inhabilitarlo.Haz clic en Guardar.
gcloud
Para habilitar o inhabilitar el agente de Logging en una instancia existente, usa el comando gcloud
compute instances add-metadata
:
gcloud compute instances add-metadata instance-name \ --zone compute-zone \ --metadata google-logging-enabled=enabled-value
Reemplaza lo siguiente:
- enabled-value:
true
para habilitar,false
para inhabilitar. - instance-name por el nombre de tu instancia de VM.
- compute-zone por la zona de procesamiento de tu instancia.
Habilita el agente de Logging en los metadatos del proyecto
A partir del evento importante 97, se pueden habilitar los registros en los metadatos del proyecto:
gcloud compute project-info add-metadata \
--metadata google-logging-enabled=true
Registros de acceso
Consola
Ve a la página Instancias de VM
Haz clic en el nombre de la instancia de Container-Optimized OS desde la que quieres acceder a los registros.
En la sección Registros, haz clic en Cloud Logging.
Se abrirá el Explorador de registros de la instancia determinada. Para obtener más información, consulta Usa el Explorador de registros.
gcloud
Para acceder a los registros, usa el comando gcloud logging read
. Por ejemplo:
gcloud logging read \ "resource.type=gce_instance AND resource.labels.instance_id=instance-id" \ --limit 10 \ --format json \ --freshness 30d
Reemplaza lo siguiente:
- instance-id: Es el ID de tu instancia de VM.
Este comando intenta leer los registros de la instancia de VM con instance-id, con un límite de 10 registros, en formato JSON, de los últimos 30 días.
Para obtener más información sobre el comando gcloud
, consulta la documentación de referencia de gcloud logging read.
¿Cómo funciona?
El agente de Logging se configura de forma predeterminada para enviar registros de ciertos servicios críticos del sistema y contenedores de aplicaciones de usuario al backend de Cloud Logging. Por ejemplo, los registros de contenedores de Docker, los servicios systemd seleccionados, los registros de auditoría, los errores de registro de diario, etcétera. Consulta la fuente de configuración específica de Container-Optimized OS (imágenes x86 e imágenes de ARM) para obtener una configuración de registro predeterminada completa.
Para las imágenes x86, el agente de Logging es un agente de Logging heredado en contenedores de Google Cloud's operations suite. El comando de Docker que inicia el agente de Logging se define en la fuente para el servicio stackdriver-logging systemd de Container-Optimized OS. La versión del agente en contenedores que se ejecuta se define en el directorio app-admin/stackdriver de Container-Optimized OS.
Para las imágenes de ARM, el agente de Logging es un paquete de SO nativo llamado fluent-bit. El agente está integrado en el SO y se actualiza junto con las imágenes de SO.
Limitaciones conocidas
Compatibilidad con el controlador gcplogs
A partir del evento importante 89, si el agente de Logging incluido con Container-Optimized OS está habilitado y el controlador de registro gcplogs
de Docker está habilitado para uno o más contenedores, es posible que el agente de Logging incluido genere resultados de advertencia excesivos. Esto puede generar ruido en el registro o aumentar los cargos relacionados con Cloud Logging.
Una solución alternativa es no usar gcplogs
como controlador de registro de Docker y, en su lugar, usar el controlador predeterminado según la configuración de Container-Optimized OS. Ten en cuenta que el agente de Logging incluido con Container-Optimized OS exportará los registros de contenedores a Cloud Logging, por lo que no es necesario usar ambas soluciones de forma simultánea.
Compatibilidad con la configuración del agente de Logging
El agente de Logging es un contenedor basado en fluentd en imágenes de Container-Optimized OS basadas en x86 y un objeto binario de fluent-bit en imágenes de Container-Optimized OS basadas en Arm. La configuración de los dos agentes no es compatible. Esto no es un problema si solo dependes de la configuración de registro predeterminada integrada en las imágenes de SO. Sin embargo, si tienes una configuración de registro personalizada, puedes experimentar fallas cuando migres cargas de trabajo a las imágenes que se basan en una arquitectura diferente.
Referencias
- La documentación heredada del agente de Logging heredado de Google Cloud's operations suite. El agente de Logging alojado en un contenedor con Container-Optimized OS es un subconjunto del agente de Logging heredado, por lo que esta documentación puede proporcionar contexto sobre el agente de manera más general, fuera del alcance de Container-Optimized OS.
- Documentación de Google Cloud's operations suite Página principal de la documentación de Google Cloud's operations suite; puede ser útil para el contexto.