2017-06-13 6 views
0

私はPythonのpysnmpライブラリを使ってsnmpデータを取得しようとしています。このデータでは、取得されなかったCOUNTER64オブジェクトが使用可能です。pysnmpでCounter64オブジェクトを取り出す方法は?

コマンド -

snmpwalk -v 1 -c public <ip address>:<port> xyz::pqr 

出力 -

.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.12.1 = Counter64: 2761552407 
.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.12.2 = Counter64: 0 
.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.12.3 = Counter64: 0 
.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.13.1 = Counter64: 2299496 
.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.13.2 = Counter64: 0 
.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.13.3 = Counter64: 0 

使用pysnmp -

from pysnmp.hlapi import * 

for (errorIndication, 
    errorStatus, 
    errorIndex, 
    varBinds) in nextCmd(SnmpEngine(), 
          CommunityData('public', mpModel=0), 
          UdpTransportTarget(('ip', port)), 
          ContextData(), 
          ObjectType(ObjectIdentity('.1.3.6.1.4.1.16136.13.5.1.200.1.51.1.12'))): 
    if errorIndication or errorStatus: 
     print(errorIndication or errorStatus) 
     break 
    else: 
     for varBind in varBinds: 
      print(' = '.join([x.prettyPrint() for x in varBind])) 

出力 -

No SNMP response received before timeout 

どのように私はCOUNTER64オブジェクトを取得できますか?私は何かが欠けているのですか?

答えて

1

SNMPバージョン2cおよび3でのCounter64値の処理のみが可能です.SNMPバージョン1では、RFCごとにサポートされていません。

pysnmpをSNMPv2cに切り替えるには、mpModel=1を設定するか、mpModelパラメータをドロップして、デフォルト(v2c)を使用してpysnmpを作成します。

ここにはdocがあります。

+0

@IIya Etingof-つまり、私が望むものはできません。 ** snmpwalk -v 1 -c public xyz :: pqr **コマンドはバージョン1です。 – kit

+0

@kit 'snmpwalk -v1 -c public demo.snmplabs.comを実行してみてください。IF-MIB :: ifXTable 'と比較し、' snmpwalk -v2c -c public demo.snmplabs.com IF-MIB :: ifXTable'と比較してください。適切なSNMPv1エンジンは、SNMPv1を介して実行しているときにCounter64値を削除するだけです。これはsnmpwalkがするものです。 –

+0

@IIya Etingof-私の場合、snmpwalk -v 1 -c public xyz :: pqrコマンドはCounter64値を削除しません。私はすべての値を取得することができます、Counter64の値だけが取得されていません。 javaでは、SNMP4JSettings.setAllowSNMPv2InV1(true)を設定できるため、これを行う他の方法はありません。プロパティをtrueに設定します。 – kit

関連する問題