MRTGでサーバーの監視

MRTGを利用してサーバーの状態を監視する

MRTGでCPU負荷、メモリーの使用状況、ネットワークの負荷を監視しますDebian Sargeにインストールしました
analolgでwebのアクセスログを解析していますが、実際にどれぐらいサーバーに負荷がかかっているかなどはわかりません。そこでMRTGをインストールし、CPU負荷、メモリーの使用状況、ネットワークの負荷を経時的に監視できるようにしました。

インストールは2ステップからなります。
ステップ1、サーバーを監視するsnmpdをインストールする
ステップ2、snmpdのデーターをwebに表示できるように変換するmrtgをインストールする

●ステップ1
apt-get で snmpd と snmp をインストールします。
/etc/snmp/snmpd.conf を一部書き換えます

*以下/etc/snmp/snmpd.conf

#       sec.name  source          community
#com2sec paranoid  default         public
com2sec readonly  default         public
#com2sec readwrite default         private



# Check for loads:
load 90 90 90
#load [1MAX=100] [5MAX=100] [15MAX=100]
*ここまで


前半はたぶんデーターの読み取りの許可をしていて、後半はCPU負荷のモニタリングの設定です。
設定の変更が済めばsnmpdを起動しモニターを開始します。
/etc/init.d/snmpd start

●ステップ2
apt-get で mrtg をインストールします。
mrtgはcpu用、メモリー用、ネットワーク負荷用の合計3つの設定ファイルを作ります。
root で設定ファイル用のディレクトリーを作ります。
mkdir /etc/mrtg

○ネットワーク監視用の初期設定は自動的に作成できますが、WorkDir(web表示用のファイルを書き出すディレクトリーの指定)を書き直す必要があります。
cfgmaker public@[サーバーのIPアドレス] > /etc/mrtg/mrtg.cfg

○CPU用の初期設定です。 /etc/mrtg/cpu.cfg とします。
1分と5分の平均をsnmpdから取得します。

#ここから
WorkDir: /hogehoge/gaogao/
Language: eucjp
Options[_]: gauge,absolute,integer,growright,nopercent
Directory[_]: cpu
MaxBytes[_]: 120
YLegend[_]: CPU Load Average (%)
Legend1[_]: 1 min CPU Load Avalage
Legend2[_]: 5 min CPU Load Avalage
LegendI[_]: 1min
LegendO[_]: 5min
ShortLegend[_]: percent (%)

Target[ld]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@[IPアドレス]
Title[ld]: CPU Load Average for mogemoge
PageTop[ld]: <H1>CPU Load Average for mogemoge</H1>
 <TABLE>
   <TR><TD>System:</TD><TD>k6</TD></TR>
   <TR><TD>Maintainer:</TD><TD>webmaster</TD></TR>
   <TR><TD>Ip:</TD><TD>[IPアドレス]</TD></TR>
  </TABLE>
#ここまで


○メモリ用の初期設定です。 /etc/mrtg/memory.cfg とします。
使用メモリーとswapの使用量を表示します。

#ここから
WorkDir: /hogehoge/gaogao/
Language: eucjp
Options[_]: gauge,absolute,growright
Directory[_]: memory
YLegend[_]: Memory Used(Bytes)
ShortLegend[_]: (Bytes)
Legend1[_]: Real Memory
Legend2[_]: Swap Memory
LegendI[_]: Real
LegendO[_]: Swap
Unscaled[_]: dwmy
kMG[_]: k,M,G,T,P

Target[mem]: 1.3.6.1.4.1.2021.4.6.0&1.3.6.1.4.1.2021.4.4.0:public@[IPアドレス]
MaxBytes1[mem]: 196608 #搭載メモリー
MaxBytes2[mem]: 196608 #搭載メモリー
Title[192.168.0.3_mem]: Memory Used for mogemoge
PageTop[192.168.0.3_mem]: <H1>Memory Used for mogemoge</H1>
 <TABLE>
   <TR><TD>System:</TD><TD>k6</TD></TR>
   <TR><TD>Maintainer:</TD><TD>webmaster</TD></TR>
   <TR><TD>Ip:</TD><TD>[IPアドレス]</TD></TR>
  </TABLE>
#ここまで


"1.3.6.1.4.1.2021.4.6.0"といった訳のわからない数字はmrtgからsnmpdにどのパラメーターを要求するかを示すもので、ここを変えることで違った項目をモニターすることができます。そのあたりはわかりません。

.1.3.6.1.4.1.2021.10.1.5.1 cpu負荷の1分平均
.1.3.6.1.4.1.2021.10.1.5.1 cpu負荷の5分平均
1.3.6.1.4.1.2021.4.6.0 使用メモリー
1.3.6.1.4.1.2021.4.4.0 swap使用量

●次にWorkDir に指定されている /hogehoge/gaogao に移動し、インデックス用のページを作成します。
cd /hogehoge/gaogao
makeindex /etc/mrtg/*.cfg

あとは cron で定期的に mrtgを呼び出せば完了です。設定例を見ると5分毎に呼び出す方が多いようですがmrtg自体が負荷になるので私は20分ごとぐらいで見ています。
と思いましたが、CPU負荷は10%程度で、深夜にanalogがweb解析をするときだけ少し負荷が上がるようでした。まだまだ処理能力が余っていました。

snmpdはこの他にもディスクの使用量や、特定のデーモンの稼働状況をモニターすることができるようですし、MRTGにはある条件になったらメール送るなどのスクリプトを動かす機能も備わっているようです。



戻る
コメント・訂正がありましたらc-yun@kids-clinic.jpまで