Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/01/2023, à 10:19

obelix

Limiter la quantité de syslog

Bonjour à tous.

Je souhaite réduire les logs dans les fichiers syslog* et voici comment j'ai procédé :
- j'ai créé un lien symbolique de logrotate de "daily" à "hourly" pour l'exécuter toutes les heures : /etc/cron.hourly/logrotate -> /etc/cron.daily/logrotate
- dans "/etc/cron.daily/logrotate", le script fait un "/usr/sbin/logrotate /etc/logrotate.conf"
- dans "/etc/logrotate.conf", le script fait un "include /etc/logrotate.d"
- dans "include /etc/logrotate.d", j'ai modifié le fichier "/etc/logrotate.d/rsyslog" dans la section "/var/log/syslog" avec "rotate 3" et "size 10M"

Je pensais que toutes les heures, la configuration de 3 fichiers de 10M allait s'appliquer mais finalement rien ne se passe :'(

$ sudo service cron reload
$
$ run-parts --list /etc/cron.hourly
/etc/cron.hourly/logrotate

Les logs :

$ sudo grep CRON /var/log/syslog                                                                                                                       
Jan 10 00:17:01 linux CRON[32407]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                       
Jan 10 01:17:01 linux CRON[354]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                         
Jan 10 02:17:01 linux CRON[746]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                         
Jan 10 03:17:01 linux CRON[934]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                         
Jan 10 04:17:01 linux CRON[1197]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                        
Jan 10 05:17:01 linux CRON[1528]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                        
Jan 10 06:17:01 linux CRON[1716]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                        
Jan 10 06:25:01 linux CRON[2352]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))                                           
Jan 10 07:17:01 linux CRON[2587]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                        
Jan 10 07:30:01 linux CRON[2620]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi)
Jan 10 08:17:01 linux CRON[2806]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)                                                                        
Jan 10 09:17:01 linux CRON[3116]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Les fichier syslogs de plus de 10M :

-rw-r-----  1 syslog adm    676M Jan 10 09:58 syslog
-rw-r-----  1 syslog adm    538M Jan 10 00:09 syslog.1

J'ai bien compris que les 10Mo ne sont pas un déclenchement, c'est toutes les heures que le cron va vérifier si le fichier fait plus de 10Mo, si oui, ça tourne.

Cela dit, vu que ça ne marche pas, j'ai pas du comprendre quelque chose big_smile

Merci pour votre aide.

Dernière modification par obelix (Le 10/01/2023, à 10:20)

Hors ligne

#2 Le 10/01/2023, à 12:37

geole

Re : Limiter la quantité de syslog

Bonjour
Une réponse à coté de la demande.
   Il serait plus simple de ne pas fabriquer ces fichiers inutiles. Voir paragraphe 4.6
Une réponse pour mettre au point. A mon avis , il faudrait demander  à journalctl de faire du ménage toutes les heures.

sudo journalctl --rotate   --vacuum-time=1h

Dernière modification par geole (Le 10/01/2023, à 12:37)

En ligne

#3 Le 10/01/2023, à 13:09

obelix

Re : Limiter la quantité de syslog

Est ce que cette commande est pérenne et toujours en vigueur après un reboot ?

Hors ligne

#4 Le 10/01/2023, à 13:21

geole

Re : Limiter la quantité de syslog

Oui. Mais je ne sais pas si  c'est la raison du non-fonctionnement.

En ligne

#5 Le 16/01/2023, à 11:40

obelix

Re : Limiter la quantité de syslog

Je ne comprends pas, je dois louper quelque chose :

$ ll -Sh /var/log/
total 1.3G
-rw-r-----  1 syslog adm    693M Jan 16 11:34 syslog
-rw-r-----  1 syslog adm    511M Jan 16 00:10 syslog.1
-rw-r-----  1 syslog adm     35M Jan 15 00:10 syslog.2.gz
-rw-r-----  1 syslog adm     26M Jan 14 00:05 syslog.3.gz

Je sais pourquoi je génère beaucoup de log et cela est maîtrisé.

Ce que je veux, c'est limiter la quantité de logs conservé et j'ai l'impression que mes différents tests de s'appliquent pas :'(

Bizarrement, journalctl ne voit que 56,5Mo de logs :

$ sudo journalctl --disk-usage
Archived and active journals take up 56.5M in the file system.

Dernière modification par obelix (Le 16/01/2023, à 11:44)

Hors ligne

#6 Le 16/01/2023, à 13:25

geole

Re : Limiter la quantité de syslog

Bonjour.
Tu confonds les logs du journal avec la gestion passée maintenue  par manque de courage d'élaguer.
Pourtant ils n'ont pas hésité à supprimer les noyaux en 32 bits

sudo du -had2 /var/log/journal 2>/dev/null | sort -hr

En ligne

#7 Le 16/01/2023, à 13:32

