Nagios Check4Updates est un composant pour Joomla! 2.5 développé par Neuronnexion.
Il facilite la supervision des mises à jour de Joomla! et de ses greffons (Plugins, Modules, Composants…) en utilisant l'outil interne de mise à jour de Joomla!
Il est ainsi possible de superviser depuis votre outil de monitoring (type Nagios) vos sites Joomla! afin de suivre les mise à jour et ainsi profiter de la correction des failles de sécuritées.
Après installation de ce composant dans Joomla, n'oubliez pas de paramétrer dans la partie d'administration de Joomla! un nom d'utilisateur ainsi qu'un mot de passe (éventuellement une liste d'adresse IP autorisées) qui viendrons sécuriser l'accès aux résultats de la sonde.
Ce composant est édité sous licence Libre GPL.
#!/bin/bash # Wrapper for nagioscheck4updates # Documentation: http://tech.nnx.com/doku.php?id=start:developpement:joomla:nagioscheck4updates if [ 3 -ne $# ] ; then echo "Wrong parameters." echo "Usage : $0 web_site username password" exit fi site=$1 user=$2 pass=$3 url="http://$site/index.php?option=com_nagioscheck4updates" # Var NAGIOS STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 # Get status ret=$(wget -q -O - "$url" --user="$user" --password="$pass") nbl=$(echo -e "$ret"|wc -l) # Check the content of the page if [ 2 -ne $nbl ] ; then echo "Problem: there is $nbl line instead of 2" echo -e "$ret" exit $STATE_UNKNOWN fi state=$(echo -e "$ret" | head -n 1) comment=$(echo -e "$ret" | tail -n 1) # Check informations of the Joomla! component if [[ ! "$state" =~ [0-4] ]] ; then echo "Problem: -$state- should be a number between 0 and 4" exit $STATE_UNKNOWN fi # Return informations echo $comment exit $state
Tout d'abord, définissons un templates pour vos services Joomla! :
# Definition de services define service{ name generic-joomla-upgrade service_description Joomla_Upgrades use generic-service check_command return-unknown # Surcharge me with check_joomla_upgrade!SITE!USER!PASS check_interval 1440 # 1 fois par jour retry_interval 60 # retry une fois par heure notification_interval 5760 # une notification tout les 4 jours register 0 } define command{ command_name check_joomla_upgrade command_line /usr/local/bin/check_joomla_upgrade '$ARG1$' '$ARG2$' '$ARG3$' }
Maintenant, pour chaque site que vous souhaitez superviser :
define service{ host_name serveur_hebergeant_joomla service_description Joomla_MonSiteJoomla use generic-joomla-upgrade check_command check_joomla_upgrade!www.monsite.org!username!password }