SNMPプロトコルの最近のブログ記事

MIB データベース

|

■Assure24 MIB Database
http://www.assure24.com/databases/snmp-mib/

■WTCS.ORG MIB Links
http://www.wtcs.org/snmp4tpc/mibs.htm

■BTmonitor 搭載テンプレート一覧 Ver1.40
http://www.ibc21.co.jp/product/product14.htm

HOST-RESOURCES-V2-MIB

|

■HOST-RESOURCES-V2-MIB
http://www.oidview.com/mibs/0/HOST-RESOURCES-V2-MIB.html

Cactiで、 Windowsの「Logged in Users」というグラフがつくれて、 それのOIDが「.1.3.6.1.2.1.25.1.5.0」だったので調べてみました。
 hrSystemNumUsers 1.3.6.1.2.1.25.1.5 OBJECT 
たぶんシステムモニタでいうと、 「Server」オブジェクトの「Logon Total」の値だと思うんですよね。

・・・何がログオンしてるんだろう。。。

GetifをつかってMIBからOIDを調べる

|

実際、OID(オブジェクト識別子)の図を思い出したり(.1.3.6.1までは覚えてるけど)
snmpwalkでちまちまと探すのも結構面倒だということで、
Windows上でGetifというsnmpツールを使うのが楽です。
http://www.wtcs.org/snmp4tpc/getif.htm
※こちらが本家のようですね。

こんな風につかえます。
getif_2.JPG

※ベンダーが配布しているMIBファイルはインストールしたディレクトリの"Mibs"の中に入れて使います。
ちなみに「MIB」っていうのはhostsファイルみたいなもので、オブジェクト識別子(OID:.1.3.6.)とオブジェクト記述子(System.Descr)の対応付けを記述してあるファイルです。
 
例:)D:\Program Files\Getif 2.3.1\Mibs\xxx.mib.txt
 そしたら、"Mibs"のなかのIndexファイルを削除して、Getifを再起動します。
 Indexファイルは起動するたびに新しく作られるのです。

このようにして、MIBを使ってOIDを取得し、
そのOIDをもとにMRTGやCactiを使ってグラフを作ります。

たとえば、Fortinet社のファイアウォールFortiGateだと、
CPU利用率(%):.1.3.6.1.4.1.12356.1.8
メモリ利用率(%):.1.3.6.1.4.1.12356.1.9
セッション数(%):.1.3.6.1.4.1.12356.1.10
とわかります。

同じことをNET SNMPのツールでやろうとすると、こんな感じです。

■システムのOIDを見たい場合
$ snmpgetnext -v 1 10.0.16.254 -c public -On .1.0
.1.3.6.1.2.1.1.1.0 = RTX1000 Rev.7.01.41 (Tue Sep 28 17:02:18 2004)
■システムのオブジェクト記述子を見たい場合
$ snmpgetnext -v 1 10.0.16.254 -c public .1.0
system.sysDescr.0 = RTX1000 Rev.7.01.41 (Tue Sep 28 17:02:18 2004)

この「.1.3.6.1.2.1.1.1.0」という文字列だとか、
「ssytem.sysObjectID.0」だとかを引き出すのが面倒なんです。
たまにしか使わないものにとっては。

