2016-09-27 4 views
1

私はeveywhereを検索して、Vmware ESXi 5.5からホストマシンのメモリ使用量を得る方法をウェブサイト上でPHP経由で表示するが、回答が見つからない。しかし、これは私が必要なもののために働いていませんVmware ESXi 5.5からホストマシンのメモリ使用量をWebサイトにPHP経由で表示する方法は?

<?php 
class soapclientd extends soapclient 
{ 
    public $action = false; 

    public function __construct($wsdl, $options = array()) 
    { 
     parent::__construct($wsdl, $options); 
    } 

    public function __doRequest($request, $location, $action, $version, $one_way = 0) 
    { 
//  echo '<pre>' . htmlspecialchars(str_replace(array ('<ns', '></'), array (PHP_EOL . '<ns', '>'.PHP_EOL.'</'), $request)) . '</pre>'; 
     $resp = parent::__doRequest($request, $location, $action, $version, $one_way); 
     return $resp; 
    } 

} 

$client = new soapclientd('vimService.wsdl', array ('location' => 'http://10.1.0.47/sdk', 'trace' => 1)); 

try 
{ 
    $request = new stdClass(); 
    $request->_this = array ('_' => 'ServiceInstance', 'type' => 'ServiceInstance'); 
    $response = $client->__soapCall('RetrieveServiceContent', array((array)$request)); 
} catch (Exception $e) 
{ 
    echo $e->getMessage(); 
    exit; 
} 
$ret = $response->returnval; 

try 
{ 
    $request = new stdClass(); 
    $request->_this = $ret->sessionManager; 
    $request->userName = 'root'; 
    $request->password = 'abc123456'; 
    $response = $client->__soapCall('Login', array((array)$request)); 
} catch (Exception $e) 
{ 
    echo $e->getMessage(); 
    exit; 
} 

$ss1 = new soapvar(array ('name' => 'FolderTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null); 
$ss2 = new soapvar(array ('name' => 'DataCenterVMTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null); 
$a = array ('name' => 'FolderTraversalSpec', 'type' => 'Folder', 'path' => 'childEntity', 'skip' => false, $ss1, $ss2); 

$ss = new soapvar(array ('name' => 'FolderTraversalSpec'), SOAP_ENC_OBJECT, null, null, 'selectSet', null); 
$b = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'vmFolder', 'skip' => false, $ss); 

$res = null; 
try 
{ 
    $request = new stdClass(); 
    $request->_this = $ret->propertyCollector; 
    $request->specSet = array (
     'propSet' => array (
      array ('type' => 'VirtualMachine', 'all' => 0, 'pathSet' => array ('name', 'guest.ipAddress', 'guest.guestState', 'runtime.powerState', 'config.hardware.numCPU', 'config.hardware.memoryMB')), 
     ), 
     'objectSet' => array (
      'obj' => $ret->rootFolder, 
      'skip' => false, 
      'selectSet' => array (
       new soapvar($a, SOAP_ENC_OBJECT, 'TraversalSpec'), 
       new soapvar($b, SOAP_ENC_OBJECT, 'TraversalSpec'), 
       ), 
      ) 
     ); 
    $res = $client->__soapCall('RetrieveProperties', array((array)$request)); 
} catch (Exception $e) 
{ 
    echo $e->getMessage(); 
} 
echo '<pre>'; 
print_r($res); 

私はgithubの上で次のコードを見つけました。

"HostHardwareSummary"または "HostSystem" Managedオブジェクトからホストの詳細を取り戻そうとしています。 これについてどうやって行くか知っていますか?私はオブジェクト/データオブジェクトシステムの周りに私の頭を得るように思えない。 私は、CPU使用量やRAM使用量などの詳細が欲しいだけです。

This is the memory usage i want to pull using php

君たちは私が

は、あなただけのVMのプロパティのメソッドオブジェクトに横断され、コードからあなたに

+0

は_「...この私が必要なもののために働いていませんが、」_何を意味するのでしょうか?エラー?間違ったデータですか?あなたはスクリプトの作者に尋ねてみましたか? –

+0

仮想マシンのリストのみを表示しますが、ホストマシンのメモリ使用量が必要です。 誰かがすでに同じ質問をしていますが、著者からの回答はありません。 –

答えて

0

ありがとうございました、本当に感謝私を助けることができる場合。

$b = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'vmFolder', 'skip' => false, $ss); 

ホストレベルでは、ホストフォルダに移動する必要があります。 ホストシステム

$bs = array ('name' => 'DataCenterVMTraversalSpec', 'type' => 'Datacenter', 'path' => 'hostFolder', 'skip' => false, $ss); 

とアクセスホストメモリの統計:何か

host.summary.quickStats.overallMemoryUsage 
関連する問題