obelix

Re : Limiter la quantité de syslog

En fait je ne dois pas comprendre car "/var/log/syslog*" ne semble pas être géré par journalctl.

Voici le retour de ta commande sachant que j'ai supprimé les fichiers syslogs pour faire un test.

$ sudo du -had2 /var/log/journal 2>/dev/null | sort -hr
6.3M    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7
6.3M    /var/log/journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001@0ed57405bee34f06b2464d02df68a9cd-000000000004de7d-0005f260be0326e6.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001@0ed57405bee34f06b2464d02df68a9cd-000000000004db7b-0005f260bdacb056.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001@0ed57405bee34f06b2464d02df68a9cd-000000000004d87f-0005f260bd449122.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001@0ed57405bee34f06b2464d02df68a9cd-000000000004d5b4-0005f260bc199c67.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001@0ed57405bee34f06b2464d02df68a9cd-000000000004d2b2-0005f260bbc51d5f.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/user-1001.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/system@32c6ad0480be4a0ba782ad5b29068373-000000000004e014-0005f260be3220fa.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/system@32c6ad0480be4a0ba782ad5b29068373-000000000004d917-0005f260bd6b5fd8.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/system@32c6ad0480be4a0ba782ad5b29068373-000000000004d84d-0005f260bd35d31d.journal
640K    /var/log/journal/a3d9197b765643568af09eb2bd3e5ce7/system.journal
$ ll -Sh /var/log/                              
total 83M                                                     
-rw-r-----   1 syslog adm              82M Jan 16 13:31 syslog
...

Hors ligne

#8 Le 16/01/2023, à 13:45

geole

Re : Limiter la quantité de syslog

Journalct  expédie en standard, sous le contrôle du fichier /etc/rsyslog.d/50-default.conf,dans syslog, dans kern.log  et dans dmesg certaines traces,     Après,  c'est l'application logrotate qui gère les changements dans ces fichiers..

Dernière modification par geole (Le 16/01/2023, à 14:33)

En ligne

#9 Le 16/01/2023, à 13:56

obelix

Re : Limiter la quantité de syslog

Oui effectivement, c'est ce que j'ai essayé de faire d'après mon premier ticket.
Configurer "/etc/logrotate.d/rsyslog" pour avoir des fichiers syslog* léger et augmenté la fréquence du logrotate toutes les heures avec "/etc/cron.hourly/logrotate -> /etc/cron.daily/logrotate"

Pour tester, je fais "sudo /etc/cron.hourly/logrotate" et rien ne se passe, les logs ne sont pas réduits...

Hors ligne

#10 Le 16/01/2023, à 14:35

geole

Re : Limiter la quantité de syslog

Merci de donner le contenu du fichier  /etc/logrotate.conf

En ligne

#11 Le 16/01/2023, à 15:12

obelix

Re : Limiter la quantité de syslog

Voici le contenu de "/etc/logrotate.conf" :

# see "man logrotate" for details
# rotate log files weekly
weekly

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}

# system-specific logs may be configured here

Hors ligne

#12 Le 16/01/2023, à 15:36

geole

Re : Limiter la quantité de syslog

# rotate log files weekly
weekly

et si tu mettais hourly

man logrotate.conf

Il semble que ce n'est plus géré par des CRUN!!

Dernière modification par geole (Le 16/01/2023, à 15:38)

En ligne

#13 Le 16/01/2023, à 15:51

obelix

Re : Limiter la quantité de syslog

Je vais essayer mais je pensais que ceci suffirait :

/etc/cron.hourly/logrotate -> /etc/cron.daily/logrotate

Hors ligne

#14 Le 16/01/2023, à 18:08

geole

Re : Limiter la quantité de syslog

man logrotate.conf a écrit :

   Frequency
       hourly Log files are rotated every hour.  Note that usually logrotate is configured to be run by cron daily (or by logrotate.timer when  using  systemd(1)).
              You have to change this configuration and run logrotate hourly to be able to really rotate logs hourly.

systemctl list-timers
et il faudra certainement le changer

a@p:~$ cat /lib/systemd/system/logrotate.timer
[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=daily
AccuracySec=1h
Persistent=true

[Install]
WantedBy=timers.target
a@p:~$ 

OnCalendar=hourly
AccuracySec=5min
Valeurs non testées

Dernière modification par geole (Le 16/01/2023, à 18:51)

En ligne

#15 Le 17/01/2023, à 15:36

obelix

Re : Limiter la quantité de syslog

Ce qui semble fonctionner :
- dans "/etc/logrotate.d/rsyslog" : rotate 3, size 10M, hourly
- /etc/cron.hourly/logrotate -> /etc/cron.daily/logrotate
- dans "/etc/logrotate.conf" : hourly

A voir sur le long terme...

Merci pour votre aide à tous !

Hors ligne