2017-03-15 48 views
0

コーデックスのAlpha Technologiesとのインターフェイスには、SNMPプロトコルを使用する必要があります。私は、いくつかの側面を動作させるために、pysnmpのドキュメンテーションとサンプルを調べてきました。アルファテクノロジの外部MIBファイルを使用する際には、特に問題があります。私はこれを行うとき、それは正しく、正しいOID出力しpysnmpでカスタムMIBファイルをロードしようとしてエラーが発生しました

from pysnmp.hlapi import * 
from pysnmp.smi import builder, view, compiler, rfc1902 
from pysnmp import debug 
#debug.setLogger(debug.Debug('all')) 
debug.setLogger(debug.Debug('msgproc', 'mibbuild')) 
mibBuilder = builder.MibBuilder() 

mibViewController = view.MibViewController(mibBuilder) 
test = ObjectIdentity('SNMPv2-MIB', 'sysDescr').addAsn1MibSource('file:///C:/Users/SLN9000/Repositories/cordex/MIB/@[email protected]') 
test.resolveWithMib(mibViewController) 
test.getOid() 

:しかし

>>> ObjectName('1.3.6.1.2.1.1.1') 

をデバッグログを見ると、それはコンパイルMIBを使用しているように見える私の最初のテストは以下の通りでした「C:/ Users/SLN9000/Repositories/cordex/MIB/@ mib @」にあるASN.1ファイルの代わりに、pysnmpライブラリのファイルを使用します。私はアルファテクノロジ

from pysnmp.hlapi import * 
from pysnmp.smi import builder, view, compiler, rfc1902 
from pysnmp import debug 
#debug.setLogger(debug.Debug('all')) 
debug.setLogger(debug.Debug('msgproc', 'mibbuild')) 
mibBuilder = builder.MibBuilder() 

mibViewController = view.MibViewController(mibBuilder) 
test = ObjectIdentity('03409602D__Alpha_System_Controller', 'dcpower', 1).addAsn1MibSource('file:///C:/Users/SLN9000/Repositories/cordex/MIB/') 
test.resolveWithMib(mibViewController) 
test.getOid() 

からMIBファイルについても同様に何かをするとき それはエラー

pysnmp.smi.error.MibNotFoundError: 03409602D__Alpha_System_Controller compilation error(s): missing

それは私が間違ってやっているものを私に完全にはっきりしていないとステップtest.resolveWithMib(mibViewController)で失敗しました。私が使用しているMIBファイルはhereからダウンロードできます。どんな助けもありがとう!

答えて

-1

03409602D__Alpha_System_Controllerに出荷されるMIBの標準名のようです(このファイルの最初の行から)AlphaPowerSystem-MIBです。問題を単純化するために、このファイルの名前を正式な名前に変更する方がよいと思います。

.zipアーカイブ内のその他のファイルは、標準のSNMP MIBのコピーであるようです。 pysnmpはこれらを独自に使用しても構いません。これらのコアMIBは実装固有のものです。したがって、そのzipから残りのMIBは必要ありません。

あなたが上記で行われたら、あなたはこのようにMIBのクエリを実行することができるはずです。

test = ObjectIdentity('AlphaPowerSystem-MIB', 'dcpower', 1).addAsn1MibSource('file:///C:/Users/SLN9000/Repositories/cordex/MIB/') 

それはpysnmpに基づいていますsnmptranslate.pyツールと連携して動作します。

$ snmptranslate.py -On AlphaPowerSystem-MIB::dcpower 

1.3 .6.1.4.1.7309.4

+0

これはまだ動作しません。以前と同じエラーで失敗しています。デバッグ行を調べると、pycファイル(AlphaPowerSystem-MIB.pycファイルのアクセスエラー:[Errno 2])が見つかりません。 – Zafi

+0

私はsnmptranslate.pyツールを見ていますそこからエンジニアリングしてください。 – Zafi

+0

あなたが言及しているsnmptranslate.pyツールでさえ動作していないようですが、エラーが出ます:エラー:AlphaPowerSystem-MIBコンパイルエラー:なし – Zafi

0

現時点での回避策は、mibdump.pyツールを使用してすべてのMIBファイルを手動でコンパイルすることです。本当にスケーラブルではありませんが、少なくとも私は自分の仕事を続けることができます。

関連する問題