web-dev-qa-db-ja.com

私のOID

自分のOIDをIANAに登録しました。この投稿では、99999と呼びます。

だから私のsnmpd.confファイル(Ubuntu 14)

次の行を追加しました

extend .1.3.6.1.4.1.99999.1 test /bin/echo hello

Oid .1.3.6.1.4.1.99999.1でsnmpgetを取得すると、helloの応答を期待して見つかりませんでした。

そこで、.1.3.6.1.4.1.99999からsnmpwalkを実行することにし、次のようになりました。

.1.3.6.1.4.1.99999.1.1.0  =  1
.1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116   =  /bin/echo
.1.3.6.1.4.1.99999.1.2.1.3.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.2.1.4.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.2.1.5.4.116.101.115.116   =  5
.1.3.6.1.4.1.99999.1.2.1.6.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.2.1.7.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.2.1.20.4.116.101.115.116  =  4
.1.3.6.1.4.1.99999.1.2.1.21.4.116.101.115.116  =  1
.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.3.1.2.4.116.101.115.116   =  hello
.1.3.6.1.4.1.99999.1.3.1.3.4.116.101.115.116   =  1
.1.3.6.1.4.1.99999.1.3.1.4.4.116.101.115.116   =  0
.1.3.6.1.4.1.99999.1.4.1.2.4.116.101.115.116   =  hello

わかりました、それは私が期待していたものではありません。古いUbuntu8サーバーでは、oid.1.3.6.1.4.1.99999.1からhelloとして応答があります。

だから問題は私のOIDの後のものは何ですか? (.2.1.2.4.116.101.115.116など)

「my」oidの後の数字には、ある種の意味/論理があると思います。

これは、snmpgetで「hello」を取り戻すために使用する正しいOIDです。

任意のポインタが役立ちます。

よろしくお願いします。

*元の投稿の後にコメントを追加*

わかりました。OIDに追加された数値のいくつかを計算しました。

OIDを見る.1.3.6.1.4.1.99999.1.2.1.2.4.116.101.115.116

最後のセクションはASCIIです116.101.115.116は「テスト」に等しい

だから真ん中のものは何ですか

2.1.2.4
2.1.3.4
2.1.4.4
2.1.5.4
and so on...

そもそもなぜこれがすべて私のOIDに追加されるのか、私はまだ混乱しています。

私の古いUbuntu8 SNMPでは、OID番号(.1.3.6.1.4.1.99999.1)でsnmpgetを実行するだけで、snmpd.confexec行でテストして結果「hello」を取得できました。

古いものにこれらすべての番号が追加されているので、snmpgetを実行するために必要なOIDをどのように知ることができますか?

同様に、一体どうやってすべてに一致する意味のある完全なMIBファイルを作成しますか?

ARGH !!! SNMPオーバーロード...

助けて!!!

3
Ian Chilvers

これは古い質問かもしれませんが、SNMPがそのように動作する理由については、そこにあるドキュメントはあまり発表されていません。私はしばらくの間この混乱に苦しんでいるので、ここに行きます。

extendスタンザは、指定したOID)に新しいMIB構造を作成し、NET-からいくつかの値を追加します。次に、SNMP-EXTEND-MIBは、extendディレクティブで指定された名前に応じてさらに値を追加します。

あなたの例では、ベースOIDは.1.3.6.1.4.1.99999.1です。SNMPdはNET-SNMP-EXTEND-MIBからMIB構造を複製し、それをこのOIDに追加します。基本的なMIBを複製しました。以下のツリーで、完全なMIBは http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXTEND-MIB.txt にあります。

.1: nsExtendNumEntries
.2: nsExtendConfigTable
  .1: nsExtendConfigEntry
    .1: nsExtendToken
    .2: nsExtendCommand
    .3: nsExtendArgs
    .4: nsExtendInput
    .5: nsExtendCacheTime
    .6: nsExtendExecType
    .7: nsExtendRunType
    .20: nsExtendStorage
    .21: nsExtendStatus
.3: nsExtendOutput1Table
  .1: nsExtendOutput1Entry
    .1: nsExtendOutput1Line
    .2: nsExtendOutputFull
    .3: nsExtendOutNumLines
    .4: nsExtendResult
.4: nsExtendOutput2Table
  .1: nsExtendOutput2Entry
    .2: nsExtendOutput2Entry 

名前の文字長が追加された後、名前はASCIIに変換され、10進値として追加されます。

したがって、OID応答.1.3.6.1.4.1.99999.1.3.1.1.4.116.101.115.116 = helloの内訳は次のとおりです。

.1.3.6.1.4.1.99999.1 : base OID

  .3                 : nsExtendOutput1Table
    .1               : nsExtendOutput1Entry
      .1             : nsExtendOutput1Line
        .4           : Length of name ("test" in this case)
          .116       : ASCII t
            .101     : ASCII e
              .115   : ASCII s
                .116 : ASCII t

また、このOIDはnsExtendOutput1Line値であり、コマンド出力の最初の行を返すため、値は「hello」です。

1
darth_static