Forum Linux.général logrotate

Posté par  .
Étiquettes : aucune
0
1
mar.
2010
Bonjour à tous,

comme Neox, pour une fois c'est moi qui pose une question.
Un détail que je ne comprends pas avec logrotate.
Voici mon fichier de configuration /etc/logrotate.d/openvpn

/var/log/openvpn*.log
{
rotate 7
weekly
missingok
delaycompress
compress
notifempty
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}


Et voici le résultat:

$ ls -al /var/log/openvpn*

-rw------- 1 root root 0 fév 27 06:25 /var/log/openvpn_vpn_1.log
-rw------- 1 root root 403K mar 1 19:38 /var/log/openvpn_vpn_1.log.1
-rw------- 1 root root 81K fév 26 14:37 /var/log/openvpn_vpn_1.log.2.gz
-rw------- 1 root root 9,1K fév 12 08:13 /var/log/openvpn_vpn_1.log.3.gz
-rw------- 1 root root 55K fév 11 19:59 /var/log/openvpn_vpn_1.log.4.gz
-rw------- 1 root root 363K fév 2 10:53 /var/log/openvpn_vpn_1.log.5.gz
-rw------- 1 root root 157K déc 10 23:05 /var/log/openvpn_vpn_1.log.6.gz
-rw------- 1 root root 2,6M nov 9 22:37 /var/log/openvpn_vpn_1.log.7.gz

-rw------- 1 root root 0 fév 27 06:25 /var/log/openvpn_vpn_2.log
-rw------- 1 root root 94K mar 1 20:17 /var/log/openvpn_vpn_2.log.1
-rw------- 1 root root 33K fév 26 14:37 /var/log/openvpn_vpn_2.log.2.gz
-rw------- 1 root root 9,1K fév 12 08:13 /var/log/openvpn_vpn_2.log.3.gz
-rw------- 1 root root 56K fév 11 19:59 /var/log/openvpn_vpn_2.log.4.gz
-rw------- 1 root root 152K fév 2 10:53 /var/log/openvpn_vpn_2.log.5.gz
-rw------- 1 root root 73K déc 10 23:05 /var/log/openvpn_vpn_2.log.6.gz
-rw------- 1 root root 2,5M nov 9 22:37 /var/log/openvpn_vpn_2.log.7.gz

-rw------- 1 root root 0 fév 27 06:25 /var/log/openvpn_vpn_3.log
-rw------- 1 root root 7,7M mar 1 20:18 /var/log/openvpn_vpn_3.log.1
-rw------- 1 root root 2,1M fév 26 14:37 /var/log/openvpn_vpn_3.log.2.gz
-rw------- 1 root root 3,6M fév 11 14:05 /var/log/openvpn_vpn_3.log.3.gz

note: j'ai ajouté des sauts de lignes car sinon l'affichage est illisible à cause de la police proportionnelle.

La rotation des journaux fonctionne, mais le journal *.log reste vide. C'est le journal *.log.1 qui reçoit les données.

Cela n'est pas le cas pour les journaux comme syslog par exemple.
/etc/logrotate.d/rsyslog :

/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}


Ce qui donne:

-rw-r----- 1 root adm 20K mar 1 20:17 syslog
-rw-r----- 1 root adm 9,4K mar 1 06:25 syslog.1
-rw-r----- 1 root adm 1,7K fév 28 06:25 syslog.2.gz
-rw-r----- 1 root adm 2,8K fév 27 06:25 syslog.3.gz
-rw-r----- 1 root adm 3,3K fév 26 06:25 syslog.4.gz
-rw-r----- 1 root adm 4,2K fév 25 06:25 syslog.5.gz
-rw-r----- 1 root adm 2,4K fév 24 06:25 syslog.6.gz
-rw-r----- 1 root adm 2,1K fév 23 06:25 syslog.7.gz

Donc tout va bien ici.

Quelqu'un a une idée du pourquoi/comment mes fichier *.log ne sont pas utilisés ?
Je précise que sans logrotate, ce sont bien les *.log qui se remplissent.
  • # Pas le bon service relancé

    Posté par  . Évalué à 6.

    Dans ton fichier /etc/logrotate.d/openvpn, tu ne relances pas le bon service.
    Il faudrait plûtot lui dire
    invoke-rc.d openvpn reload

    Ou, si openvpn n'a pas de possibilité de faire un "reload", faire un
    /bin/kill -HUP `cat /var/run/openvpn.pid 2>/dev/null` 2>/dev/null || true
    (un truc de ce genre)
    • [^] # Re: Pas le bon service relancé

      Posté par  . Évalué à 4.

      Quel boulet je suis.

      Pourtant j'ai pris mon temps. J'ai regardé l'allure de mon fichier de configuration, j'ai laissé passer une nuit. J'ai re-regardé. J'ai re-laissé passer une nuit.
      Et le pire du pire, j'ai montré ça à un collègue dont la première réflexion a été "pourquoi relancer rsyslog ?". Mais non, je n'ai pas tilté.

      Merci d'avoir pris soin de mon sommeil :-)
      • [^] # Re: Pas le bon service relancé

        Posté par  . Évalué à 2.

        Tant que j'y suis, pour OpenVPN il est souvent recommandé d'utiliser "copytruncate". Sinon il faut stopper/relancer OpenVPN.

        Mais: copytruncate pose problème lorsque le journal est gros.
        Mais: relancer OpenVPN pose problème lorsqu'il y a pas mal de traffic, ou qu'on a des règles de parefeu avec le suivi des connexions (c'est à dire tout le temps).

        C'est tellement bancal qu'il n'existe pas de méthode officielle (sur le site d'OpenVPN par exemple), et que le paquet Debian ne possède pas de fichier de configuration pour logrotate.

        Il faudrait juste qu'OpenVPN réponde à un signal pour simplement "lâcher" le fichier journal, car sinon il le garde ouvert en permanence.

        Autre solution: faire en sorte que la journalisation soit gérée par syslog (mode par défaut), mais configurer rsyslog pour envoyer tout cela dans un journal séparé. Je crois que c'est la solution idéale car elle contourne les deux problèmes cités.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.