■ちなみにsnmpwalkでどうやってCPUの利用率とかメモリ利用率までたどり着くかというと、 まず、上の情報を頼りに、「.1.3.6.1.2.1.1.1.0」から、「.1.0」を削ってみて、 ※末尾の.0は、ただのオフセットで終了印みたいなものです。
$ snmpwalk -v 1 10.0.16.254 -c public -On .1.3.6.1.2.1.1
.1.3.6.1.2.1.1.1.0 = RTX1000 Rev.7.01.41 (Tue Sep 28 17:02:18 2004)
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.1182.1.23
.1.3.6.1.2.1.1.3.0 = Timeticks: (1638801895) 189 days, 16:13:38.95
.1.3.6.1.2.1.1.4.0 =
.1.3.6.1.2.1.1.5.0 = cc-gw
.1.3.6.1.2.1.1.6.0 =
.1.3.6.1.2.1.1.7.0 = 12
■オブジェクト記述子だと「.sysDescr.0」を削ってこんな感じ
$ snmpwalk -v 1 10.0.16.254 -c public system
system.sysDescr.0 = RTX1000 Rev.7.01.41 (Tue Sep 28 17:02:18 2004)
system.sysObjectID.0 = OID: enterprises.1182.1.23
system.sysUpTime.0 = Timeticks: (1638956372) 189 days, 16:39:23.72
system.sysContact.0 =
system.sysName.0 = cc-gw
system.sysLocation.0 =
system.sysServices.0 = 12
ここらへんで、この機械(YAMAHA RTX1000)のEnterprise OIDは「.1.3.6.1.4.1.1182」なんだなあ、とくらいに思ってください。 得られたOID「 .1.3.6.1.4.1.1182」に対してsnmpwalkをやってみます。
$ snmpwalk -v 1 10.0.16.254 -c public .1.3.6.1.4.1.1182
enterprises.1182.2.1.1.0 = 5
enterprises.1182.2.1.2.0 = 16777216
enterprises.1182.2.1.3.0 = 4194304
enterprises.1182.2.1.4.0 = Gauge32: 42
enterprises.1182.2.1.5.0 = Gauge32: 1
enterprises.1182.2.1.6.0 = Gauge32: 1
enterprises.1182.2.1.7.0 = Gauge32: 3
enterprises.1182.2.1.8.0 = Gauge32: 0
enterprises.1182.2.1.9.0 = Gauge32: 0
enterprises.1182.2.1.10.0 = Gauge32: 0
enterprises.1182.2.1.11.0 = Gauge32: 0
enterprises.1182.2.2.1.0 = "internal"
enterprises.1182.2.2.2.0 = "0" Hex: 30
enterprises.1182.2.2.3.0 = "RTX1000 Rev.7.01.41 (Tue Sep 28 17:02:18 2004)"
enterprises.1182.2.2.4.0 = Timeticks: (1638967882) 189 days, 16:41:18.82
enterprises.1182.2.2.5.0 = 1
enterprises.1182.2.2.6.0 = 1
enterprises.1182.2.2.7.0 = IpAddress: 0.0.0.0
enterprises.1182.2.2.8.0 = 1
enterprises.1182.2.2.9.0 = 2
enterprises.1182.2.2.10.1.1.1 = 1
enterprises.1182.2.2.10.1.1.2 = 2
長いので、以下略

とか何とかやってるのもかったるいでしょう。
ということで、
1.MIBを持ってくること。(メーカーのサポートサイトや、マニュアルCDなんかについてます。)
2.MIBをGetifにかけて、OIDを調べること
というのがよいパターンだと思います。

※一応、snmptranslateというコマンドでコンソール上に木構造を表現できるのですが、  どうも自ホストにしか効かないコマンドのようです。
$ snmptranslate -Tp -OS system
+--system(1)
   |
   +-- -R-- String    sysDescr(1)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -R-- ObjID     sysObjectID(2)
   +-- -R-- TimeTicks sysUpTime(3)
   +-- -RW- String    sysContact(4)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -RW- String    sysName(5)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -RW- String    sysLocation(6)
   |        Textual Convention: DisplayString
   |        Size: 0..255
   +-- -R-- INTEGER   sysServices(7)
   |        Range: 0..127
   +-- -R-- TimeTicks sysORLastChange(8)
   |        Textual Convention: TimeStamp
   |
   +--sysORTable(9)
      |
      +--sysOREntry(1)
         |  Index: sysORIndex
         |
         +-- ---- INTEGER   sysORIndex(1)
         |        Range: 1..2147483647
         +-- -R-- ObjID     sysORID(2)
         +-- -R-- String    sysORDescr(3)
         |        Textual Convention: DisplayString
         |        Size: 0..255
         +-- -R-- TimeTicks sysORUpTime(4)
                  Textual Convention: TimeStamp

SNMPの概要

|

基本的にUDPを使う

■マネージャ(ネットワーク管理ステーション、NMS)
 管理アプリケーションのこと。MRTGなど。

■エージェント
 管理対象のこと。ルーターとかスイッチなどに実装されているモジュール
 MIBを検索したり、情報を更新したりして機器の設定を変更したりする。

■管理情報
 管理情報の集合体はMIB(Management Information Base)と呼ばれる
 ベンダ独自のMIBもある。

■コミュニティ

【管理情報の構造】
a.オブジェクト識別子(OID)
 これらは階層の木構造になっている

b.オブジェクトシンタックス
c.オブジェクトの符号化ルール

【SNMP】
NMSとエージェントの通信はメッセージの交換によって行われる。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちSNMPプロトコルカテゴリに属しているものが含まれています。

前のカテゴリはNagiosです。

次のカテゴリはsyslogです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

SNMPプロトコル: 月別アーカイブ

Powered by Movable Type 4.1