Configuration Log Jenkins Runner

De EjnTricks
Révision de 18 septembre 2018 à 11:39 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Suite à l'installation de Jenkins en service à l'aide de Jenkins Runner, les fichiers trace ont été configurés pour se trouver dans le répertoire /var/log/jenkins. Cet article présente la configuration des fichiers au sein de l'outils Java Service Wrapper.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Etude

Avec la configuration mise en place dans le fichier wrapper.conf, le fichier trace est généré à l'emplacement /var/log/jenkins/jenkins.log.

Cependant, la configuration par défaut n'inclus pas de rotation et de permissions spécifiques sur le fichier. Il est donc lisible de tous les comptes accédant à la machine. L'installation étant réalisé sur une machine Ubuntu, il est souhaité d'harmoniser les permissions, à savoir donner un accès total au propriétaire, soit jenkins et un accès en lecture au groupe adm.


Icon ACL.png Permission

La configuration des permissions s'effectue avec la propriété wrapper.logfile.umask qui prend un masque de permissions explicité sur la documentation officielle du wrapper : https://wrapper.tanukisoftware.com/doc/english/prop-umask.html

L'objectif étant d'avoir une permission du type 640, le masque doit interdire les permissions suivantes.

  • Exécution pour propriétaire;
  • Exécution et écriture pour le groupe;
  • Exécution, écriture et exécution pour les utilisateurs.

La valeur de la propriété est donc 0027.

wrapper.logfile.umask=0027


User-group-icon.png Nom groupe

Le fichier de trace étant créé par le compte de démarrage du service, les permissions sont hérités de celui-ci. Or il n'existe pas d'option dans Java Service Wrapper pour indiquer le groupe. Donc dans le cadre de cette installation, les permissions sont affectées à jenkins:jenkins, or il est souhaité que ce soit jenkins:adm.

Pour cela, les options de permissions natives à Linux sont utilisées, en fournissant l'argument g+s à la commande chmod sur le répertoire.

#sudo chmod g+s /var/log/jenkins

Ainsi, les propriétés sont hérités lors de la création d'un nouveau fichier dans le répertoire /var/log/jenkins.


Vues-icon.png Rotation

Par défaut, aucune rotation n'est mise en place.

Le premier exemple de rotation est basé sur la taille des fichiers. Il est souhaité de n'avoir que des fichiers de 5 Mo, propriété wrapper.logfile.maxsize, avec un nombre maximum de 20 fichiers, propriété wrapper.logfile.maxfiles.

# Maximum size that the log file will be allowed to grow to before
#  the log is rolled. Size is specified in bytes.  The default value
#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
#wrapper.logfile.maxsize=0
wrapper.logfile.maxsize=5m

# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
#wrapper.logfile.maxfiles=0
wrapper.logfile.maxfiles=20

A noter que la valeur de la propriété wrapper.logfile.rollmode peut être spécifiée à SIZE pour s'assurer du mode de rotation par taille de fichier. Mais cela est automatiquement le cas avec la configuration ci dessus.


La seconde configuration présentée permet une rotation journalière avec un nombre maximum de 20 fichiers, propriété wrapper.logfile.maxfiles. Pour la configuration journalière il faut changer le mode de rotation, propriété wrapper.logfile.rollmode avec DATE et il faut ajouter le pattern YYYYMMDD dans le nom du fichier de trace.

# Log file to use for wrapper output logging.
#wrapper.logfile=../../logs/jenkins.log
wrapper.logfile=../../logs/jenkins-YYYYMMDD.log

wrapper.logfile.rollmode=DATE

# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
#wrapper.logfile.maxfiles=0
wrapper.logfile.maxfiles=20


Viewer icon.png Voir Aussi

Configuration Logger Java Service Wrapper: https://wrapper.tanukisoftware.com/doc/english/props-logging.html

https://wrapper.tanukisoftware.com/doc/english/prop-umask.html

https://wrapper.tanukisoftware.com/doc/english/prop-logfile-rollmode.html