====== Nagios Check4Updates ======
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.
===== Téléchargement =====
* http://www.neuronnexion.fr/logiciels-libres/composant-joomla-nagioscheck4updates
===== Intégration dans Nagios =====
==== Wrapper Nagios ====
#!/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
==== Configuration de Nagios ====
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
}