Utilizzare la rotazione dei log per i log di Ops Agent

Ops Agent scrive in un file di log denominato logging-module.log. Quando l'agente viene eseguito senza supervisione per lunghi periodi o quando si verifica un problema, questo file di "log autonomo" può consumare tutto lo spazio su disco disponibile. Questo documento descrive come utilizzare la rotazione dei log per evitare questo problema.

La versione 2.31.0 di Ops Agent introduce una funzionalità di rotazione dei log configurabile integrata nell'agente. Se utilizzi Ops Agent versione 2.31.0 o successive, puoi utilizzare la funzionalità di rotazione dei log integrata. Consulta Configurare la rotazione dei log in Ops Agent.

Puoi anche gestire la rotazione dei log manualmente. Potresti aver bisogno di una procedura manuale se utilizzi una versione di Ops Agent senza rotazione dei log integrata o se preferisci ruotare i log manualmente. Per un possibile approccio, consulta Configurare la rotazione dei file di log autonomo su VM Linux.

Configurare la rotazione dei log in Ops Agent

Questa sezione descrive come modificare la configurazione predefinita della rotazione dei log utilizzata da Ops Agent per ruotare automaticamente i log. L'utilizzo di questa funzionalità richiede la versione 2.31.0 o successive di Ops Agent.

Configurazione predefinita

Ops Agent utilizza la voce default_self_log_file_rotation per configurare la rotazione dei log. Questa voce di configurazione accetta tre opzioni. Lo snippet seguente mostra le opzioni e i relativi valori predefiniti:

  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

La configurazione default_self_log_file_rotation prevede tre opzioni:

  • enabled: indica se la rotazione dei log è abilitata. Il valore predefinito è true.
  • max_file_size_megabytes: le dimensioni massime che il file di log può raggiungere prima che venga eseguito il backup tramite la rotazione dei log. Misurate in megabyte (10242 byte). Il valore predefinito è 400, il valore minimo valido è 1.
  • backup_count: il numero di vecchi file di log da conservare. Il valore predefinito è 1, mentre il valore minimo valido è 1.

Configurazione utente della rotazione dei log

Per modificare la configurazione predefinita della rotazione dei log, esegui l'override della configurazione ridefinendola nel file di configurazione utente di Ops Agent:

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

Per configurare la rotazione dei log in Ops Agent, aggiungi una sezione global al file di configurazione utente e includi l'elemento di configurazione default_self_log_file_rotation nella sezione global. È possibile che in questo file di configurazione siano già presenti pipeline di logging o metriche. In questo caso, aggiungi la sezione global dopo le pipeline. Il risultato, che specifica tutte le opzioni e i valori predefiniti, è il seguente:

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

Configurazioni di esempio

Per disattivare la rotazione dei log da parte di Ops Agent, specifica l'opzione enabled con il valore false:

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

Per ruotare il log quando il file di log raggiunge i 20 MB e conservare 5 backup (6 file in totale):

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

Per ruotare il log quando il file di log raggiunge i 2000 MB (2 GB) e mantenere 1 backup (2 file in totale):

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

Per ruotare il log quando il file di log raggiunge i 400 MB e mantenere 2 backup (3 file in totale):

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

Se apporti modifiche frequenti durante la perfezione della configurazione della rotazione dei log, ricordati di riavviare l'agente per applicarle.

Configurare la rotazione dei file di log autonomi nelle VM Linux

Per limitare le dimensioni del log del sottoagente di logging in /var/log/google-cloud-ops-agent/subagents/logging-module.log, installa e configura l'utilità logrotate.

  1. Installa l'utilità logrotate eseguendo il seguente comando:

    Su Debian e Ubuntu

    sudo apt install logrotate
    

    Su CentOS, RHEL e Fedora

    sudo yum install logrotate
    
  2. Crea un file di configurazione logrotate in /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 per attivare periodicamente l'utilità logrotate.

Una volta applicata la rotazione dei log, vedrai i file ruotati nella directory /var/log/google-cloud-ops-agent/subagents/. I risultati sono simili all'output riportato di seguito:

/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

Per testare la rotazione dei log:

  1. Riduci temporaneamente le dimensioni del file a cui viene attivata la rotazione impostando il valore maxsize su 1k nel file /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. Attiva il file di log dell'agente in modo che sia più grande di 1 KB riavviando l'agente alcune volte:

    sudo service google-cloud-ops-agent restart
    
  3. Attendi che crontab o systemd timer vengano applicati per attivare l'utilità logrotate oppure attivala manualmente eseguendo questo comando:logrotate

    sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
    
  4. Verifica di vedere i file di log ruotati nella directory /var/log/google-cloud-ops-agent/subagents/.

  5. Ripristina la configurazione della rotazione dei log ripristinando il valore maxsize originale.