Como posso monitorar o que o logrotate está fazendo?


51

Como posso monitorar o que o logrotate está fazendo no Ubuntu? A atividade do logrotate pode ser monitorada?


bem, você pode ver quais descritores de arquivo o processo abriu ... Talvez tente explicar qual é o problema exato? Você está tentando depurar seus próprios scripts? Desempenho de scripts padrão / de terceiros?
Hubert Kario

Respostas:


55
cat /var/lib/logrotate/status 

Para verificar se um log específico está realmente girando ou não e para verificar a última data e hora de sua rotação, verifique o arquivo / var / lib / logrotate / status. Este é um arquivo formatado corretamente que contém o nome do arquivo de log e a data em que foi rotacionada pela última vez.

Tirado de:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10


16
Você encontrará esse arquivo como /var/lib/logrotate.statusnos sistemas Red Hat.
Michael Hampton

11
aqui está um guia completo para solução de problemas de logrotate nos sistemas Red Hat: access.redhat.com/solutions/32831
Gaia

Considerando o Ubuntu, cat /var/lib/logrotate/status mostra apenas a atividade de logrotate iniciada pelo usuário root . Os cronjobs de outros usuários podem acionar sua própria atividade de rotação de log, por exemplo, quando seu crontab inclui uma entrada como 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Essa atividade de rotação de log seria gravada em arquivo $HOME/logrotate/logrotate-state, $HOMEsendo o diretório inicial desse usuário.
Abdull

Em sistemas RedHat ainda mais recentes (pelo menos no RHEL 7.6), o arquivo de status está agora em /var/lib/logrotate/logrotate.status.
Richlv

13

Você pode tentar executar o logrotate no modo de depuração ou detalhado:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.

Isso ajuda isso quando o logrotate é iniciado como cron? Quero dizer, existe a possibilidade de registrar o comportamento do logrotate em um arquivo de log?

2
/ usr / sbin / logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log
kernelpanic

sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log: permissão negada

11
@ cara: Se você está tentando fazer isso na linha de comando e está recebendo esse erro, precisará fazer o seguinte: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null(verifique se possui o -a).
Dennis Williamson

@ Dennis quando tento que, embora eu crie o logrotate.log, mas ele tenha 0 KB e o processo não pare no terminal e aguarde com um cursor piscando.

9

Nas distribuições do Suse Linux, é assim:

cat /var/lib/logrotate.status

AWS AMI Linux tem estrutura mesmo estatuto do logrotate
Victor Perov

5

Vários logs são rotacionados em várias frequências com base no arquivo de configuração (/etc/logrotate.conf) e / ou diretório (/etc/logrotate.d). Os nomes podem variar em diferentes distribuições. A configuração pode especificar ações de pré e / ou pós-rotação. Os nomes dos arquivos rotacionados e a data da última rotação estão no arquivo de estado (/ var / lib / logrotate / state).

O logrotate não possui recursos de log. As ações de recarregamento / reinicialização iniciadas serão registradas de acordo com o registro do programa em que está sendo realizado.

A maneira mais fácil de fazer isso seria editando /etc/cron.daily/logrotatepara incluir a -vopção. Detalhes sobre a configuração e opções logrotate pode ser encontrado com o comando man logrotate.


3

Cara, você pode verificar as configurações de logrotate, geralmente em /etc/logrotate.conf.

As distribuições modernas têm um logrotatearquivo de configuração específico no /etc/logrotate.ddiretório

por exemplo, para nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

Ele manterá o arquivo por 52 semanas (um ano). A rotação é semanal.


Nota: user56548 costumava ser "Cara"

insira a descrição da imagem aqui


Provavelmente, você quis dizer rotate 365ou weekly. A rotação diária rotate 52manterá 52 dias de logs, obviamente.
temoto

@temoto, obrigado, na verdade era #weekly
Ring Ø
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.