Logrotate et systemd avec Debian 2ème Partie
30/04/16 14:30 Classé dans: Techniques
Voici la deuxième partie sur la gestion de la rotation des logs avec Debian et logrotate version 2.8.
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
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
Ensuite, nous rajouterons les lignes suivantes dans le fichier /etc/cron.d/centreon
Les prochaines exécutions de logrotate se feront sans problème.
par cette ligne
Et voici le résultat du fonctionnement du script après quelques tests
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
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.
Logrotate et systemd
Avec Debian 8 et systemd est apparu un autre souci. Voici le test du script logrotate sur Debian 8
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
Bien sûr, toutes ces modifications sont ajoutées dans le dépôt Centreon 😄
blog comments powered by Disqus