Objectifs

Webinject est un script perl qui a pour but de tester des scénarios web, en lui décrivant les cas d'utilisation. Par exemple, on veut vérifier la prescence d'un email à travers le webmail après s'être authentifié. Webinject peut s'utiliser avec Nagios en tant que plugin et génère des données de performances.

Télécharger et installer Webinject

# wget http://mesh.dl.sourceforge.net/sourceforge/webinject/webinject-1.41.src.tar.gz

Décompresser les sources, par exemple, dans /usr/lib/nagios/plugins

# tar xzf webinject-1.41.src.tar.gz
# mv webinject/webinject.pl /usr/lib/nagios/plugins/.

Avec FAN, lancer

# yum install webinject

Création d'un premier scénario

Ce premier scénario a pour but de tester l'authentification sur Horde et vérifier la présence d'un mail. Pour une première écriture d'un scénario web, mettez comme valeur “standard” à reporttype. Cela permettra le debugger en cas de problème, en regardant les fichiers de log générés, dont http.log. Quand tout marchera bien, changez la valeur par “nagios”.

# cd /usr/lib/nagios/plugins/
# mkdir scenarios/test1
# chown -R apache:apache scenarios/test1
# vi scenarios/test1/config.xml
<globalhttplog>yes</globalhttplog>
<useragent>WebInject Application Tester</useragent>
<timeout>10</timeout>
<globaltimeout>20</globaltimeout>
<reporttype>standard</reporttype>

On supposera que l'url de horde est https://server/horde3/login.php. On s'authentifie avec l'identifiant “toto” et comme mot de passe “azerty”

# vi scenarios/webinject/testcases.xml
<testcases repeat="1">

<case
    id="1"
    description1="Authentification horde"
    method="post"
    url="https://server/horde3/login.php"
    postbody="url=&horde_user=toto&horde_pass=azerty&new_lang=fr_FR"
    parseresponse1="Horde=|;"
    parseresponse2="auth_key=|;"
/>

<case
    id="2"
    description1="Presence message1"
    url="https://server/horde3/imp/mailbox.php?mailbox=INBOX&actionID=login"
    method="get"
    parseresponse="Location: |\n"
/>

<case
    id="3"
    description1="Presence message2"
    url="{PARSEDRESULT}"
    method="get"
    parseresponse="Location: |\n"
/>
<case
    id="4"
    description1="Presence message3"
    url="{PARSEDRESULT}"
    method="get"
    verifypositive="exemple de sujet"
/>
</testcases>

Pour tester :

Attention, le chemin de testcases.xml et config.xml est très important. Webinject se base sur l'endroit où se trouve le script webinject.pl et le concatène avec le chemin du fichier que vous lui passez en paramètre. En plus clair, créer vos scénarios dans /usr/lib/nagios/plugins/ et utilisez le chemin relatif depuis ce répertoire.

# /usr/lib/nagios/plugins/webinject.pl
# /usr/lib/nagios/plugins/webinject.pl scenarios/horde3/testcases.xml -c scenarios/horde3/config.xml

Intégration avec Nagios

Créer une commande pour l'appel au plugin webinject.pl, par exemple :

define command{
        command_name                    check_webinject
        command_line                    $USER1$/webinject.pl $ARG1$ -c $ARG2$
}

Puis créer le service associé à votre host :

define service{
        host_name                               ovh1
        service_description             scenario_horde_presence_message
        use                             generic-service
        check_command                   check_webinject!scenarios/horde3/testcases.xml!scenarios/horde3/config.xml
}

Modifier les droit pour que Nagios puisse avoir les droits d'écriture sur scenarios/horde3.

# chown -R nagios:nagios /usr/lib/nagios/plugins/scenarios/horde3
supervision/utilisation_de_webinject.txt · Dernière modification: 2017/07/07 14:42 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0