• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Automatiser la tâche snmpquery
#1
Bonjour,

Maintenant que tout a l'air de fonctionner (un grand merci à David!), je souhaiterais automatiser la tâche d'inventaire snmp.

Si je pars du principe que j'ai découvert tout le matériel de mon réseau, il me reste juste à planifier un scan de manière régulière.

Je me demandais si la démarche suivante était la bonne:
- Mettre en "actif" toutes les tâches snmpquery que j'ai créé pour chaque vlan
- Mettre en tâche cron la commande: fusioninventory-agent

Du coup lorsque la tâche planifiée se lance, il va faire un snmpquery sur toutes les tâches actives.

Comme la communication est en "pull", je ne sais pas trop à quoi sert les champs date d'exécution et périodicité sur l'interface web?

Est-ce la bonne démarche?

Merci encore!
  Reply
#2
en mettant en pull, au moment ou c'est son heure d'exécution, il va préparer la tache avec tout ce qui a a faire. Dès que l'agent va se lancer il récupèrera tout ce qui a été préparé et fera son boulo Wink
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#3
Donc si par exemple je veux qu'une tâche snmpquery soit réalisée tous les matins à 9h, je dois mettre en date d'exécution la date du jour, à 9h et en périodicité je mets 24h?

Ce qui au final veut dire qu'il se base sur la date d'aujourd'hui et qu'il refait le boulot toutes les 24 heures?
  Reply
#4
Hidoo, oui ca fonctionne comme ca.

Pour mes tests actuellement je fais comme cela j'ai une tache snmp qui s'effectue toute les 2h que j'ai lancé une fois et qui s’incrémente automatiquement quand la tâche est finie. Donc elle se déclenche toutes les deux heures et ensuite j'ai l'agent qui se déclenche 1 minutes après via un cron. Et ca fonctionne plutôt bien pour le moment.
  Reply
#5
Ok je vais tester ça alors.

Merci
  Reply
#6
Ca n'a pas l'air d'avoir marché.

J'ai bien mis active la tâche snmp, le 1er juin à 12h et 24h en périodicité. Et lors du passage de la tâche cron, il n'a rien fait Confused

Où est le problème?
  Reply
#7
Bonjour à tous.

J'ai le même souci. Tout d'abord, ma config :
GLPI 0.78.5 sur ubuntu server 10.10
Fusioninventory server 2.3.4
un agent fusion inventory 2.1.8-2 sur un seven Pro 64b

L'agent est bien remonté dans glpi, j'ai créé une plage IP (des switchs et un AP Wifi), et associé mon agent à une tache SNmpQUERY.
J'ai créé une action sur cette tâche d'inventaire SNMP, associée à la plage IP et l'agent, avec une périodicité de 30 min.
Si j'ai bien compris le mécanisme, cette périodicité fait que le serveur créé un "drapeau", et à la prochaine exécution de l'agent, il regarde s'il y a le drapeau qui lui fait exécuter l'action de la tâche.

Et bien, ça ne marche pas. Je n'ai aucun inventaire SNMP automatique.

Quand je clique sur "Forcer l'exécution", ça marche. Mais pourquoi pas de façon automatique ??

2ème problème : à chaque inventaire automatique (et non pas à la découverte), j'ai mon AP Wifi (DWL-3200 AP) qui est recréé dans les matériels réseaux. Il est recrée avec le nom, le modèle, le firmware, et l'adresse IP.
Dans celui qui est déjà dans les matériels réseaux, j'ai rajouté l'adresse MAC, le modèle SNMP (3128022), et l'authentification v1.
Savez-vous pourquoi mon matériel est recréé ?

A vous lire.
  Reply
#8
Bon j'ai reessayé et je comprends toujours pas.

J'ai forcé la tâche snmpquery à 11h15. Ensuite dans le champ date d'exécution ca s'est mis à 12h00, avec une fréquence de 24h.

A 12h01 la tâche cron fusioninventory-agent s'est lancé. Elle n'a pas mis à jour mes imprimantes.

Comment ça marche?
  Reply
#9
Est que dans la crontab linux tu as bien la ligne suivante :

Code:
*/1 * * * *             www-data        /usr/bin/php5 /var/www/glpi/front/cron.php >/dev/null
Permettant à glpi chaque minute de déclancher toute les actions dont il a besoin ?
  Reply
#10
T'as quoi dans l'historique de ta tache d'inventaire réseau dans glpi?

Si ta tache est en pull, il faut que tu lange l'agent manuellement pour qu'il aille chercher ce qu'il doit faire
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#11
CedricR Wrote:Est que dans la crontab linux tu as bien la ligne suivante :

Code:
*/1 * * * *             www-data        /usr/bin/php5 /var/www/glpi/front/cron.php >/dev/null
Permettant à glpi chaque minute de déclancher toute les actions dont il a besoin ?

J'ai dans /etc/cron.hourly un fichier fusioninventory-agent

Code:
#!/bin/bash
NAME=fusioninventory-agent
LOG=/var/log/$NAME/$NAME.log

exec >>$LOG 2>&1

[ -f   /etc/sysconfig/$NAME ] || exit 0
source /etc/sysconfig/$NAME
export PATH

