Monitor Jenkins slaves

Dans le cas d’architectures réparties avec l’outil Jenkins il est généralement convenu de répartir la charge de compilation et génération des programmes sur plusieurs slaves.

Afin de monitorer l’état de ceux-ci il est possible de procéder simplement, en vérifiant l’état du processus JAVA directement sur la machine slave, par exemple avec NRPE ou SNMPd. Autrement on peut passer par un appel à l’API du maître Jenkins qui va nous renseigner directement sur l’état du slave Jenkins et son bon fonctionnement.

Pour ce faire, je vous présente ici le script check_jenkins_slaves, rédigé en PERL, qui va interroger une instance jenkins afin de connaître l’état des slaves et renvoyer un code de retour et un état nagios.

Vous trouverez le script sur le github de son auteur ici, ou en miroir sur mon github ici.

Pour configurer cette sonde sur votre instance NRPE, placez le script dans /usr/lib/nagios/plugins/ et ajoutez l’entrée suivante dans /etc/nagios/nrpe_local.cfg (ou /usr/local/etc/nrpe/nrpe_local.cfg):

command[check_jenkins_slaves]=/usr/bin/perl /usr/lib/nagios/plugins/check_slaves.pl http://localhost:7456

Redémarrez ensuite NRPE et ajoutez la sonde sur votre nagios/icinga.

Vous devriez ensuite avoir une sortie analogue:

OK: 5 online slaves (over 5 slaves)|slaves=5;0;0;5 executors=0;15;15;15
master, 0/2 executors
slave1, 0/4 executors
slave2, 0/2 executors
slave3, 0/2 executors
slave4, 0/2 executors