Usar la rotación de registros para los registros automáticos del agente de operaciones

El agente de operaciones escribe en un archivo de registro llamado logging-module.log. Cuando el agente se ejecuta sin supervisión durante largos periodos o cuando se produce un problema, este archivo de registro automático puede consumir todo el espacio de disco disponible. En este documento se describe cómo usar la rotación de registros para evitar este problema.

La versión 2.31.0 del agente de operaciones incluye una función de rotación de registros configurable integrada en el agente. Si usas la versión 2.31.0 del agente de Ops o una posterior, puedes usar la función de rotación de registros integrada. Consulta Configurar la rotación de registros en el agente de Ops.

También puedes gestionar la rotación de registros manualmente. Es posible que necesites un proceso manual si usas una versión del agente de Ops sin rotación de registros integrada o si prefieres rotar los registros manualmente. Consulta Configurar la rotación automática de archivos de registro en máquinas virtuales Linux para ver una de las posibles opciones.

Configurar la rotación de registros en el agente de operaciones

En esta sección se describe cómo modificar la configuración predeterminada de rotación de registros que usa el agente de Ops para rotar sus registros automáticamente. Para usar esta función, se necesita la versión 2.31.0 o una posterior del agente de operaciones.

Configuración predeterminada

El agente de Ops usa la entrada default_self_log_file_rotation para configurar la rotación de registros. Esta entrada de configuración tiene tres opciones. El siguiente fragmento muestra las opciones y sus valores predeterminados:

  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

La configuración de default_self_log_file_rotation tiene tres opciones:

  • enabled: indica si la rotación de registros está habilitada. El valor predeterminado es true.
  • max_file_size_megabytes: tamaño máximo que puede alcanzar el archivo de registro antes de que se cree una copia de seguridad mediante la rotación de registros. Se mide en megabytes (10242 bytes). El valor predeterminado es 400 y el valor mínimo válido es 1.
  • backup_count: número de archivos de registro antiguos que se conservarán. El valor predeterminado es 1 y el valor mínimo válido es 1.

Configuración de usuario de la rotación de registros

Para modificar la configuración predeterminada de rotación de registros, debes anularla redefiniendo la configuración en el archivo de configuración de usuario del agente de operaciones:

  • En Linux: /etc/google-cloud-ops-agent/config.yaml
  • En Windows: C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

Para configurar la rotación de registros en el agente de Ops, añade una sección global al archivo de configuración del usuario e incluye el elemento de configuración default_self_log_file_rotation en la sección global. Es posible que ya tengas canalizaciones de registro o de métricas en este archivo de configuración. Añade la sección global después de tus canalizaciones. El resultado, con todas las opciones y los valores predeterminados, es el siguiente:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

Configuraciones de ejemplo

Para inhabilitar la rotación de registros mediante el agente de operaciones, especifica la opción enabled con el valor false:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    enabled: false

Para rotar el registro cuando el archivo de registro alcance los 20 MB y conservar 5 copias de seguridad (6 archivos en total), haz lo siguiente:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    max_file_size_megabytes: 20
    backup_count: 5

Para rotar el registro cuando el archivo de registro alcance los 2000 MB (2 GB) y conservar una copia de seguridad (2 archivos en total), haz lo siguiente:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    max_file_size_megabytes: 2000

Para rotar el registro cuando el archivo de registro alcance los 400 MB y conservar 2 copias de seguridad (3 archivos en total), haz lo siguiente:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    backup_count: 2

Si haces cambios con frecuencia a medida que perfeccionas la configuración de la rotación de registros, recuerda reiniciar el agente para aplicar los cambios.

Configurar la rotación de archivos de registro automático en máquinas virtuales Linux

Para limitar el tamaño del registro del subagente de registro en /var/log/google-cloud-ops-agent/subagents/logging-module.log, instala y configura la utilidad logrotate.

  1. Instala la utilidad logrotate ejecutando el siguiente comando:

    En Debian y Ubuntu

    sudo apt install logrotate
    

    En CentOS, RHEL y Fedora

    sudo yum install logrotate
    
  2. Crea un archivo de configuración logrotate en /etc/logrotate.d/google-cloud-ops-agent.conf.

    sudo tee /etc/logrotate.d/google-cloud-ops-agent.conf > /dev/null << EOF
    # logrotate config to rotate Google Cloud Ops Agent self log file.
    # See https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html for
    # the full options.
    /var/log/google-cloud-ops-agent/subagents/logging-module.log
    {
        # Log files are rotated every day.
        daily
        # Log files are rotated this many times before being removed. This
        # effectively limits the disk space used by the Ops Agent self log files.
        rotate 30
        # Log files are rotated when they grow bigger than maxsize even before the
        # additionally specified time interval
        maxsize 256M
        # Skip rotation if the log file is missing.
        missingok
        # Do not rotate the log if it is empty.
        notifempty
        # Old versions of log files are compressed with gzip by default.
        compress
        # Postpone compression of the previous log file to the next rotation
        # cycle.
        delaycompress
    }
    EOF
    
  3. Configura crontab o systemd timer para activar la utilidad logrotate periódicamente.

Una vez que la rotación de registros surta efecto, verás los archivos rotados en el directorio /var/log/google-cloud-ops-agent/subagents/. Los resultados deberían ser similares a los siguientes:

/var/log/google-cloud-ops-agent/subagents$ ls -lh
total 24K
-rw-r--r-- 1 root root  717 Sep  3 19:54 logging-module.log
-rw-r--r-- 1 root root 6.8K Sep  3 19:51 logging-module.log.1
-rw-r--r-- 1 root root  874 Sep  3 19:50 logging-module.log.2.gz
-rw-r--r-- 1 root root  873 Sep  3 19:50 logging-module.log.3.gz
-rw-r--r-- 1 root root 3.2K Sep  3 19:34 logging-module.log.4.gz

Para probar la rotación de registros, haz lo siguiente:

  1. Reduce temporalmente el tamaño del archivo con el que se activa la rotación. Para ello, asigna el valor 1k a maxsize en el archivo /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. Reinicia el agente varias veces para que el archivo de registro automático del agente sea superior a 1 K:

    sudo service google-cloud-ops-agent restart
    
  3. Espera a que crontab o systemd timer surtan efecto para activar la utilidad logrotate o activa la utilidad logrotate manualmente ejecutando este comando:

    sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
    
  4. Comprueba que los archivos de registro rotados se encuentran en el directorio /var/log/google-cloud-ops-agent/subagents/.

  5. Restablece la configuración de rotación de registros restaurando el valor original de maxsize.