Как я могу получить всю информацию о моих vcenters в vmware vsphere с pyvmomi - PullRequest
1 голос
/ 29 января 2020

В настоящее время я могу получить информацию обо всех vms, всех хостах, всех «кластерах» (центрах данных?) И всех хранилищах данных. Есть ли что-нибудь еще, любой другой управляемый тип данных, который мог бы предоставить полезную информацию.

Моя цель - предоставить моей компании информацию о машинах и использовании, но мой побочный проект - собрать как можно больше информации, чтобы я мог Сопоставьте его с известными сбоями и используйте машинное обучение, чтобы определить, когда системы или приложения могут выйти из строя.

Чтобы было ясно, сейчас я собираю информацию о vms

Кроме того, операторы печати просто там, чтобы я мог видеть, что я хочу поместить в базу данных и что я не могу использовать.

def vm_and_up():
    viewTypeComputeResource = [vim.ComputeResource]
    containerView = content.viewManager.CreateContainerView(container, viewTypeComputeResource, recursive)  # create container view
    clusters = containerView.view
    for cluster in clusters:
        print(cluster.name)
        print(cluster.summary)
        hosts = cluster.host
        host_count = 0
        for hosts2 in hosts:
            host_count = host_count +1
            hosts_list.append(hosts2.name)
            #print(hosts2.name)
            vms = hosts2.vm
            #print('Cluster: '+cluster.name)
            #print('Host: '+hosts2.name)
#            vm_count = 0
            for vm in vms:
                print('Capability: '+ str(vm.capability))
                print('Datestore: '+ str(vm.datastore))
                #print('Config: '+ str(vm.config))
                print('Guest: '+str(vm.guest.disk))
                print('GuestDiskInfo')
                print('GuestFullName: '+str(vm.guest.guestFullName))
                print('GuestFullName')
                print('Guest: '+str(vm.guest.hostName))
                print('GuestHostName')
                print('Guest: '+str(vm.guest.ipAddress))
                print('GuestIpAddress')
                print('Guest: '+str(vm.guest.net))
                print('GuestNic')
                print('Guest: '+str(vm.resourcePool))
                print('GuestResourcePool')
                print('Guest: '+str(vm.runtime))#
                print('GuestRuntime')#
                print('Guest: '+str(vm.layout))#
                print('GuestLayout')#
                print('Guest: '+str(vm.resourcePool))
                print('GuestResourcePool')
                #print(vm.config.hardware)

аналогично для центров обработки данных, которые я использую

def see_datacenters():
    viewTypeDatacenter =[vim.Datacenter]
    containerviewDatacenter = content.viewManager.CreateContainerView(container, viewTypeDatacenter, recursive)
    datacenters = containerviewDatacenter.view
    print(len(datacenters))
    for data_center in datacenters:
        data_center_name = str(data_center.name)
        print(data_center_name)
        print('data_center_name')        
        print(data_center.overallStatus)
        print('data_center.overallStatus')
        print(data_center.configStatus)
        print('data_center.configStatus')
        print(data_center.configIssue)
        print('data_center.ConfigIssue')
        print(data_center.vmFolder)
        print('data_center.vmFolder')
        print(data_center.recentTask)
        print('data_center.recentTask')
        print(data_center.configuration)
        print('data_center.configuration')
        print(data_center.datastore)

и для хранилищ данных

def see_datastores():
    viewTypeDatastore = [vim.Datastore]
    containerViewDatastore = content.viewManager.CreateContainerView(container, viewTypeDatastore, recursive)  # create container view
    datastores = containerViewDatastore.view
    print(len(datastores))
    print(datastores)
    print('datastores')
    for datastore in datastores:
        print(datastore.name)
        print('name')
        print(str(datastore.browser))
        print('Browser')
        print(str(datastore.capability))
        print('Capability')
        print(str(datastore.info))
        print('Info')
        print(str(datastore.iormConfiguration))
        print('IormConfig')
        print(str(datastore.summary))
        print('Summary')
        print(str(datastore.overallStatus))
        print('Status')
        global datastore_summary_raw
        datastore_summary_raw = datastore.summary

для каждого из них, я создаю представление контейнера с использованием таких типов просмотра, как [vim.Datastore], [vim.Datacenter] и [vim.ComputeResource]

Есть ли другие важные вопросы, которыми я должен заниматься? В частности, управлять типами объектов https://vdc-download.vmware.com/vmwb-repository/dcr-public/6b586ed2-655c-49d9-9029-bc416323cb22/fa0b429a-a695-4c11-b7d2-2cbc284049dc/doc/index-mo_types.html или https://pubs.vmware.com/vi-sdk/visdk250/ReferenceGuide/index-mo_types.html

...