snmp

更新日2011-10-23 (日) 06:44:14

インストール

# apt-get install net-snmp
# apt-get install net-snmp-utils

必要なら

# apt-get install net-snmp-devel

snmpdの設定ファイルは /etc/snmp/snmpd.confで

com2secはSNMP要求の送信元ネットワークとコミュニティ名という二つの値の組み合わせでセキュリティ名を定義します。

com2sec [セキュリティ名] [リクエスト元アドレス] [コミュニティ名]

ex)

##com2sec notConfigUser  default       public
com2sec local localhost        localism
com2sec snet  192.168.10.0/24  ism

コミュニティ名がismで192.168.10.0/24からアクセスがあったとき、セキュリティ名に snetがあったときだけアクセスを許可する。

groupは、上記で設定したセキュリティ名とSNMPのセキュリティモデルの二つの値の組 み合わせでグループ名を定義します。

そして、ここで定義したグループ名毎にどのようなアクセスを認めるのかを後述する access行でのアクセス許可の設定で使用します。

セキュリティモデルとしてはv1, v2, usm が存在し、それぞれ、SNMPプロトコルヴァー ジョン1,2,3に対応しています

group [グループ名] [セキュリティモデル] [セキュリティ名]

ex)

##group   notConfigGroup v1           notConfigUser
##group   notConfigGroup v2c           notConfigUser

group   local_group   v1    local
group   local_group   v2c   local
group   local_group   usm   local
group   secure_group  v1    snet
group   secure_group  v2c   snet
group   secure_group  usm   snet

view行ではMIBツリーの特定範囲をview名で定義します。

view [view名] [included/excluded] [MIBオブジェクトID]

included:指定範囲を示す
excluded:指定範囲以外を示す

ex)

##view    systemview     included      system
view    view_all   included   .1
view    view_mib2  included   .1.3.6.1.2.1

view_all -> .iso(1)以下の全情報(実質的には.iso(1).org(3).dod(6).internet(1))

view_mib2 -> .iso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1)以下の全情報

access行はアクセス許可のための設定です。上記までに設定した、group名、及び、 view名を利用し、それぞれのグループに対して、どういうアクセスを認めるのかを 設定します。

access [グループ名] [Context] [モデル名] [認証指定] [Contextマッチ方法] [Read権限] [Write権限] [通知] モデル名:any ->v1,v2c,usm全て含む

ex)

##access  notConfigGroup ""      any       noauth    exact  systemview none none
access local_group  "" any noauth exact view_all  none none
access secure_group "" any noauth exact view_mib2 none none

以下のコメント外さないとVine5x(/dev/sda)ではHDD情報を表示しなく以下のエラーがでた

$ snmpwalk -Os -c private -v 2c localhost  .1.3.6.1.4.1.2021.9
dskTable = No Such Object available on this agent at this OID
# Check the / partition and make sure it contains at least 10 megs.

##disk / 10000
disk /

起動

# /etc/rc.d/init.d/snmpd start 

Mibデータの読み出し

$ snmpwalk -Os -c private -v 2c localhost 

snmpwalk -Os -c private -v 2c localhost | more
sysDescr.0 = STRING: Linux atom.ism21.net 2.6.27-43vl5 #1 SMP Sat Aug 15  22:17:5
5 JST 2009 i686
sysObjectID.0 = OID: netSnmpAgentOIDs.10
sysUpTimeInstance = Timeticks: (340983) 0:56:49.83
sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
sysName.0 = STRING: atom.ism21.net
sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
sysORLastChange.0 = Timeticks: (3) 0:00:00.03
sysORID.1 = OID: snmpFrameworkMIBCompliance
sysORID.2 = OID: snmpMPDCompliance
sysORID.3 = OID: usmMIBCompliance
sysORID.4 = OID: snmpMIB
sysORID.5 = OID: tcpMIB
sysORID.6 = OID: ip
sysORID.7 = OID: udpMIB
sysORID.8 = OID: vacmBasicGroup
sysORDescr.1 = STRING: The SNMP Management Architecture MIB.
sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.
sysORDescr.3 = STRING: The management information definitions for the SNMP  User-based Security Model.
sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
sysORDescr.5 = STRING: The MIB module for managing TCP implementations

(略)

たとえばHDDに関することは

$ snmpwalk -Os -c private -v 2c localhost .1.3.6.1.4.1.2021.9    dskIndex.1 =  INTEGER: 1
dskPath.1 = STRING: /
dskDevice.1 = STRING: /dev/md0
dskMinimum.1 = INTEGER: 100000
dskMinPercent.1 = INTEGER: -1
dskTotal.1 = INTEGER: 305401344
dskAvail.1 = INTEGER: 286846208
dskUsed.1 = INTEGER: 3041588
dskPercent.1 = INTEGER: 1
dskPercentNode.1 = INTEGER: 1
dskErrorFlag.1 = INTEGER: noError(0)
dskErrorMsg.1 = STRING:

MRTGで利用するとき

mrtg.cfg を以下のようにする

HDD使用量表示は以下のようにする。snmapに同じMIB情報をしていするのは、MRTGでは2つのデータが必要なようなので2つ目はダミー

#-----------------------------------------------------------------
# ディスク使用状況
#-----------------------------------------------------------------
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:private@local

host:

##Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:private@localhost:
##SetEnv[disk]: URL="http://localhost/mrtg/disk.html"
MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, nopercent, noinfo
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk used
##LegendO[disk]: /boot Disk Used
LegendO[disk]: /  Disk Used
Title[disk]: ディスク使用率  NET-SNMP + MRTG
PageTop[disk]: <H1>ディスク使用率  NET-SNMP + MRTG</H1>

元ページ

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS