Ad Widget

Collapse

Utiliser une morceau d'item pour faire un item

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sycoweb
    Junior Member
    • Mar 2016
    • 23

    #1

    Utiliser une morceau d'item pour faire un item

    Bonjour,
    connaissez-vous le moyen d'utiliser comme item, une fraction d'un autre item (chaine de texte) pour le convertir en nombre ?
    Par exemple :
    Item1 : "18145 1281 6.60 8.40 30.50 15.90 5282286 0 193174 0 4187 0 6784 216 0 0 104 448"
    Item2 : 4eme nombre de Item1. Donc : 8.40

    Merci pour vos tuyaux.
    Syco
  • steve.destivelle
    Senior Member
    Zabbix Certified Trainer
    Zabbix Certified SpecialistZabbix Certified Professional
    • Feb 2017
    • 304

    #2
    Hello Syco,

    tu peux utiliser le pre-processing au niveau de ton item pour extraire la 4ème valeur.
    Utilise les items dépendants pour cela.
    Le premier item devient item Master, et ensuite tu crées un item dépendant qui va récupérer la valeur du 4ème champ.


    Steve
    "Estimez la taille de votre base de données Zabbix: http://tools.izi-it.io
    "Rejoignez le ZABBIX Discord francophone https://discordapp.com/invite/hvauXEQ"

    "izi-it.io / ZABBIX Certified Trainer / ZABBIX French Evangelist"

    Comment

    • sycoweb
      Junior Member
      • Mar 2016
      • 23

      #3
      Originally posted by steve.destivelle
      Hello Syco,

      tu peux utiliser le pre-processing au niveau de ton item pour extraire la 4ème valeur.
      Utilise les items dépendants pour cela.
      Le premier item devient item Master, et ensuite tu crées un item dépendant qui va récupérer la valeur du 4ème champ.
      https://www.zabbix.com/documentation...ependent_items

      Steve
      Bonsoir Steve,
      merci de m'aider, et désolé pour le délai de réaction, j'étais absent Semaine dernière.
      Je pense avoir compris le mécanisme de dépendance, mais je ne vois pas comment formuler le découpage pour obtenir le morceau voulu.
      J'ai utilisé pour mon item résultant :
      Type : dependant Item
      Type d'information : Texte
      Étape de prétraitement :
      Expression Rationnelle,
      Paramètres :
      ^.*WAN_IN:\([0-9]*\).*$
      \1
      NB : je veux recuperer ce qui se trouve derrière 'WAN_IN:'
      Ca ne marche pas : j'obtiens l'erreur suivante :
      Item preprocessing step #1 failed: cannot perform regular expression match on value "xxxxx xxxxxx xxxxx" of type "string": pattern does not match

      Une idée ? Ou un peu d'aide sur la syntaxe pour formuler le découpage par regex ?
      Merci d'avance.
      Syco
      Last edited by sycoweb; 02-12-2019, 22:45.

      Comment

      • steve.destivelle
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified SpecialistZabbix Certified Professional
        • Feb 2017
        • 304

        #4
        Hello,

        si tu pouvais donner la sortie que tu récupères, ça aiderait pour pouvoir te faire une expression régulière qui fonctionne.

        Steve
        "Estimez la taille de votre base de données Zabbix: http://tools.izi-it.io
        "Rejoignez le ZABBIX Discord francophone https://discordapp.com/invite/hvauXEQ"

        "izi-it.io / ZABBIX Certified Trainer / ZABBIX French Evangelist"

        Comment

        • sycoweb
          Junior Member
          • Mar 2016
          • 23

          #5
          Originally posted by steve.destivelle
          Hello,

          si tu pouvais donner la sortie que tu récupères, ça aiderait pour pouvoir te faire une expression régulière qui fonctionne.

          Steve
          Bonsoir Steve,
          la réalité, c'est ce que je donne dans mon premier message :
          Item1 : "18145 1281 6.60 8.40 30.50 15.90 5282286 0 193174 0 4187 0 6784 216 0 0 104 448"
          Item2 : 4eme nombre de Item1. Donc : 8.40

          L'erreur ci-dessus est un test, avec un message formaté différemment pour l'exemple :
          L'item prncipal est "ATM_IN:18145 ATM_OUT:1281 MBR_IN:6.90 MBR_OUT:8.30 ATT_IN:30.50 ATT_OUT:15.90 FEC_IN:8468803 FEC_OUT:0 CRC_IN:326628 CRC_OUT:0 HEC_IN:7032 HEC_OUT:0 WAN_IN:568 WAN_OUT:48 ETH_IN:0 ETH_OUT:0 SWI_IN:88 SWI_OUT:696"

          Et j'essaye de recuperer le 13ème champ, 568, derrière WAN_IN:568.
          Syco

          Comment

          • steve.destivelle
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified SpecialistZabbix Certified Professional
            • Feb 2017
            • 304

            #6
            Alors utilise l'expression suivante:
            .*WAN_IN[0-9]+)

            Steve
            "Estimez la taille de votre base de données Zabbix: http://tools.izi-it.io
            "Rejoignez le ZABBIX Discord francophone https://discordapp.com/invite/hvauXEQ"

            "izi-it.io / ZABBIX Certified Trainer / ZABBIX French Evangelist"

            Comment

            • steve.destivelle
              Senior Member
              Zabbix Certified Trainer
              Zabbix Certified SpecialistZabbix Certified Professional
              • Feb 2017
              • 304

              #7
              Bon remplace le smiley par les caractères ":" et "("
              "Estimez la taille de votre base de données Zabbix: http://tools.izi-it.io
              "Rejoignez le ZABBIX Discord francophone https://discordapp.com/invite/hvauXEQ"

              "izi-it.io / ZABBIX Certified Trainer / ZABBIX French Evangelist"

              Comment

              • sycoweb
                Junior Member
                • Mar 2016
                • 23

                #8
                Originally posted by steve.destivelle
                Bon remplace le smiley par les caractères ":" et "("
                Donc il suffit de supprimer les \ qui escapent les parentheses ?
                Et je mets bien \1 dans la deuxième case pour recuperer le premier match de la regex ?

                Comment

                • sycoweb
                  Junior Member
                  • Mar 2016
                  • 23

                  #9
                  Bonjour,
                  j'ai finalement réussi à tatons à obtenir ce que je voulais.
                  Le parametrage final :
                  ^([0-9]+\.*[0-9]* ){12}([0-9]+\.*[0-9]*).*$
                  \2
                  Et là, j'obtiens mon 13ème champ.
                  Merci beaucoup pour l'aide apportée.
                  Salutations.
                  Syco

                  Comment

                  Working...