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/sysloge 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
logrorateestá configurado pararsyslogem: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/syslogpara 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/syslogque 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.
-
ufwenviará essas mensagens se oLOGLEVELestiver definido comomediume 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.