SNMP + MRTGについて †
- SNMP(Simple Network Management Protocol)は、ネットワークに接続されて機器類を監視するために
作成されたプロトコルで、このプロトコルを使用することによってハードウエアが物理的に壊れたとか、
ネットワーク回線が不調である等々をソフトウエアから見る(監視)することができる。
- MRTG(Multi Router Traffic Grapher)は、その名の通りルーターを流れるデータ量を起点単位に数値の
統計を取りグラフ化してくれるツールです。MRTGは、SNMPマネージャの機能をもっているため、SNMPが
組み込まれているハードウエアなりソフトウエアに対しエージェント機能を使用し、数値の統計を
取り込む事が可能です。使用例としては、ネットワーク監視、ディスク監視、CPU負荷監視等の用途に
使用することができます。
- 前提条件
- net-snmp, mrtgパッケージがインストール*1されていることが条件。
パッケージの確認は、rpm -q net-snmpコマンドで確認できるよ。
snmp.conf を編集する †
- /etc/snmp/snmpd.conf ファイルを編集する。
####
# First, map the community name "public" into a "security name"
# sec.name source community
#com2sec notConfigUser default public
com2sec local localhost private
com2sec mynetwork 192.168.0.0/24 public
####
# Third, create a view for us to let the group have rights to:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
#view systemview included .1.3.6.1.2.1.1
#view systemview included .1.3.6.1.2.1.25.1.1
view all included .1 80
####
# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
#access notConfigGroup "" any noauth exact systemview none none
access MyROGroup "" any noauth exact all none none
access MyRWGroup "" any noauth exact all all none
####
# Second, map the security name into a group name:
# groupName securityModel securityName
#group notConfigGroup v1 notConfigUser
#group notConfigGroup v2c notConfigUser
group MyROGroup v1 mynetwork
group MyROGroup v2c mynetwork
group MyROGroup usm mynetwork
# Check the / partition and make sure it contains at least 10 megs.
disk / 10000
mrtg.cfg を編集する †
- 通常は、/usr/bin/cfgmaker コマンドで mrtg.cfg ファイルを作成するが、
大部分を修正&追加するのでここでは1から作成してみる。基本定義部分は必ず必要だがそれ以外は
適時必要に応じて定義する。
- /etc/mrtg/mrtg.cfg ファイルを編集する。
- CPU使用率情報
### CPU Load Average / ns ###
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@192.168.0.xxx
MaxBytes[cpu]: 100
Unscaled[cpu]: dwmy
Options[cpu]: gauge, absolute, growright, noinfo, nopercent
YLegend[cpu]: CPU Load(%)
ShortLegend[cpu]: (%)
LegendI[cpu]: 1分間平均
LegendO[cpu]: 5分間平均
Legend1[cpu]: 1分間平均(%)
Legend2[cpu]: 5分間平均(%)
Title[cpu]: CPU使用率 -- ns
PageTop[cpu]: <H1>CPU使用率 -- ns</H1>
- メモリ使用率情報
### Memory Free / ns ####
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@192.168.0.xxx
MaxBytes1[mem]: 483228 ← freeコマンドによる実メモリ合計値
MaxBytes2[mem]: 983032 ← freeコマンドによるスワップ合計値
Unscaled[mem]: dwmy
Options[mem]: gauge, absolute, growright, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: 空き物理メモリ[MBytes]
Legend2[mem]: 空きスワップメモリ[MBytes]
Title[mem]: 空きメモリ量 -- ns
PageTop[mem]: <H1>空きメモリ量 -- ns</H1>
- ディスク使用率情報
### Disk Used / ns ####
Target[disk]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:public@192.168.0.xxx
MaxBytes[disk]: 100
Unscaled[disk]: dwmy
Options[disk]: gauge, absolute, growright, nopercent, noinfo
YLegend[disk]: Disk Used(%)
ShortLegend[disk]: (%)
LegendI[disk]: / Disk used
LegendO[disk]: / Disk Used
Legend1[disk]: / Disk used
Legend2[disk]: / Disk used
Title[disk]: ディスク使用率 -- ns
PageTop[disk]: <H1>ディスク使用率 -- ns</H1>
MRTGを実行する †
mrtg.cfg の定義内容について †
- 統計情報をグラフ化するための情報は、snmpエージェントより取得するか、自分で同じ書式にて
値を作成しMRTGでその情報をグラフ加工するのの2通りあります。
- 他にもグラフ化パラメタは沢山あります。下記URLを参照してみては如何?
MRTG のトップインデックスを作成する †
- 上記で作成されると下記URLで一覧化された全ての情報を参照できるはずです。
http://サーバIPアドレス/mrtg
snmp を使用したシステム監視 †
- 自分で作成したshやプログラムなどを定期的に実行し、その情報を外部から簡単に参照したいと
いう要望はどのシステムでもあります。snmp では、そういう要件を簡単にできます。
- サンプルにも書かれていますが、snmpd.conf の exec セクションに以下の様に定義します。
snmpwalk コマンドを実行すると、そのホストでコマンドが実行され結果が mib に格納されます。
※snmpwalk コマンドを連打してもある一定の時間以上は、複数回実行されないみたいです。
- こうすると
- たとえば /tmp/shtest で値を返すだけではなく、snmptrap コマンドも併用して
使うとかなり強固なシステム監視ができるかもしれません。
その他 †
- snmpwalk コマンドは、net-snmp-utils パッケージに含まれます。
参考にさせて頂いたサイト様 †
|