中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

簡単SNMP(概要編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。

SNMP(Simple Network Management Protocol)

ご存じの通り

コンピュータが健全に動作しているか否かをネットワーク越しに監視する仕組み

インフラエンジニアならば必ず使った事がある程身近な仕組みなのだが実はかなり複雑。

監視項目は膨大な数が定義されているが、ツリー状に整理されている。
例えばトップレベルのツリーはこの様な感じ。

+--iso(1)--org(3)--dod(6)--internet(1)
                              +--directory(1)
                              +--mgmt(2)
                              |  +--mib-2(1)
                              |     +--system(1)
                              |     +--interfaces(2)
                              |     +--at(3)
                              |     +--ip(4)
                              |     +--icmp(5)
                              |     +--tcp(6)
                              |     +--udp(7)
                              |     +--egp(8)
                              |     +--transmission(10)
                              |     +--snmp(11)
                              |     +--  :
                              |          
                              +--experimental(3)
                              +--private(4)
                              |  +--enterprises(1)
                              |     +--unix(4)
                              |     +--ucdavis(2021)
                              |     +--netSnmp(8072)
                              |              
                              +--security(5)
                              +--snmpV2(6)
パス指定法
フルテキスト指定
.iso.org.dod.internet.private.enterprises
コード指定
.1.3.6.1.4.1
省略形
SNMPv2-SMI::enterprises
/usr/share/snmp/mibs/SNMPv2-SMI.txt 内の定義中の enterprises の意
snmptranslate
パス定義ファイルから名前解決を行う。(digの様なもの)
$ snmptranslate  .1.3.6.1.4.1
SNMPv2-SMI::enterprises
$ snmptranslate -Of .1.3.6.1.4.1
.iso.org.dod.internet.private.enterprises

とりあえず最低限覚える

プロトコルバージョン

認証&暗号化辺りだけの問題。

SNMPが吐き出す情報はセキュリティー的に結構クリティカル。

SNMP version 3(usm)を使えばいい。
パーミッション気にせず色々試す時はv1,v2cが楽ちん。

  • SNMP version 1(=v1)
  • SNMP version 2(=v2c)
  • SNMP version 3(=usm)
SNMPの構成
Master agent
SNMPを喋る人
Sub agent
ツリーの一部を担当しMaster agentとお話しする。
Manager
いわゆるSNMPクライアント
標準MIB(mib-2)

.iso.org.dod.internet.mgmt.mib-2 (.1.3.6.1.2.1) 以下

企業拡張MIB

.iso.org.dod.internet.private.enterprises(.1.3.6.1.4.1) 以下

管理団体
IANA(Internet Assigned Numbers Authority)

IANA(http://www.iana.org/)から企業コードを取得して自由に拡張できる。
例えばIBMの企業コードは2、ciscoは9である。

IBM
.1.3.6.1.4.1.2
cisco
.1.3.6.1.4.1.9

勿論、オレオレSNMPを試したいだけなら届け出る必要はない。

OID
OID
所謂パス
(.1.3.6.1.4.1)
net-snmp

多分標準snmpd

# yum install net-snmp

とかで簡単に入る。

cpuloadやmemory情報(freeコマンド相当)はnet-snmp拡張の部分から取れる

  • .1.3.6.1.4.1.2021
  • .1.3.6.1.4.1.8072
ツリー定義
MIBと呼ばれる定義ファイル。
<定義名>.txt
MIBファイルの場所
/usr/share/snmp/mibs/*
監視例
swap usage
topで出てくる値ね。
わざわざログインしてtop確認しなくて良いという事!
$ snmpget -v1 localhost -c crumbc .1.3.6.1.2.1.25.2.3.1.6.10
HOST-RESOURCES-MIB::hrStorageUsed.10 = INTEGER: 480

次回

環境構築くらい迄の予定