IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

[munin] problème de plugin


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut [munin] problème de plugin
    Salut,


    Je suis en train de me tailler un plugin en perl pour grapher la température des disques durs sous Munin...

    le script marche bien depuis un terminal sous l'utilisateur qui sera utilisé par le démon munin... mais en mode démon, le script ne marche pas (cf log)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mai 16 12:30:37 [26679] - Configuring service: localhost.localdomain->hddtemp
    mai 16 12:30:37 [26679] - Configured service: localhost.localdomain -> hddtemp (0.04 sec)
    mai 16 12:30:37 [26679] - Fetching service: localhost.localdomain->hddtemp
    mai 16 12:30:49 [26679] - Client reported timeout in fetching of hddtemp
    mai 16 12:30:49 [26679] - Fetched service: localhost.localdomain -> hddtemp (12.01 sec)
    voici le code du plugin (pas encore définitif... faudra que je gère différents disques, mais ça sera pour plus tard )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    my $program = '/usr/sbin/hddtemp';
     
    if ( exists $ARGV[0] and $ARGV[0] eq "autoconf" )
    {
            if (-e $program and -x $program) {
                    print "yes\n";
                    exit 0;
            } else {
                    print "unable to find or execute $program\n";
                    exit 1;
            }
    }
     
    if ( exists $ARGV[0] and $ARGV[0] eq "config" ) {
            print "graph_title Hard Disk Temperature\n";
            print "graph_args --base 1000 -l 0\n";
            print "graph_vlabel temp in °C\n";
            print "graph_category sensors\n";
            print "sda.label /dev/sda\n";
            print "connections.type COUNTER\n";
            exit 0;
    } 
     
    my $args = '/dev/sda | cut -d\':\' -f3  | cut -d\' \' -f2 | awk -F \'°\' \'{print $1}\'';
    exec("/bin/echo -n 'sda.value ' ; /usr/bin/sudo $program $args");

    sachant que le démon munin, fais une boucle dans laquelle il se fork puis exec sur ses plugins pour récupérer les infos... d'où le problème peut-il venir selon vous ?

    par avance
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Pour l'instant je n'ai pas d'idée (on sait que le problème vient de l'exec(), mais pourquoi...), mais un petit détail pratique parfois, tu peux réécrire ton avant-dernière ligne comme ceci :
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    my $args = q(/dev/sda | cut -d':' -f3  | cut -d' ' -f2 | awk -F '°' '{print $1}');

    --
    Jedaï

  3. #3
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    merci pour la remarque... en effet, c'est plus propre

    pour infos, j'ai aussi essayé en remplaçant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec("/bin/echo -n 'sda.value ' ; /usr/bin/sudo $program $args");
    par cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print "sda.value ";
    system("/usr/bin/sudo $program $args");

    ça fonctionne bien quand je suis en terminal... mais en plugin ça plante également
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  4. #4
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    Ne s'agit-il pas d'un problème de droits ?

    Quand tu le lances depuis le terminal, je suppose que tu n'utilises pas le même utilisateur que celui qui instancie ton serveur cgi (généralement l'utilisateur www ou qqch dans le genre).

    Il faut que tu paramètres ton user qui instancie le serveur pour qu'il ait les droits de faire un sudo, ou de lancer la commande que tu veux utiliser...

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    en fait, il y a un script munin-update exécuté via cron par ll'utilisateur munin

    et je teste en mode console avec l'utilisateur munin aussi

    je me logue ainsi
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 17
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut
    Bonjour as-tu trouvé une solution?
    j'en suis au même point
    tous marche impec en console avec l'utilisateur munim mais les valeures restent toujours à nan
    [edit ] le même problème de time out[/edit]

Discussions similaires

  1. Problème avec plugin PHPEclipse
    Par t_om84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/12/2006, 14h38
  2. Réponses: 8
    Dernier message: 02/02/2006, 18h07
  3. [Struts]Problème Création Plugin Struts
    Par DarkWark dans le forum Struts 1
    Réponses: 3
    Dernier message: 28/11/2005, 18h16
  4. [Eclipse 3.0] Problème de plugins ??
    Par ch5oun dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 21/09/2004, 16h09
  5. [Plugin] Problème initialisation plugin ResourcesPlugin
    Par Michael I. dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 06/02/2004, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo