SNMP:Small Network Management Protocol は、ネットワーク機器の監視を行う仕組み。
Ver.1, 2c, 3 があり、3のみ暗号化に対応している。
管理情報を発信するエージェント(サーバ:ネットワーク機器)と、
情報を収集・管理するマネージャ(クライアント:管理用システム)からなる。
監視範囲は IPアドレス(ネットワーク)で管理され、それにコミュニティ名を付ける事ができる。
エージェントによるアクセスはコミュニティ名によって行われるため、
事実上パスワードとして利用される
監視可能な情報は、MIB: Manegement Information Base / 管理情報ベース
で定義されている。
各要素(オブジェクトと呼ぶ)はツリー構造になっており、番号が付与されている。
この名称を OID: Objeect ID とよび、ドットで区切って表記する。
* OID は ISO と ITU(旧CCITT) が協力し通信規約で必要な要素を定義している。
☞OID Repository
RPCで規定された標準MIB以外に、ベンダーが独自に定義したプライベートMID, 拡張MIBも存在する。
以下は標準 MIB の例
# snmptranslate -Tp +--iso(1) | +--org(3) | +--dod(6) | +--internet(1) | +--directory(1) | +--mgmt(2) | | | +--mib-2(1) | | | +--system(1) | | | | | +-- -R-- String sysDescr(1) | | | Textual Convention: DisplayString | | | Size: 0..255 | | +-- -R-- ObjID sysObjectID(2) | | +-- -R-- TimeTicks sysUpTime(3) :
例) sysUpTime の表記方法
# yum -y install "net-snmp*" # /etc/init.d/snmpd start
# com2sec セキュリティ名 アクセス許可ホスト・ネット コミュニティ名 com2sec notConfigUser 192.16.151.0/24(自Net) lael
# group グループ名 モデル セキュリティ名 group notconfigGroup v2c notCnofigUser
# view ビュー名 incl/excl サブツリー [ マスク ] view systemview include .1.3.6.1.2.1.1 (iso.org.dod.internet.mgmt.mib-2.system) view systemview include .1.3.6.1.2.1.25.1.1 (iso.org.dod.internet.mgmt.mib-2.host)
#access | グループ名 | コンテキスト | モデル | レベル | プリフィクス | 読み | 書き | 通知 | ||||||||
access | notConfigGroup | "" | any | noauth | exact | systemview | none | none |
$ snmpwalk -v2c 192.168.151.2 -c lael (iso.org.dod.internet.mgmt.mib-2.system の値) SNMPv2-MIB::sysDescr.0 = STRING: Linux cent580.ycos.net 2.6.18-308.13.1.el5.centos.plus #1 SMP Tue Aug 21 18:54:41 EDT 2012 i686 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (65107) 0:10:51.07 SNMPv2-MIB::sysContact.0 = STRING: Root(configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: cent580.ycos.net SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (23) 0:00:00.23 SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.2 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.4 = OID: UDP-MIB::udpMIB SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.6 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.7 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.8 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.6 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.7 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.8 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (20) 0:00:00.20 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (20) 0:00:00.20 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (20) 0:00:00.20 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (20) 0:00:00.20 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (20) 0:00:00.20 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (23) 0:00:00.23 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (23) 0:00:00.23 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (23) 0:00:00.23 (iso.org.dod.internet.mgmt.mib-2.host の値) HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (90482) 0:15:04.82 HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)
エージェントとマネージャ間のやりとりは、PDU:Protocol Data Unit で行われる。
SNMP データフォーマット
マネージャ → エージェントのSNMPメッセージPDU GetRequest 指定したオブジェクトの情報取得要求 GetNextRequest 指定した階層オブジェクトの情報継続取得要求 SetRequest 指定したオブジェクトの情報変更要求 マネージャ ← エージェントのSNMPメッセージPDU GetResponse マネージャからの要求応答 Trap 自動的な情報の通知
MIB グループ。MIBツリーの特定位置から下位にあるオブジェクトの集合。
IP
HeaderUDP
HeaderSNMP Message SNMP
Ver.Community PDU
(Type, Req.ID, Err, OID, Value...)
No. | OID Name | Description |
---|---|---|
1 | system | システム情報、ホスト名、稼働時間、連絡先など |
2 | interfaces | NIC状況、送受信データ数、MTU値など |
4 | ip | IP統計、Gateway有無、TTL値、IPアドレスなど |
5 | icmp | ICMP統計、ICMP総数、Recho Reply受信数など |
6 | tcp | TCP統計、接続ステータス、ポート番号など |
7 | udp | UDP統計、データグラム送受信総数、エラー数など |
11 | snmp | SMTP統計、各種リクエスト送受信数など |
25 | snmp | システム統計、リソース監視、設定内容など |
パッケージ mrtg をインストールすると、/etc/httpd/conf.d/mrtg.conf も作成される。
但し、この Directory ディレクティブの記述を修正する必要がある。
修正前) <Directory /mrtg> 修正後) <Directory "/var/www/mrtg">Sample Image / http://localhost/mrtg/