Use a rotação de registos para os autorregistos do agente de operações

O Ops Agent escreve num ficheiro de registo denominado logging-module.log. Quando o agente é executado sem supervisão durante longos períodos ou quando ocorre um problema, este ficheiro de "registo automático" pode consumir todo o espaço em disco disponível. Este documento descreve como usar a rotação de registos para evitar este problema.

A versão 2.31.0 do agente de operações introduz uma funcionalidade de rotação de registos configurável integrada no agente. Se estiver a executar a versão 2.31.0 ou mais recente do agente de operações, pode usar a funcionalidade de rotação de registos incorporada. Consulte o artigo Configure a rotação de registos no agente de operações.

Também pode gerir a rotação de registos manualmente. Pode precisar de um processo manual se estiver a usar uma versão do agente de operações sem rotação de registos incorporada ou se preferir rodar os registos manualmente. Consulte o artigo Configure a rotação de ficheiros de registo automático em VMs Linux para ver uma abordagem possível.

Configure a rotação de registos no agente de operações

Esta secção descreve como modificar a configuração de rotação de registos predefinida usada pelo agente de operações para rodar os respetivos registos automaticamente. A utilização desta funcionalidade requer a versão 2.31.0 ou mais recente do agente de operações.

Configuração predefinida

O agente de operações usa a entrada default_self_log_file_rotation para configurar a rotação de registos. Esta entrada de configuração tem três opções; o fragmento seguinte mostra as opções e os respetivos valores predefinidos:

  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

A configuração default_self_log_file_rotation tem três opções:

  • enabled: se a rotação de registos está ativada; a predefinição é true.
  • max_file_size_megabytes: o tamanho máximo que o ficheiro de registo pode atingir antes de ser feita uma cópia de segurança através da rotação de registos. Medido em megabytes (10242 bytes). O valor predefinido é 400. O valor válido mínimo é 1.
  • backup_count: o número de ficheiros de registo antigos a reter. O valor predefinido é 1. O valor mínimo válido é 1.

Configuração da rotação de registos pelo utilizador

Para modificar a configuração de rotação de registos predefinida, substitua essa configuração redefinindo-a no ficheiro de configuração do utilizador do agente de operações:

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

Para configurar a rotação de registos no agente Ops, adicione uma secção global ao ficheiro de configuração do utilizador e inclua o elemento de configuração default_self_log_file_rotation na secção global. Pode já ter pipelines de registo ou métricas neste ficheiro de configuração. Adicione a secção global após os pipelines. O resultado, que especifica todas as opções e os valores predefinidos, tem o seguinte aspeto:

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

Exemplos de configurações

Para desativar a rotação de registos pelo agente de operações, especifique a opção enabled com o valor false:

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

Para rodar o registo quando o ficheiro de registo atingir 20 MB e manter 5 cópias de segurança (6 ficheiros no total):

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

Para rodar o registo quando o ficheiro de registo atingir 2000 MB (2 GB) e manter 1 cópia de segurança (2 ficheiros no total):

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

Para rodar o registo quando o ficheiro de registo atingir 400 MB e manter 2 cópias de segurança (3 ficheiros no total):

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

Se fizer alterações frequentes à medida que refina a configuração de rotação de registos, lembre-se de reiniciar o agente para aplicar as alterações.

Configure a rotação de ficheiros de registo automático em VMs Linux

Para limitar o tamanho do registo do subagente de registo em /var/log/google-cloud-ops-agent/subagents/logging-module.log, instale e configure o utilitário logrotate.

  1. Instale o utilitário logrotate executando o seguinte comando:

    No Debian e Ubuntu

    sudo apt install logrotate
    

    No CentOS, RHEL e Fedora

    sudo yum install logrotate
    
  2. Crie um logrotateficheiro de configuração em /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. Configure crontab ou systemd timer para acionar o utilitário logrotate periodicamente.

Depois de a rotação de registos entrar em vigor, vê os ficheiros rodados no diretório /var/log/google-cloud-ops-agent/subagents/. Os resultados têm um aspeto semelhante ao seguinte resultado:

/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 testar a rotação de registos, faça o seguinte:

  1. Reduza temporariamente o tamanho do ficheiro em que a rotação é acionada definindo o valor maxsize como 1k no ficheiro /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. Faça com que o ficheiro de registo automático do agente seja superior a 1 KB reiniciando o agente algumas vezes:

    sudo service google-cloud-ops-agent restart
    
  3. Aguarde que o crontab ou o systemd timer entrem em vigor para acionar o utilitário logrotate ou acione o utilitário logrotate manualmente executando este comando:

    sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
    
  4. Verifique se vê ficheiros de registo rodados no diretório /var/log/google-cloud-ops-agent/subagents/.

  5. Reponha a configuração de rotação de registos restaurando o valor original de maxsize.