Usar a rotação de registros para os próprios registros do Agente de operações

O agente de operações grava em um arquivo de registro chamado logging-module.log. Quando o agente é executado sem supervisão por longos períodos ou quando ocorre um problema, esse arquivo de autoregistro pode consumir todo o espaço disponível em disco. Neste documento, descrevemos como usar a rotação de registros para evitar esse problema.

O agente de operações versão 2.31.0 introduz um recurso de rotação de registro configurável integrado ao agente. Se você estiver executando o Agente de operações versão 2.31.0 ou mais recente, poderá usar o recurso integrado de rotação de registros. Consulte Configurar a rotação de registros no agente de operações.

Também é possível gerenciar a rotação de registros manualmente. Talvez seja necessário um processo manual se você estiver usando uma versão do agente de operações sem rotação de registro integrada ou se preferir alternar os registros manualmente. Consulte Configurar a rotação de arquivos de registro próprio nas VMs do Linux para uma abordagem possível.

Configurar a rotação de registros no Agente de operações

Nesta seção, descrevemos como modificar a configuração de rotação de registro padrão usada pelo Agente de operações para alternar os registros automaticamente. Para usar esse recurso, é necessário ter o agente de operações versão 2.31.0 ou mais recente.

Configuração padrão

O agente de operações usa a entrada default_self_log_file_rotation para configurar a rotação de registros. Essa entrada de configuração tem três opções. O snippet a seguir mostra as opções e os valores padrão:

  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 registros está ativada; o padrão é true.
  • max_file_size_megabytes: o tamanho máximo que o arquivo de registros pode atingir antes de ser armazenado em backup pela rotação de registros. Medido em megabytes (10242 bytes). O padrão é 400, o valor válido mínimo é 1.
  • backup_count: o número de arquivos de registros antigos a serem retidos. O padrão é 1, o valor válido mínimo é 1.

Configuração do usuário da rotação de registros

Para modificar a configuração de rotação de registro padrão, modifique essa configuração redefinindo a configuração no arquivo de configuração do usuário 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 registros no Agente de operações, adicione uma seção global ao arquivo de configuração do usuário e inclua o elemento de configuração default_self_log_file_rotation na seção global. Talvez você já tenha pipelines de geração de registros ou de métricas nesse arquivo de configuração. Adicione a seção global após os pipelines. O resultado, especificando todas as opções e valores padrão, é semelhante ao seguinte:

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 registros 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 girar o registro quando o arquivo de registro atingir 20 MB e manter cinco backups (seis arquivos no total):

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

Para alternar o registro quando o arquivo de registros atingir 2.000 MB (2 GB) e manter um backup (dois arquivos no total):

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

Para girar o registro quando o arquivo de registro atingir 400 MB e manter dois backups (três arquivos no total):

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

Se você fizer alterações frequentes ao refinar a configuração de rotação de registros, lembre-se de reiniciar o agente para aplicar as alterações.

Configurar a rotação de arquivos de registro próprios nas VMs do Linux

Para limitar o tamanho do registro do subagente de geração de registros 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 no Ubuntu

    sudo apt install logrotate
    

    No CentOS, no RHEL e no Fedora

    sudo yum install logrotate
    
  2. Crie um arquivo de configuração logrotate 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 que a rotação de registro entrar em vigor, você verá os arquivos rotacionados no diretório /var/log/google-cloud-ops-agent/subagents/. Os resultados são semelhantes à saída a seguir:

/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 registro, faça o seguinte:

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

  2. Para acionar o arquivo de registro próprio do agente para ser maior que 1 mil, reinicie o agente algumas vezes:

    sudo service google-cloud-ops-agent restart
    
  3. Aguarde até que crontab ou 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 você está vendo arquivos de registro rotacionados no diretório /var/log/google-cloud-ops-agent/subagents/.

  5. Redefina a configuração da rotação de registro restaurando o valor original de maxsize.