Si usas el agente de Logging heredado y tienes una configuración muy personalizada, te recomendamos que migres a Fluentd de código abierto. Puedes configurar Fluentd para conservar el comportamiento de tu entorno del agente de Logging sin interrumpir la recopilación de tus registros por parte de Cloud Logging. En este documento, se describe el proceso de migración.
Comparación de funciones
En la siguiente tabla, se proporciona una comparación de paridad de las funcionalidades clave entre el agente de Logging heredado y Fluentd upstream.
| Funciones | Agente de Logging heredado | Fluentd upstream |
|---|---|---|
| Ingesta de registros en Cloud Logging | Sí | Sí |
| Registros estándar del sistema (syslog) | Sí | Sí |
| Entrada de aplicación de terceros preconfigurada | Sí | Sí † |
| Manejo de registros estructurados (JSON) y no estructurados (texto) | Sí | Sí |
| Combinación de excepciones de varias líneas | Sí | Sí |
| Enriquecimiento de metadatos deGoogle Cloud | Sí | Sí |
| Enriquecimiento de metadatos de Kubernetes | Sí | Sí |
| IDs únicos de entrada de registro | Sí | Sí |
| Transformación de campos de registro | Sí | Sí |
| Asignación de gravedad | Sí | Sí |
| Autenticación (ADC y claves de cuenta de servicio) | Sí | Sí |
| Protocolos de transporte de REST y gRPC | Sí | Sí |
| Integración de la supervisión | Sí | Sí |
† Si bien el paquete de configuración google-fluentd-catch-all no se incluye en la instalación estándar de Fluentd y los complementos upstream, puedes mantener la funcionalidad de entrada preconfigurada siguiendo los pasos de migración que se detallan en esta guía.
Antes de comenzar
Antes de comenzar la migración, asegúrate de tener lo siguiente:
- Una instancia de VM compatible en un proyecto deGoogle Cloud .
- Credenciales en la instancia de VM que autorizan la comunicación con Cloud Logging Por lo general, las instancias de VM de Compute Engine tienen las credenciales correctas de manera predeterminada. Para comprobar si tienes las credenciales adecuadas, ejecuta los procedimientos que se indican en Autoriza al agente de Logging.
Migra a Fluentd
En esta sección, se describen los pasos para migrar a la versión upstream de Fluentd y mantener las funcionalidades clave que proporciona el agente de Logging heredado.
Para migrar tu configuración, completa los siguientes pasos:
- Apaga el agente de Logging heredado
- Instala una versión estable de fluentd-package
- Instalar Google Cloud complementos de la plataforma
- Migra los archivos de configuración de tus complementos de entrada
- Actualiza la configuración de syslog
- Actualiza tu archivo de configuración de Fluentd
- Valida que el agente de Fluentd se ejecute correctamente
- Desinstala el agente de Logging heredado
Apaga el agente de Logging heredado
Antes de instalar el agente de Fluentd upstream, debes detener el agente de Logging heredado para evitar conflictos. Para evitar perder registros pendientes durante la migración, asegúrate de vaciar todos los registros almacenados en búfer al apagar el sistema.
Para apagar correctamente el agente de Logging heredado, haz lo siguiente:
- Abre una conexión de terminal en tu instancia de VM con SSH o una herramienta similar y asegúrate de tener acceso de sudo.
Para vaciar los registros almacenados en búfer antes de apagar el agente de Logging heredado, habilita la opción
flush_at_shutdown:Actualiza el archivo
/etc/google-fluentd/google-fluentd.confpara establecer la marcaflush_at_shutdownentrue:# Configure the agent to flush all buffer chunks on shutdown <match **> @type google_cloud flush_at_shutdown true </match>Reinicia el agente para aplicar los cambios en la configuración:
sudo service google-fluentd restart
Detén el agente de Logging heredado:
sudo service google-fluentd stop
Instala una versión estable de fluentd-package
Instala una distribución estable de Fluentd (fluentd-package) en tus instancias de VM. Para obtener instrucciones, consulta la documentación de Fluentd sobre la instalación de fluent-package.
Instala complementos de la plataforma de Google Cloud
Para permitir que Fluentd interactúe con Cloud Logging y controle formatos de registro específicos, instala los siguientes complementos:
Si aún no lo hiciste, instala las herramientas de compilación para la compilación de extensiones:
DEBIAN o UBUNTU
Ejecuta el siguiente comando en Debian o Ubuntu:
sudo apt-get update sudo apt-get install -y build-essentialCentOS o RHEL
Ejecuta el siguiente comando en CentOS o RHEL:
sudo yum update sudo yum groupinstall -y "Development Tools"Instala el complemento
fluent-plugin-google-cloud:sudo fluent-gem install fluent-plugin-google-cloudInstala el complemento
fluent-plugin-detect-exceptions:sudo fluent-gem install fluent-plugin-detect-exceptionsOpcional: Si tu implementación heredada del agente de Logging recopila registros de aplicaciones que se ejecutan dentro de un clúster de Kubernetes, instala el complemento
fluent-plugin-kubernetes_metadata_filter:sudo fluent-gem install fluent-plugin-kubernetes_metadata_filterOpcional: Si tu agente de Logging heredado recopila y expone métricas en formato de Prometheus, instala las siguientes gemas:
sudo fluent-gem install prometheus-client -v 0.9.0 sudo fluent-gem install fluent-plugin-prometheus -v 1.4.0
Migra tus archivos de configuración de complementos de entrada
Para migrar tus archivos de configuración y posición existentes para la instalación de Fluentd, completa los siguientes pasos:
Crea directorios para los archivos de configuración y posición de Fluentd:
# Create the destination directory for Fluentd configuration files sudo mkdir -p /etc/fluent/config.d # Create the destination directory for position files sudo mkdir -p /var/lib/fluent/posCopia tus archivos de configuración
google-fluentden el directorio de configuración de Fluentd:sudo cp /etc/google-fluentd/config.d/* /etc/fluent/config.d/Copia todos los archivos de posición (
.pos) que usagoogle-fluentden el directorio de archivos de posición de Fluentd:sudo cp /var/lib/google-fluentd/pos/*.pos /var/lib/fluent/pos/Los archivos de posición se usan para hacer un seguimiento de las posiciones de lectura en los archivos de registro. Migrarlos permite que Fluentd comience en el mismo punto en el que se usaba google-fluentd.
Actualiza la ruta de acceso de
pos_fileen tus nuevos archivos de configuración de Fluentd para que apunten al nuevo directorio de archivos de posición:sudo sed -i 's#/var/lib/google-fluentd#/var/lib/fluent#g' /etc/fluent/config.d/*.confOtorga al usuario del servicio de Fluentd ,
_fluentd, acceso de lectura y escritura al directorio/var/lib/fluent/:sudo chown -R _fluentd:_fluentd /var/lib/fluent/Otorga al usuario
_fluentdacceso de lectura a los archivos de syslog:sudo usermod -a -G adm _fluentd
Actualiza la configuración de Syslog
El Fluentd upstream se ejecuta como el usuario sin privilegios, que no puede vincularse a puertos con privilegios numerados en menos de 1024. Si la configuración heredada del agente de Logging incluye la recopilación de syslog basada en la red con @type syslog en port 514, debes ajustar la configuración.
Para actualizar la configuración del puerto, haz lo siguiente:
Reemplaza todo el contenido del archivo
/etc/fluent/config.d/syslog_endpoint.confpor la siguiente configuración:sudo tee /etc/fluent/config.d/syslog_endpoint.conf > /dev/null <<EOF <source> @type syslog port 5140 <transport tcp> </transport> bind 127.0.0.1 tag syslog </source> EOFCrea o modifica el archivo
/etc/rsyslog.d/40-fluentd-forward.confpara reenviar mensajes de syslog al nuevo puerto de Fluentd:sudo tee /etc/rsyslog.d/40-fluentd-forward.conf > /dev/null <<EOF # Forward all syslog messages to Fluentd on localhost:5140 via TCP *.* @@127.0.0.1:5140 EOFReinicia el servicio de
rsyslogpara aplicar los cambios:sudo systemctl restart rsyslog.service
Actualiza el archivo de configuración principal de Fluentd
Para configurar el agente Fluentd upstream, replica tu configuración del archivo de configuración del agente, google-fluentd.conf, en el archivo de configuración principal de Fluentd, que se encuentra en /etc/fluent/fluentd.conf.
Para configurar el agente de Fluentd upstream, completa los siguientes pasos:
Copia todo el contenido del archivo
google-fluentd.confpara reemplazar el archivo de configuración predeterminado de Fluentd upstream:sudo cp /etc/google-fluentd/google-fluentd.conf /etc/fluent/fluentd.confActualiza
buffer_pathen tus archivos de configuración de Fluentd para que apunten al nuevo directorio de Fluentd:sudo sed -i 's#/var/log/google-fluentd#/var/log/fluent#g' /etc/fluent/fluentd.confInspecciona el archivo
fluentd.confpara confirmar que la configuración incluya lo siguiente:@include config.d/*.confestá presente para importar toda la configuración del complemento de entrada.- El bloque
<match **> @type google_cloudestá configurado para transmitir registros a Cloud Logging. - El
buffer_pathdentro del complemento de salida ahora apunta a/var/lib/fluent/. - Cualquier directiva
pos_filedentro de los complementos de entrada apunta a/var/lib/fluent/.
Ejecuta una ejecución de prueba para verificar tu configuración de Fluentd:
sudo fluentd -c /etc/fluent/fluentd.conf --dry-runVerifica si el resultado contiene alertas de
errorowarn. Debes resolver los problemas identificados antes de continuar. Para obtener detalles sobre los cambios en la sintaxis, consulta Compatibilidad de la configuración para Fluentd upstream.Reinicia el agente de Fluentd:
sudo service fluentd restart
Valida que el agente de Fluentd se esté ejecutando correctamente
Después de iniciar Fluentd, verifica que los registros se envíen correctamente a Cloud Logging:
Verifica que Fluentd se esté ejecutando sin errores:
$ sudo service fluentd statusEl estado del servicio debe estar activo (en ejecución).
Verifica los registros de Fluentd y asegúrate de que no haya errores ni advertencias:
sudo tail -n 100 /var/log/fluent/fluentd.log | grep -iE "error|warn|failed|exception" || trueNo deberían aparecer errores ni advertencias.
Revisa Cloud Logging para confirmar que se estén recibiendo registros de tu instancia de VM. Para obtener información sobre cómo ver tus registros, consulta Usa el Explorador de registros.
Desinstala el agente de Logging heredado
Solo después de validar que el nuevo Fluentd envía registros a Cloud Logging correctamente, quita el agente de Logging heredado y sus archivos de configuración:
DEBIAN o UBUNTU
sudo apt-get remove --purge google-fluentd
CentOS o RHEL
sudo yum remove google-fluentd