Bonjour

Je souhaite réaliser la gestion des logs de divers applicatifs en utilisant logrotate.

Je travaille sur VM CentOS 7.9 (environnement de dev et de recherche avant mise en production sur serveurs physiques CentOS 7.9).

Le fichier logrotate.conf est celui d'install sans modifications particulières:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
# see "man logrotate" for details
# rotate log files weekly
weekly
 
# keep 4 weeks worth of backlogs
rotate 4
 
# create new (empty) log files after rotating old ones
create
 
# use date as a suffix of the rotated file
dateext
 
# uncomment this if you want your log files compressed
#compress
 
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
 
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
 
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}
 
# system-specific logs may be also be configured here.
Voici le fichier de gestion des logs dans /etc/logrotate.d:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
/REP_DEV/log-tmp/fifo_transcript.log
/REP_DEV/log-tmp/fifo_media.log
/REP_DEV/log-tmp/ingest_VIS.log
{
    su toto toto 
    create 0644 toto toto 
    daily
    copytruncate
    rotate 30
    missingok
    notifempty
    dateext
    extension .log
}
 
/REP_DEV/log-tmp/vvf-listes.log
{
    su toto toto
    create 0644 toto toto
    daily
    copytruncate
    rotate 15
    missingok
    notifempty
    dateext
    extension .log
}
Le propriétaire et le groupe pour les fichiers de log et le chemin vers log-tmp sont toto:toto

Ma problématique est la suivante:

- lorsque j'exécute la commande logrotate en mode debug avec le fichier de gestion des logs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
logrotate -d /etc/logrotate.d/fifo_transcript_log
, je n'ai pas d'erreurs particulières qui ressortent.

- lorsque j'exécute la même commande logrotate en mode forcé+verbose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
logrotate -fv /etc/logrotate.d/fifo_transcript_log
, les fichiers de logs sont traités (rotation des logs) et je vois apparaître les fichiers archive datés.

- lorsque l'exécution est déclenché via cron.daily, le fichier /var/lib/logrotate/logrotate.status existe et indique le traitement des fichiers log avec la bonne date, le log de cron indique que logrotate s'est exécuté sans remonter d'erreur ou sortie anormale. Mais le traitement des fichiers ne se fait pas (pas d'apparition de log archive avec la date).

J'ai vérifié les noms des fichiers log sur le disque pour qu'il soient cohérents avec les noms mentionnés dans le script.
J'ai cherché si les logs étaient créés ailleurs, sans résultats.
En cherchant sur le net, cela m'a permis d'ajouter la commande
create 0644 toto toto
pour m'assurer des droits sur les fichiers. Mais cela n'a rien donné.
Je n'ai pas trouvé de cas similaire à celui sur lequel je me casse les dents.

Dernière chose, j'ai des scripts logrotate sensiblement identiques et avec les mêmes config sur des serveurs physiques CentOS 7.9, pour lesquels je n'ai pas de problème.

Auriez-vous une piste que je pourrais creuser pour débloquer la situation ? Je pense que c'est une histoire de droits, mais je suis sec niveau idées.
Merci d'avance de votre aide.