Usar la rotación de registro para los registros propios 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 por períodos prolongados o cuando ocurre un problema, este archivo de “registro automático” puede consumir todo el espacio disponible en disco. En este documento, se describe cómo usar la rotación del registro para evitar este problema.

La versión 2.31.0 del Agente de operaciones presenta una característica de rotación del registro configurable integrada en el agente. Si ejecutas la versión 2.31.0 o posterior del Agente de operaciones, puedes usar la función de rotación del registro integrada. Consulta Configura la rotación de registros en el Agente de operaciones.

También puedes administrar la rotación del registro de forma manual. Es posible que necesites un proceso manual si usas una versión del Agente de operaciones sin rotación del registro integrada o si prefieres rotar tus registros de forma manual. Consulta Configura la rotación de archivos de registro automático en las VMs de Linux para obtener un enfoque posible.

Configura la rotación del registro en el Agente de operaciones

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

Configuración predeterminada

El Agente de operaciones usa la entrada default_self_log_file_rotation para configurar la rotación del registro. Esta entrada de configuración toma tres opciones. En el siguiente fragmento, se muestran 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: Si la rotación del registro está habilitada. El valor predeterminado es true.
  • max_file_size_megabytes: El tamaño máximo que puede alcanzar el archivo de registro antes de que se realice una copia de seguridad mediante la rotación del registro. Se mide en megabytes (1,0242 bytes). El valor predeterminado es 400 y el valor válido mínimo es 1.
  • backup_count: La cantidad de archivos de registro antiguos que se retendrán. El valor predeterminado es 1 y el valor válido mínimo es 1.

Configuración del usuario de la rotación del registro

Para modificar la configuración predeterminada de la rotación del registro, debes anular esa configuración mediante un nuevo redireccionamiento de la configuración en el archivo de configuración del 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 del registro en el Agente de operaciones, agrega una sección global al archivo de configuración del usuario y, luego, 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 métricas en este archivo de configuración. Agrega la sección global después de tus canalizaciones. El resultado y la especificación de todas las opciones y valores predeterminados tienen el siguiente aspecto:

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

Configuración de ejemplo

Para inhabilitar la rotación del registro por parte del 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 alcanza 20 MB y conservar 5 copias de seguridad (6 archivos en total):

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 alcanza 2,000 MB (2 GB) y mantener 1 copia de seguridad (2 archivos en total):

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

Para rotar el registro cuando el archivo de registro alcanza 400 MB y conservar 2 copias de seguridad (3 archivos en total):

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

Si realizas cambios frecuentes cuando defines mejor la configuración de la rotación del registro, recuerda reiniciar el agente para aplicar los cambios.

Configura la rotación de archivos de registro propio en las VMs de Linux

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

  1. Instala la utilidad logrotate; para ello, ejecuta 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 de forma periódica.

Una vez que la rotación del registro entra en vigor, verás los archivos rotados en el directorio /var/log/google-cloud-ops-agent/subagents/. Los resultados son 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 del registro, haz lo siguiente:

  1. Para reducir de forma temporal el tamaño en el que se activa la rotación, configura el valor maxsize como 1k en el archivo /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. Activa el archivo de registro propio del agente para que sea mayor que 1K; para ello, reinicia el agente varias veces:

    sudo service google-cloud-ops-agent restart
    
  3. Espera a que crontab o systemd timer se activen para activar la utilidad logrotate o activa la utilidad logrotate de forma manual si ejecutas este comando:

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

  5. Restablece la configuración de la rotación de registros mediante el restablecimiento del valor maxsize original.