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
        }