i=0
while [ $i -lt ${#OCSMODE[*]} ]
do
    if [ ${OCSMODE[$i]:-none} == cron ]; then
        OPTS=
        if [ ! -z "${OCSPAUSE[$i]}" ]; then
            OPTS="--wait ${OCSPAUSE[$i]}"
        fi

        if [ ! -z "${OCSTAG[$i]}" ]; then
                OPTS="$OPTS --tag=${OCSTAG[$i]}"
        fi

        if [ "z${OCSSERVER[$i]}" = 'zlocal' ]; then
                # Local inventory
                OPTS="$OPTS --local=/var/lib/$NAME"
        elif [ ! -z "${OCSSERVER[$i]}" ]; then
                # Remote inventory
                OPTS="$OPTS --lazy --server=${OCSSERVER[$i]}"
        fi
        echo "[$(date '+%c')] Running $NAME $OPTS"
        /usr/bin/$NAME $FUSINVOPT --logfile=$LOG $OPTS
    fi
    ((i++))
done
echo "[$(date '+%c')] End of cron job ($PATH)"

Quote:T'as quoi dans l'historique de ta tache d'inventaire réseau dans glpi?

Si ta tache est en pull, il faut que tu lange l'agent manuellement pour qu'il aille chercher ce qu'il doit faire

La tâche est en pull oui. Si je la passe en push en mettant une date d'exécution et une fréquence, alors lorsque le serveur exécutera la tâche cron toutes les heures?

Donc si ma tâche snmpquery est planifié à 12h, lors du cron à 12h01 par exemple, il va voir qu'à 12h il avait un snmpquery à faire? Est-ce bien ça?
  Reply
#12
Oui c'est ça, par contre le mode push requiert que l'agent doit etre lancé en daemon
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#13
Il faut changer ça quelque part?
  Reply
#14
Déjà si tu n'as pas le cron glpi d'activer (via la ligne que je t'ai mis en exemple) il me semble que ca ne se lancera de toute façon pas tout seul. Sauf si je dis une bêtise alors Ddurieux me corrigera :p

Je parle bien pour la partie plugin de glpi, pas pour l'agent qui lui doit s’exécuter toutes les heure
  Reply
#15
En mettant la tâche en mode push, je lance ensuite l'agent comme ceci:

Quote:fusioninventory-agent -d

Il me répond ça:

Quote:No accountinfo file defined
Time to call Proc:Big Grinaemon
  Reply
#16
fusioninventory-agent -D permet de conserver l'agent en premier plan. Il faut cependant s'assurer qu'il n'y a pas d'agent qui tourne déjà avant. Si c'est le cas, vous devez les tuer.
Please contact Fusioninventory Partners companies if you look for a FusionInventory on site expert.
http://www.fusioninventory.org/partners/
  Reply
#17
Bon je vais essayer de recommencer. Alors, dans un premier temps, je rajoute cette ligne dans ma crontab (qui sert à?)

Quote:*/1 * * * * apache /usr/bin/php5 /var/www/glpi/front/cron.php >/dev/null

Ensuite je crée ma tâche snmp en pull, je fixe une heure (12h par exemple) et une périodicité de 24 heures.

Que dois-je ensuite faire pour qu'elle soit réalisée automatiquement et pas par le bouton "forcer l'éxecution"?

Car pour l'instant, je dois cliquer sur le bouton, puis dans mon terminal sur le serveur, lancer l'agent:

Quote:fusioninventory-agent

Help :/
  Reply
#18
Si ca fonctionne bien : */1 * * * * apache /usr/bin/php5 /var/www/glpi/front/cron.php >/dev/null

ca devrait marcher, si ça coince, tu vas dans le menu Configuration > Actions automatiques et sur l'élément taskscheduler (Fusioninventory). S'il est en cours d'execution, cliques sur la croix pour le reinitialiser
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#19
Ok je crois que ça progresse!

Donc j'ai bien créé ma tâche et le taskscheduler se lance bien toutes les minutes.

Donc à 9h30, il a exécuté son cron et a vu qu'il y avait une plage IP à scanner à 9h30.

Le problème c'est que ma tâche garde le statut "préparé" et dans la page tâche automatique, il dit qu'il a terminé le traitement, mais ma plage IP n'a pas été scannée:

http://i52.tinypic.com/24e86ms.jpg

http://i56.tinypic.com/2rhabzb.jpg
  Reply
#20
T'es en mode pull ou push sur ta tache ?
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#21
En pull.

Mais ça y est je crois que j'ai réussi!! Donc je récapitule:

- Je crée ma tâche snmpquery en pull
- Je mets une heure d'exécution (10h50 par exemple)
- Je mets une fréquence de 24h

Ensuite dans la partie actions automatiques, je mets 1 minute en fréquence.

Dans ma crontab j'ai ensuite ceci:

Quote:05 11 * * * root fusioninventory-agent
0 11 * * * apache php /var/www/html/glpi/front/cron.php >/dev/null

Ce qui veut dire que les tâches vont être préparées tous les jours à 11h, et qu'à 11h05 l'agent va scanner la plage.

Voilà ça semble marcher. Je sais pas trop si c'est très propre comme méthode. A vous de me le dire.
  Reply
#22
Si t'es en mode pull oui ca marchera comme ça Wink
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)