MRTGでプロセスの監視

Last-modified: 2008-11-08 (土) 14:46:02 (3301d)

設定手順

net-snmp-utilsのインストール

SNMPエージェントからSNMPオブジェクトを取りだすツール、snmpwalkをインストールする(しなくてもよいが確認用に)。 Vine3.1の場合、net-snmp-utilsに入っている。

# apt-get install net-snmp-utils
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  net-snmp-utils
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
0B/174kB のアーカイブを取得する必要があります。
展開後に 375kB のディスク容量が追加消費されます。
変更を適用しています...
Preparing...                ########################################### [100%]
   1:net-snmp-utils         ########################################### [100%]
完了

snmpd.confを編集

今回はhttpdのプロセスを監視することにする。

# vi /etc/snmp/snmpd.conf

追加

proc httpd

プロセス名として指定できるのは

# ps -e

で表示される名前。

snmpd再起動

# /etc/init.d/snmpd restart
snmpdを停止中:                                             [  OK  ]
snmpdを起動中:                                             [  OK  ]

確認

snmpwalkでSNMPエージェントから情報が得られるか確認する。プロセスの情報を得るには、MIB オブジェクト識別子.1.3.6.1.4.1.2021.2.1を指定する。

# snmpwalk -v 1 192.168.0.2 -c public .1.3.6.1.4.1.2021.2.1
UCD-SNMP-MIB::prIndex.1 = INTEGER: 1
UCD-SNMP-MIB::prNames.1 = STRING: httpd
UCD-SNMP-MIB::prMin.1 = INTEGER: 0
UCD-SNMP-MIB::prMax.1 = INTEGER: 0
UCD-SNMP-MIB::prCount.1 = INTEGER: 11
UCD-SNMP-MIB::prErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::prErrMessage.1 = STRING:
UCD-SNMP-MIB::prErrFix.1 = INTEGER: 0
UCD-SNMP-MIB::prErrFixCmd.1 = STRING:

もし正常に取得できない場合は、prErrorFlag.1 = INTEGER:が1になり、prErrMessage.1 = STRING:にエラーメッセージが出力される。その場合は、snmpd.confを見直す。

プロセス数だけを取得するには.5.1を追加する。

# snmpwalk -v 1 192.168.0.2 -c public .1.3.6.1.4.1.2021.2.1.5.1
UCD-SNMP-MIB::prCount.1 = INTEGER: 11

プロセス数:11

ちなみに、snmpd.confに

proc httpd
proc named
proc inetd
:
:

などと複数書いた場合は、上から順番に

.5.1
.5.2
.5.3
:
:

となる。

正常に取得できたらmrtg.cfgを編集する。

mrtg.cfgの編集

# vi /usr/local/mrtg-2/lib/mrtg.cfg

追加

### HTTPD proc ###
Target[httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.5.1:public@192.168.0.2
MaxBytes[httpd]: 16
Unscaled[httpd]: dwmy
Options[httpd]: gauge, absolute, growright, nopercent, noinfo
YLegend[httpd]: httpd process
ShortLegend[httpd]: proc
LegendI[httpd]: httpd proc
LegendO[httpd]: httpd proc
Legend1[httpd]: httpdプロセス数
Legend2[httpd]: httpdプロセス数
Title[httpd]: httpd プロセス数
PageTop[httpd]: <H1>httpd プロセス数</H1>

MRTG実行

# /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/lib/mrtg.cfg

うまくいけばこのように表示される。

リンク

http://www.itmedia.co.jp/help/howto/linux/0007master/06/20.html