Como visualizar o conteúdo de '/ var / log / syslog' sem travar

5

Por várias razões, é necessário que eu verifique o log do meu computador em /var/log/syslog , mas isso se tornou um problema, porque eu não consigo ver os logs naquele arquivo porque toda vez que eu abri-lo (não importa qual programa eu use) ele trava. Por exemplo, se eu abri-lo em nano , gedit , cat , ou até mesmo no programa de visualização de log principal, recebo uma falha como essa porque há muitos dados no arquivo para carregar:

Então, realmente, minha pergunta é: como posso visualizar syslog sem que o visualizador falhe? Estou fazendo algo errado? Ou há apenas uma maneira melhor que todos usam e eu não estou ciente?

Informações do sistema operacional:

Description:    Ubuntu 15.04
Release:    15.04
    
por Great Uncle Bulgaria 01.05.2015 / 17:10

2 respostas

6

TL; DR:

O problema foi devido ao arquivo var/log/syslog ser muito grande em tamanho com kernel especialmente ufw despejando muitos UFW_AUDIT logs regularmente. Para resolver o problema, precisamos definir o LOGLEVEL de ufw como low no arquivo de configuração ufw /etc/ufw/ufw.conf :

sudo sed -i '/^LOGLEVEL/s/=.*/=low/' /etc/ufw/ufw.conf

De man ufw :

Loglevels above medium generate a lot of logging output, and may 
quickly fill up your disk. Loglevel medium may generate a lot of 
logging output on a busy system.

DETALHES:

Pode haver muitas razões pelas quais o erro

Stream has outstanding operation

é exibido. Os dois mais comuns sendo o arquivo é muito grande em tamanho para ser lido e o arquivo tem um conteúdo incomum que não pôde ser lido.

Primeiro, consideramos a primeira causa, ou seja, o arquivo é muito grande (mostrarei as etapas uma a uma conforme o fizemos):

  • Primeiramente, precisamos verificar quantas linhas existem em /var/log/syslog e isso se mostrou bastante incomum:

    $ wc -l /var/log/syslog
    1308061 /var/log/syslog
    
  • Como o arquivo tem 1308061 linhas que são bastante grandes, precisamos verificar como o logrorate está configurado para rsyslog em:

    sed -n '/\/var\/log\/syslog/,/^}$/p' /etc/logrotate.d/rsyslog
    

Isso mostrou que /var/log/syslog girará todos os dias com registros com mais de uma semana sendo excluídos, que é o padrão.

  • Em seguida, precisamos verificar /var/log/syslog para ver qual processo está gravando a maioria dos registros no arquivo usando o comando:

    less /var/log/syslog | tr -s ' ' | cut -d' ' -f5 | sort | uniq -c | sort -rn
    

Isso nos mostrará os processos escritos com a maioria das linhas no arquivo em ordem decrescente. Descobrimos que kernel escreveu para arquivar o mais alto com a contagem sendo muito alta (1761519). O próximo é thermald com seus vários processos escritos cerca de 5 mil vezes.

  • Considerando 1kernel1 como a fonte dessa anomalia, verificamos um padrão no /var/log/syslog que está ocorrendo regularmente por:

    grep "kernel" /var/log/syslog | less 
    

e encontrou um que tinha cerca de UFW AUDIT e escrevia muito regularmente no arquivo de log.

  • ufw enviará essas mensagens se o LOGLEVEL estiver definido como medium e mais. Para encontrar o valor atual:

    $ grep -i "^loglevel" /etc/ufw/ufw.conf
    LOGLEVEL=full
    

Essa é a fonte do problema: para se livrar dessas mensagens regulares, ela precisa ser LOGLEVEL=low , deve ser suficiente na maioria dos casos. De man ufw :

low    logs all blocked packets not matching the default policy 
(with rate  limiting), as well as  packets  matching  logged rules.

Verifique a seção LOGGING de man ufw para ter mais ideia sobre ufw logging.

    
por heemayl 02.05.2015 / 16:40
6

Experimente less /var/log/syslog

Pressione shift-f para ir até o final do arquivo e monitorar alterações como tail -f /var/log/syslog

Você deve ver seu arquivo de log.

Deve haver algum lixo neles ou problemas de tamanho que impeçam o aplicativo Syslog de exibi-los. Então, renomeie e tente abrir o aplicativo Syslog novamente. Você deve poder ver seu novo arquivo de log.

    
por myktux 01.05.2015 / 20:01