Ad Widget

Collapse

Received value [] is not suitable for value type [Numeric (unsigned)]

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • kiki50
    Junior Member
    • Sep 2015
    • 3

    #1

    Received value [] is not suitable for value type [Numeric (unsigned)]

    Bonjour à tous,
    Je débute avec ZABBIX et là je butte depuis plusieurs jours sur le résultat d'un script perl qui visiblement donne un résultat inexploitable sur ZABBIX. :-\ Hors ce script fonctionne parfaitement lorsque je le test.

    Si quelqu’un pouvait me sortir de là, je lui en serai reconnaissant

    Voici le script :
    Ce script a besoin de 5 arguments pour qu'il fonctionne.
    En clair il permet de tester une connexion, si la connexion fonctionne alors il affiche la valeur "1" dans le cas contraire c'est la valeur "0"

    #!/usr/bin/perl

    use strict;
    use warnings;
    use Data:umper;
    use sapnwrfc;

    open (STDERR,">/tmp/tmp_err");

    my ($SAP_USER,$SAP_PASSWD,$SAP_CLIENT,$SAP_HOSTNAME,$ SAP_SYSNR,$conn);

    $SAP_HOSTNAME =$ARGV[0];
    $SAP_USER = $ARGV[1];
    $SAP_PASSWD = $ARGV[2];
    $SAP_SYSNR =$ARGV[3];
    $SAP_CLIENT = $ARGV[4];

    #Le eval permet de tester la fonction et de ne pas quitter le programme si la fonction echoue
    eval {
    $conn = SAPNW::Rfc->rfc_connect(
    ashost => $SAP_HOSTNAME,
    sysnr => $SAP_SYSNR,
    client => $SAP_CLIENT,
    user => $SAP_USER,
    passwd => $SAP_PASSWD,
    lcheck => 1,
    lang => 'EN',
    trace => 0,
    debug => 0
    );
    };

    print "0\n" if $@;
    print "1\n" if ! $@;


    Sous ZABBIX j'ai créé un item comme cela :


    en utilisant le type "External Check"

    check_system.pl[{$SAP_HOSTNAME},{$SAP_USER},{$SAP_PASSWD},{$SAP_SY SNR},{$SAP_CLIENT}]

    Nous retrouvons alors ici les 5 arguments nécessaires

    Et là j'ai comme erreur ceci :


    Received value [] is not suitable for value type [Numeric (unsigned)] and data type [Decimal]

    Merci bcp pour ceux qui pourront m'aider
  • tiramiseb
    Senior Member
    • Sep 2012
    • 427

    #2
    Salut,

    Vus tes deux "print" à la fin, si ton script allait jusqu'au bout il retournerait obligatoirement quelque chose, alors que là Zabbix dit qu'il n'a rien reçu.

    Il faut donc trouver pourquoi le script plante.

    Première piste qui me vient à l'esprit en lisant ton code :

    L'utilisateur de zabbix a-t-il le droit d'écrire dans le fichier /tmp/tmp_err ?

    Si tu as fait des tests en tant que root et que ce fichier existe encore avec root comme propriétaire, ça peut être une cause de non-fonctionnement du script.
    Traducteur principal de Zabbix en français ces derniers temps - Blog personnel - Boutique de domotique "DIY"

    Comment

    • kiki50
      Junior Member
      • Sep 2015
      • 3

      #3
      salut tiramiseb

      merci bcp pour ton aide. effectivement ca ne passait pas avec le user zabbix
      j'ai rajouté alors la commande BEGIN { chdir('/tmp'); }; en début du script
      et là miracle ça marche !!!
      bravo !!!!

      A+

      Comment

      Working...