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 pararsyslog
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 oLOGLEVEL
estiver definido comomedium
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.