Monitoring | Superviser vos jobs rundeck
Article publiée le 6 Septembre 2017
I) Configuration de Rundeck
Suites aux précédents tutos sur rundeck: https://journaldunadminlinux.fr/tuto-installez-et-configurez-rundeck-ordonnanceur-opensource/ et https://journaldunadminlinux.fr/tuto-sauvegardez-vos-instances-rundeck/, je continue dans ma lancée en vous fournissant un petit script (très simpliste) vous permettant de monitorer vos jobs via un outil de supervision (zabbix, nagios, etc…)
Dans un premier temps, il est nécessaire de désactiver le délai d’expiration du token permettant de taper sur l’API de rundeck:
- Éditez le fichier /etc/rundeck/rundeck-config.properties et ajoutez la ligne suivante:
rundeck.api.tokens.duration.max=0
- Redémarrez Rundeck
service rundeckd restart
Authentifiez vous avec un compte admin et cliquez sur le bouton « profil » en haut à droite de la page:
Créez ensuite un nouveau token en laissant à 0 le champs « Expiration in ».
II) Script
Ci-dessous le script qui vous permettra de renvoyer un code erreur de votre job à votre outil de supervision en fonction de son statuts:
#!/bin/bash
URL= »<URL de votre instance RUNDECK »
TOKEN= »<le token généré> »
FLUX=$2
PROJECT=$1
function getLastStatus {
curl -s -H « Accept: application/json » -X GET « $URL/api/20/project/$PROJECT/executions?authtoken=$TOKEN »|jq ‘.|[ .executions[]|select(.job.name != null)|select(.job.name|contains(« ‘ »$FLUX »‘ »))]|sort_by(.id)|reverse |.[0]|.status’|sed ‘s/ »//g’
}
# get the token for quering rundeck
# get the last status of $1
STATUS=$(getLastStatus)case « $STATUS » in
‘aborted’)
echo -1
;;
‘failed’)
echo -1
;;
‘succeeded’)
echo 0
;;
*) echo 0
esac
exit 0
Pour tester il vous suffit de lancer ce script avec de bons arguments:
./checkJobRundeck.sh <nom du projet rundeck> <nom du job>
Il ne vous reste plus qu’à paramétrer votre outil de supervision.