Table des matières

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

Intégration dans Nagios

Wrapper Nagios

/usr/local/bin/check_joomla_upgrade
#!/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
        }