2013-07-29 69 views
0

全部。我有一個關於snmp2_real_walk的問題。
我的PHP版本:PHP 5.1.6操作系統:Red Hat Enterprise Linux Server release 5.5。我有一個8核心remost主機。而本地主機的機器CPU數量也是8核心。
當我使用snmpwalk命令等下列:php的snmp2_real_walk函數無法獲得正確的cpu編號

[[email protected] tmp]# snmpwalk -v 2c -c public xxx.xxx.xxx.xxx .1.3.6.1.2.1.25.3.3.1 
HOST-RESOURCES-MIB::hrProcessorFrwID.768 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.769 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.770 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.771 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.772 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.773 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.774 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorFrwID.775 = OID: SNMPv2-SMI::zeroDotZero 
HOST-RESOURCES-MIB::hrProcessorLoad.768 = INTEGER: 1 
HOST-RESOURCES-MIB::hrProcessorLoad.769 = INTEGER: 1 
HOST-RESOURCES-MIB::hrProcessorLoad.770 = INTEGER: 2 
HOST-RESOURCES-MIB::hrProcessorLoad.771 = INTEGER: 1 
HOST-RESOURCES-MIB::hrProcessorLoad.772 = INTEGER: 3 
HOST-RESOURCES-MIB::hrProcessorLoad.773 = INTEGER: 1 
HOST-RESOURCES-MIB::hrProcessorLoad.774 = INTEGER: 6 
HOST-RESOURCES-MIB::hrProcessorLoad.775 = INTEGER: 13 
HOST-RESOURCES-MIB::hrProcessorLoad.775 = No more variables left in this MIB View (It is past the end of the MIB tree) 

然後我使用下面的PHP代碼:

<?php 
$a=snmp2_real_walk("58.211.72.38:161", "public", ".1.3.6.1.2.1.25.3.3.1", (500 * 1000), 1); 
print_r($a); 
?> 

它配備了結果:

Array 
(
    [HOST-RESOURCES-MIB::hrProcessorFrwID.768] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.769] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.770] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.771] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.772] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.773] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.774] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorFrwID.775] => OID: SNMPv2-SMI::zeroDotZero 
    [HOST-RESOURCES-MIB::hrProcessorLoad.768] => INTEGER: 1 
    [HOST-RESOURCES-MIB::hrProcessorLoad.769] => INTEGER: 1 
    [HOST-RESOURCES-MIB::hrProcessorLoad.770] => INTEGER: 2 
    [HOST-RESOURCES-MIB::hrProcessorLoad.771] => INTEGER: 1 
    [HOST-RESOURCES-MIB::hrProcessorLoad.772] => INTEGER: 2 
    [HOST-RESOURCES-MIB::hrProcessorLoad.773] => INTEGER: 1 
    [HOST-RESOURCES-MIB::hrProcessorLoad.774] => INTEGER: 7 
    [HOST-RESOURCES-MIB::hrProcessorLoad.775] => No more variables left in this MIB View (It is past the end of the MIB tree) 
) 

當使用snmp2_real_walk,它只能找到7個CPU核心,而不是snmpwalk的8個CPU核心。但是當我使用snmp2_real_walk查詢本地主機的CPU信息或某些遠程e主機與4核心,它會得到正確的結果。
PS:我發現這個問題,當我使用仙人掌0.8.7e。我試圖使用SNMP - Get Processor Information數據查詢來繪製8核心遠程機器。但它只能檢測7個內核。我發現仙人掌使用snmp2_real_walk函數來獲取CPU的信息。

回答

0

我已經找出問題所在。 snmp2_real_walk需要PHP> = 5.2,我的主機的PHP版本是5.1。
所以我升級了PHP並解決了問題。