Ad Widget

Collapse

zabbix 2.4 мониторинг vmware datastore

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • cru5ader
    Member
    • Mar 2012
    • 72

    #1

    zabbix 2.4 мониторинг vmware datastore

    Утро доброе, во 2-ом заббиксе появился мониторинг vmware из коробки, что очень радует, но я не нашел мониторинг Storage (used: free: capacity: )
    Нашел Virt VMware -> Datastore discovery, но там только Average read/write latency of the datastore {#DATASTORE}
    и то не поддерживаются Unknown hypervisor uuid.
    Как мониторите стораджи?
    Last edited by cru5ader; 13-01-2016, 08:57.
  • fragpit
    Member
    • Nov 2010
    • 32

    #2
    Добрый день, реализовал парой скриптов

    discovery

    Code:
    #!/usr/bin/perl
    
    # Used in:  "T Virt VMware Hypervisor *" templates
    
    $first = 1;
    $ip = $ARGV[0];
    
    print "{\n";
    print "\t\"data\":[\n\n";
    
    $str = `curl -skv https://$ip/mob/?moid=ha-host-datastorebrowser --user user:password 2>&1 | grep 'ManagedObjectReference:Datastore'`;
    
    (@id) = $str =~ /<a\ href="\/mob.*?">(.{3,35})<\/a>\ \(.*?\)<\/td>/g;
    (@names) = $str =~ /<a\ href="\/mob.*?">.{3,35}<\/a>\ \((.*?)\)<\/td>/g;
    
    foreach $i (0 .. $#id)
    {
        print "\t,\n" if not $first;
        $first = 0;
    
        print "\t{\n";
        print "\t\t\"{#STOREID}\":\"$id[$i]\",\n";
        print "\t\t\"{#STORENAME}\":\"$names[$i]\"\n";
        print "\t}\n";
    }
    
    print "\n\t]\n";
    print "}\n";
    и данные vmware_datastore_summary.pl

    Code:
    #!/usr/bin/perl
    
    # Used in:  "T Virt VMware Hypervisor *" templates
    
    $ip = $ARGV[0];
    $datastore = $ARGV[1];
    $param = $ARGV[2];
    
    $str = `curl -skv https://$ip/mob/?moid=$datastore\\&doPath=summary --user user:password 2>&1 | grep dataObject`;
    
    #print $str;
    
    ($res) = $str =~ /<$param>(\d*)/g;
    
    print $res;
    items соотв-но такие

    vmware_datastore_summary.pl[{$IP1},{#STOREID},capacity]
    vmware_datastore_summary.pl[{$IP1},{#STOREID},freeSpace]
    Last edited by fragpit; 13-01-2016, 12:22.

    Comment

    • cru5ader
      Member
      • Mar 2012
      • 72

      #3
      Originally posted by fragpit
      Добрый день, реализовал парой скриптов

      discovery

      Code:
      #!/usr/bin/perl
      
      # used in:  "t virt vmware hypervisor *" templates
      
      $first = 1;
      $ip = $argv[0];
      
      print "{\n";
      print "\t\"data\":[\n\n";
      
      $str = `curl -skv https://$ip/mob/?moid=ha-host-datastorebrowser --user user:password 2>&1 | grep 'managedobjectreference:datastore'`;
      
      (@id) = $str =~ /<a\ href="\/mob.*?">(.{3,35})<\/a>\ \(.*?\)<\/td>/g;
      (@names) = $str =~ /<a\ href="\/mob.*?">.{3,35}<\/a>\ \((.*?)\)<\/td>/g;
      
      foreach $i (0 .. $#id)
      {
          print "\t,\n" if not $first;
          $first = 0;
      
          print "\t{\n";
          print "\t\t\"{#storeid}\":\"$id[$i]\",\n";
          print "\t\t\"{#storename}\":\"$names[$i]\"\n";
          print "\t}\n";
      }
      
      print "\n\t]\n";
      print "}\n";
      и данные vmware_datastore_summary.pl

      Code:
      #!/usr/bin/perl
      
      # used in:  "t virt vmware hypervisor *" templates
      
      $ip = $argv[0];
      $datastore = $argv[1];
      $param = $argv[2];
      
      $str = `curl -skv https://$ip/mob/?moid=$datastore\\&dopath=summary --user user:password 2>&1 | grep dataobject`;
      
      #print $str;
      
      ($res) = $str =~ /<$param>(\d*)/g;
      
      print $res;
      items соотв-но такие

      vmware_datastore_summary.pl[{$ip1},{#storeid},capacity]
      vmware_datastore_summary.pl[{$ip1},{#storeid},freespace]
      Отлично, а что выступает в роли $ip1 ?

      Comment

      • cru5ader
        Member
        • Mar 2012
        • 72

        #4
        С позволения fragpit, я маленько переделал скрипт мониторинга Datastore, а именно сделал мониторинг vcenter потому, как предыдущий мониторинг гипервизоров некорректно выдавал значения по capacity и freespace, приходилось вручную делать обновление данных на опрашиваемом гипервизоре (void RefreshDatastoreStorageInfo).
        Описание:
        В скрипте datacenter-401 , https://vC_FQDN/mob/?moid=group-d1->childEntity ManagedObjectReference:ManagedEntity[], моем случае datacenter-401
        Сами moid Datastore ищутся, здесь:
        ищется на уровне vCenter, используется внутренний ID вида Datastore-####
        Code:
         (https://vC_FQDN/mob/?moid=datastore-####&doPath=Summary).
        Discovery
        Code:
        #!/usr/bin/perl
        
        # Used in:  "T Virt VMware Hypervisor *" templates
        
        $first = 1;
        $ip = $ARGV[0];
        
        print "{\n";
        print "\t\"data\":[\n\n";
        
        $str = `curl -skv https://$ip/mob/?moid=datacenter-401 --user uservcenter:password  2>&1 | grep 'ManagedObjectReference:Datastore'`;
        
        
        (@id) = $str =~ /<a\ href="\/mob\/\?moid\=datastore.*?">(.{3,35})<\/a>\ \(.*?\)<\/td>/g;
        (@names) = $str =~ /<a\ href="\/mob\/\?moid=datastore.*?">.{3,35}<\/a>\ \((.*?)\)<\/td>/g;
        
        foreach $i (0 .. $#id)
        {
            print "\t,\n" if not $first;
            $first = 0;
        
            print "\t{\n";
            print "\t\t\"{#STOREID}\":\"$id[$i]\",\n";
            print "\t\t\"{#STORENAME}\":\"$names[$i]\"\n";
            print "\t}\n";
        }
        
        print "\n\t]\n";
        print "}\n";

        и данные vmware_datastore_summary.pl


        Code:
        #!/usr/bin/perl
        
        # Used in:  "T Virt VMware Hypervisor *" templates
        
        $ip = $ARGV[0];
        $datastore = $ARGV[1];
        $param = $ARGV[2];
        
        $str = `curl -skv https://$ip/mob/?moid=$datastore\\&doPath=summary --user user:password 2>&1 | grep dataObject`;
        
        #print $str;
        
        ($res) = $str =~ /<$param>(\d*)/g;
        
        print $res;
        items соотв-но такие

        vmware_datastore_summary.pl[{$IP1},{#STOREID},capacity]
        vmware_datastore_summary.pl[{$IP1},{#STOREID},freeSpace]

        Comment

        • Jimson
          Senior Member
          • Jan 2008
          • 1327

          #5
          А почему не через PerlSDK?

          Comment

          • cru5ader
            Member
            • Mar 2012
            • 72

            #6
            Originally posted by Jimson
            А почему не через PerlSDK?
            Честно скажу, я в перле не спец)
            Воспользовался тем , что сделал fragpit, слегка переделав.

            Comment

            • Jimson
              Senior Member
              • Jan 2008
              • 1327

              #7
              Так это не к вопросу о перле, а про VMWare SDK

              И для Java есть, и для Python вроде как.

              Comment

              • cru5ader
                Member
                • Mar 2012
                • 72

                #8
                Originally posted by jimson
                Так это не к вопросу о перле, а про vmware sdk

                И для java есть, и для python вроде как.
                Еще раз скажу, меня этот скрипт устраивает)
                Работает и ладно, а на каком языке уже без разницы, имхо.
                Хотелось бы конечно , чтоб в заббиксе было из коробки такое "решение", но я думаю это дело времени.

                Comment

                • jovan.malesevic
                  Junior Member
                  • Jul 2016
                  • 5

                  #9
                  Здравствуйте друзья

                  если возможно установить эту скрипту на версию 3.0.1?

                  если да, то как это сделать? где она должна быть скопирована?


                  заранее благодарим вас

                  Comment

                  • cru5ader
                    Member
                    • Mar 2012
                    • 72

                    #10
                    Originally posted by jovan.malesevic
                    Здравствуйте друзья

                    если возможно установить эту скрипту на версию 3.0.1?

                    если да, то как это сделать? где она должна быть скопирована?


                    заранее благодарим вас
                    Доброе утро, скрипты должны находится, здесь:
                    /usr/lib/zabbix/externalscripts#

                    Версия 3.0.1 поддерживается, у меня zabbix_server (Zabbix) 3.0.3

                    Comment

                    • jovan.malesevic
                      Junior Member
                      • Jul 2016
                      • 5

                      #11
                      Я решил эту проблему с помощью TCP proxy для Vmware API VmBix

                      Линк:



                      большое спасибо cru5ader

                      Comment

                      • dimir
                        Zabbix developer
                        • Apr 2011
                        • 1080

                        #12
                        Support for vmware datastore capacity monitoring was added in ZBXNEXT-2010.

                        New key: vmware.hv.datastore.size[<url>,<uuid>,<datastore>,<mode>] where:
                        • url - VMware service URL
                        • uuid - VMware hypervisor host name
                        • datastore - datastore name
                        • mode:
                          • total - maximum capacity of this datastore, in bytes (default)
                          • free - available space of this datastore, in bytes
                          • pfree - available space of this datastore, in percentage
                          • uncommitted - total additional storage space, in bytes, potentially used by all virtual machines on this datastore

                        Will be available in Zabbix:
                        • 3.0.6rc1
                        • 3.2.2rc1
                        • 3.3.0

                        Comment

                        • Kos
                          Senior Member
                          Zabbix Certified SpecialistZabbix Certified Professional
                          • Aug 2015
                          • 3404

                          #13
                          О, спасибо!

                          Comment

                          Working...