Vous êtes ici:

Menu

Logrotate et systemd avec Debian 2ème Partie

debian
Voici la deuxième partie sur la gestion de la rotation des logs avec Debian et logrotate version 2.8.

Les logs centreon


Après quelques essais, je me suis aperçu que j'avais un problème de droit avec les logs créés avec l'utilisateur www-data

logrotate1

En effet, les logs sont créés avec le script /etc/cron.d/centreon soit les lignes suivantes :

############################
# Cron for CentACL
* * * * * www-data /usr/bin/php -q /usr/share/centreon/cron/centAcl.php >> /var/log/centreon/centAcl.log 2>&1

############################
# Cron for Centreon-Downtime
*/5 * * * * www-data /usr/bin/php -q /usr/share/centreon/cron/downtimeManager.php >> /var/log/centreon/downtimeManager.log 2>&1

Comme il n'est pas permis de mettre plusieurs directives su dans le fichier de configuration logrotate, j'ai donc créé un petit script qui permet de positionner les droits des fichiers log à l'utilisateur centreon. Voici le script à inclure dans /usr/share/bin/centreon/cron
#!/bin/bash
# change_rights.sh
# change right for log file in /var/log/centreon
# version 1
# Date 27/04/2016
# Eric Coquard

if [[ "`ls -A /var/log/centreon`" ]]
then
chmod 664 /var/log/centreon/*.log
chown centreon:centreon /var/log/centreon/*.log
fi

Ensuite, nous rajouterons les lignes suivantes dans le fichier /etc/cron.d/centreon
############################
# Cron for logrotate
*/5 * * * * root /usr/share/centreon/cron/change_rights.sh >> /var/log/centreon/change_rights.log 2>&1

Les prochaines exécutions de logrotate se feront sans problème.

logrotate2


Logrotate et systemd


Avec Debian 8 et systemd est apparu un autre souci. Voici le test du script logrotate sur Debian 8

logrotate3

Et patatras, un autre problème avec centengine. En fait, je me suis rendu compte que systemd avec l'option Type=simple ne génère pas de fichier PID. J'ai donc remplacé la ligne générant l'erreur dans le fichier /etc/logrotate.d/centengine

kill -HUP `cat /var/run/centengine.pid`

par cette ligne
/bin/systemctl reload centengine.service

Et voici le résultat du fonctionnement du script après quelques tests

logrotate4

Bien sûr, toutes ces modifications sont ajoutées dans le dépôt Centreon šŸ˜„

blog comments powered by Disqus
 Vous êtes ici: