Ad Widget

Collapse

Zabbix Value zu einer bestimmten Zeit abfragen

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Anginsun
    Junior Member
    • Aug 2015
    • 5

    #1

    Zabbix Value zu einer bestimmten Zeit abfragen

    Ich nutze Zabbix schon etwa 2 Jahre in der Version 2.4.2.
    Damals habe ich die Größe meines Datenspeicher (5 LUN´s) über VCenter abgefragt. Und zwar mit dem Template "znil Template VMware ESXi5.x Datenspeicher" . Vielleicht kennt ja jemand dieses Template.

    Nun habe ich ein sechste LUN hinzugefügt, aber Zabbix (bzw. die Autodiscover-Funktion) will mir einfach keine Werte darüber ausgeben.
    Die manuelle Abfrage auf dem Zabbix Server selbst gibt mir jedoch alles korrekt aus.

    {
    "{#DATASTORENAME}":"vmfs-LUN06-Datacore_900GB",
    "{#DSNUM}":"7",
    "{#DSID}":"54e7446f-1bc2ad84-a489-002655eea189"
    }


    Da ich die Werte, wie z.B. Anzahl VM, belegter Speicherplatz, freier Arbeitsplatz, für die anderen LUN bekomme, jedoch für LUN6 nicht, vermute ich, dass irgendetwas mit dem Autodiscover nicht stimmt.
    Deaktivieren und aktivieren hat auch nicht geholfen.

    weiß jemand Rat?
  • BDiE8VNy
    Senior Member
    • Apr 2010
    • 680

    #2
    Mit Autodiscover-Funktion meinst Du sicherlich Low-Level-Discovery, oder?

    Falls ja, dann schau mal noch ob Items durch die LLD rule angelegt wurden, aber aus irgend einem Grund nicht funktionieren.

    Wurden die fraglichen Items nicht angelegt, dann schau mal nach, ob ein Fehler für die LLD rule angezeigt wird.

    Unabhängig davon ob die LLD rule einen Fehler anzeigt, könntest Du ein reguläres Item auf demselben Host anlegen, welches den selben Item type und Item key wie deine LLD rule besitzt.
    Dadurch kannst Du herausfinden, was tatsächlich bei Zabbix ankommt.

    Bei Verdacht auf einen Syntaxfehler im JSON Objekt, lässt sich dieser leicht via http://jsonlint.com/ identifizieren.

    Comment

    • Anginsun
      Junior Member
      • Aug 2015
      • 5

      #3
      Also die neuen Item wurden nicht angelegt.
      Die Discovery rule wird als "Not supported" angezeigt - Fehler "Value should be a JSON object".

      Ich habe nun ein Item aus der rule manuell angelegt ( znil-esxhosts-datastores["VMwareESXDatastoreVMCount","{HOST.CONN}","{$USERN AME}","{$PASSWORD}","54e7446f-1bc2ad84-a489-002655eea189"] ) welches auch funktioniert.

      Das Einzige, was sich seit dem Anlegen des Template damals geändert hat, ist das die ESXer von 5 auf 5.5 upgedatet worden sind.

      Ich wüßte aber nicht das ich damals irgendetwas auf dem ESX ändern mußte, damit das Template funktioniert.

      Also nochmal zu Verständnis. Die Abfrage der gefundenen Datenspeicher funktioniert, nur neuer Datenspeicher wird nicht gefunden.

      Comment

      • BDiE8VNy
        Senior Member
        • Apr 2010
        • 680

        #4
        Nein, Deine LLD rule bricht ab, und versucht gar nicht erst irgendetwas anzulegen oder zu löschen.

        Die Fehlermeldung "Value should be a JSON object" deutet darauf hin, dass das resultierende JSON Objekt des LLD rule items syntaktisch nicht korrekt ist.

        Wenn Du wie bereits vorgeschlagen ein reguläres Item auf demselben Host von Deiner LLD rule anlegst, welches den selben Item type und Item key wie das Items in deiner LLD rule besitzt, dann solltest Du als Item value das vermeintliche JSON Objekt erhalten.
        Diesen Wert kannst Du dann kopieren und in einen JSON validator wie z.B. JSONLint werfen um den eigentlichen Fehler zu identifizieren.

        Comment

        • Anginsun
          Junior Member
          • Aug 2015
          • 5

          #5
          Ich habe nun, wie vorgeschlagen ein Item angelegt.
          Wiederum wird mir "Not supported" angezeigt, jetzt aber mit dem Fehler "Timeout while executing a shell script".

          Comment

          • BDiE8VNy
            Senior Member
            • Apr 2010
            • 680

            #6
            Seltsam. Prüfe vielleicht nochmal genau nach, ob wirklich alles identisch zum Item in der LLD rule ist.
            Handelt es sich hierbei um einen External check oder um einen User parameter? Letzteres lässt sich leicht via "sudo -u zabbix zabbix_agentd -t ..." oder zabbix_get prüfen.
            Bei einem External check bleibt lediglich "sudo -u zabbix /path/to/script ...."

            Default Timeout ist übrigens 3 Sekunden, bzw. 4 Sekunden für Server/Proxies neuerer Version.

            Comment

            • Anginsun
              Junior Member
              • Aug 2015
              • 5

              #7
              Es handelt sich um einen External check.
              Bei deiner Abfrage wird das richtige Ereignis angezeigt.

              sudo -u zabbix ./znil-esxhosts-datastores discoverdatastore <IP> <user> <password>
              {
              "data":
              [
              {
              "{#DATASTORENAME}":"vmfs-LUN01-Datacore_300GB",
              "{#DSNUM}":"1",
              "{#DSID}":"4fd61ea5-1308b6b5-5373-e83935204712"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN03-Datacore_900GB",
              "{#DSNUM}":"2",
              "{#DSID}":"4fd61f74-cf50773c-2f2d-e83935204712"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN00-P2000",
              "{#DSNUM}":"3",
              "{#DSID}":"536a4fcb-0398274e-30e1-002655de9bc9"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN04-Datacore_900GB",
              "{#DSNUM}":"4",
              "{#DSID}":"4fd61fa6-3d2b1016-bfea-e83935204712"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN05-Datacore_900GB",
              "{#DSNUM}":"5",
              "{#DSID}":"4fdaf2a0-2aa98907-221e-1cc1de1a9224"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN02-Datacore_300GB",
              "{#DSNUM}":"6",
              "{#DSID}":"4fd61ed8-3a816362-c091-e83935204712"
              },
              {
              "{#DATASTORENAME}":"vmfs-LUN06-Datacore_900GB",
              "{#DSNUM}":"7",
              "{#DSID}":"54e7446f-1bc2ad84-a489-002655eea189"
              }
              ]
              }


              Ich habe nun einen weiteren Host angelegt, der den selben Host abfragt und das Template findet da gar keinen Datastore mehr.
              Bei dem alten Host funktioniert die vom Template erstellten Item aber tadellos, also muss sich doch irgendwas durch das ESX-Upgrade geändert haben, daß die Discovery rule fehlschlägt.

              Übrigens das Template kann man hier runterladen:

              Comment

              • Anginsun
                Junior Member
                • Aug 2015
                • 5

                #8
                Keiner mehr eine Idee?

                Comment

                • BDiE8VNy
                  Senior Member
                  • Apr 2010
                  • 680

                  #9
                  Ich kann Dir leider nicht sagen was das Problem ist. Deine Beobachtung mit dem zusätzlichen Host bestätigt die Aussage, dass die LLD rule abbricht.
                  Eine LLD rule funktioniert immer nur ganz oder gar nicht.

                  Allerdings finde ich es seltsam, dass dieselbe Funktion in der LLD rule manuell ausgeführt zu funktionieren scheint.

                  Ich würde evtl. mal versuchen den item type der LLD rule auf 'Zabbix trapper' zu ändern und das JSON Objekt manuell via Zabbix sender an den Zabbix server zu schicken.

                  Comment

                  Working...