Pour diverses raisons, il est nécessaire que je consulte le journal de mon ordinateur dans /var/log/syslog
, mais cela pose un problème car je ne suis pas en mesure de visualiser les journaux de ce fichier car, à chaque fois que je l’ouvre, quel programme j'utilise) il se bloque. Par exemple, si je l'ouvre dans nano
name__, gedit
name__, cat
name__, ou même dans le programme d'affichage du journal principal, j'obtiens un blocage tel que celui-ci car le fichier contient trop de données à charger:
Ma question est donc la suivante: comment visualiser syslog
sans que le spectateur ne se bloque? Est-ce que je fais quelque chose de mal? Ou y a-t-il simplement une meilleure façon que tout le monde utilise et dont je ne suis pas au courant?
Description: Ubuntu 15.04
Release: 15.04
TL; DR:
Le problème était dû au fait que le fichier var/log/syslog
était très volumineux, avec kernel
name__, en particulier ufw
vidant régulièrement de nombreux journaux UFW_AUDIT
. Pour résoudre le problème, nous devons définir le LOGLEVEL
de ufw
en tant que low
dans le fichier de configuration ufw
name__: /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.
DÉTAILS:
Il peut y avoir plusieurs raisons pour lesquelles l'erreur
Stream has outstanding operation
est montré. Les deux fichiers les plus courants étant que la taille du fichier est trop importante pour être lue et que le contenu du fichier est inhabituel et ne peut pas être lu.
Au début, nous avons considéré la première cause: le fichier est trop gros (je vais montrer les étapes une par une comme nous l’avons fait):
Au début, nous devons vérifier le nombre de lignes présentes dans /var/log/syslog
et il s’est avéré être assez inhabituel:
$ wc -l /var/log/syslog
1308061 /var/log/syslog
Comme le fichier contient 1308061 lignes, ce qui est assez volumineux, nous devons vérifier comment le logrorate
est configuré pour rsyslog
par:
sed -n '/\/var\/log\/syslog/,/^}$/p' /etc/logrotate.d/rsyslog
Cela a montré que /var/log/syslog
alternera tous les jours avec les journaux de plus d'une semaine en cours de suppression, ce qui est la valeur par défaut.
Ensuite, nous devons vérifier /var/log/syslog
pour voir quel processus écrit la plupart des journaux dans le fichier à l'aide de la commande:
less /var/log/syslog | tr -s ' ' | cut -d' ' -f5 | sort | uniq -c | sort -rn
Cela nous montrera les processus écrits la plupart des lignes du fichier dans un ordre décroissant. Nous avons constaté que kernel
a écrit dans le fichier le plus élevé, le nombre étant très élevé (1761519). Le suivant est thermald
avec ses divers processus écrits environ 5K fois.
Considérant que 1kernel1 est à l'origine de cette anomalie, nous avons vérifié la présence d'un motif dans le /var/log/syslog
qui se produit régulièrement comme suit:
grep "kernel" /var/log/syslog | less
et en a trouvé un qui était à propos de UFW AUDIT
et qui écrivait très régulièrement dans le fichier journal.
ufw
videra ces messages si LOGLEVEL
est défini sur medium
et plus. Pour trouver la valeur actuelle:
$ grep -i "^loglevel" /etc/ufw/ufw.conf
LOGLEVEL=full
C’est la source du problème. Pour se débarrasser de ces messages ordinaires, il faut que ce soit LOGLEVEL=low
, cela devrait suffire dans la plupart des cas. De man ufw
:
low logs all blocked packets not matching the default policy
(with rate limiting), as well as packets matching logged rules.
Consultez la section LOGGING
de man ufw
pour en savoir plus sur la journalisation ufw
name__.
Essayez less /var/log/syslog
Appuyez sur shift-f pour aller à la fin du fichier et surveiller les modifications telles que tail -f /var/log/syslog
Vous devriez voir votre fichier journal.
Il doit y avoir des ordures sur eux ou peut-être des problèmes de taille qui empêchent l'application Syslog de les afficher. Alors, renommez-le et essayez d'ouvrir à nouveau l'application Syslog. Vous devriez pouvoir voir votre nouveau fichier journal.