MRTGで玄箱を監視する
MRTGのWebによると
The Multi Router Traffic Grapher (MRTG)はネットワークの負荷を監視するツールです。MRTGは現在のネットワークのトラフィックの状態を示すグラフィックイメージを含むHTMLページを生成します。何ができるかについては http://www.stat.ee.ethz.ch/mrtg/をご覧下さい。 MRTGはPerlとCで記述されており、UNIXとWindows NTで動作します。MRTGはネット上の多くのサイトで使用されています。
というわけで玄箱にMRTGを入れてみました。ネットワーク負荷だけでなく、他のツールと連携すればハードディスクの温度や使用量、CPUの負荷やメモリの空き状況などもグラフに表示してくれます。
mrtgのインストール
# apt-get install mrtg
MRTG 設定ファイルが MRTG を動作させているユーザ (大抵 'mrtg' または 'root') 以外のユーザから読み取れるようになっていた場合、このファ イルは SNMP のコミュニティ名を含んでいるので、セキュリティリスクになりえます。 特別な理由がない限り、このファイルを MRTG ユーザの所有にし、このユーザのみが読み取れるようにするのをお勧めします。 /etc/mrtg.conf を MRTG ユーザの所有にして、このユーザだけが読み取れるようにしますか? <はい> <いいえ>
ここでは <はい>を選択して進めます。
CPUやメモリの状態を監視するためにsnmpをインストール
# apt-get install snmp snmpd
/etc/snmp/snmpd.confの編集
com2sec local localhost private com2sec mynetwork 192.168.0.0/24 public group MyROGroup v1 mynetwork group MyROGroup v2c mynetwork group MyROGroup usm mynetwork group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local view all included .1 80 access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all none
/etc/mrtg.cfgの編集
WorkDir: /mnt/www/mrtg #CPUの負荷 Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:private@localhost MaxBytes[cpu]: 100 Unscaled[cpu]: dwmy Options[cpu]: gauge,absolute,nopercent,noinfo YLegend[cpu]: CPU Load(%) ShortLegend[cpu]: (%) LegendI[cpu]: 1min LegendO[cpu]: 5min Legend1[cpu]: 1min(%) Legend2[cpu]: 5min(%) Title[cpu]: CPU Activity Ratio PageTop[cpu]: <H1>CPU Activity Ratio</H1> #空きメモリ Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:private@localhost # Maximum Memory MaxBytes1[mem]: 127088 # Maximum Swap MaxBytes2[mem]: 781312 Unscaled[mem]: dwmy Options[mem]: gauge,absolute,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]: Availability Memory[MBytes] Legend2[mem]: Availability Swap[MBytes] Title[mem]: Memory Free PageTop[mem]: <H1>Free Memory</H1> #ネットワーク負荷 Target[network]: 1:public@192.168.0.101: SetEnv[network]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo" MaxBytes[network]: 1250000 Title[network]: Traffic Analysis -- debikuro PageTop[network]: <H1>Traffic Analysis -- debikuro</H1> #ハードディスク温度 Target[hddtemp]: `/usr/sbin/hddtemp /dev/hda | awk '{print $3}'` MaxBytes[hddtemp]: 100 Title[hddtemp]: HDD Temperature PageTop[hddtemp]: <h1>HDD Temperature</h1> Options[hddtemp]: absolute,gauge,nopercent,noinfo WithPeak[hddtemp]: ymw YLegend[hddtemp]: Temperature ShortLegend[hddtemp]: C LegendI[hddtemp]: Temp: LegendO[hddtemp]: Legend1[hddtemp]: HDD Temperature in Degrees Celcius Legend2[hddtemp]: #/mntの使用量 Target[hda3]: `/bin/df /dev/hda3 | /bin/grep hda3 |/usr/bin/awk '{print $5}' | /usr/bin/awk -F% '{print $1}'` MaxBytes[hda3]: 100 Title[hda3]: HDD(hda3) Remaining Amount PageTop[hda3]: <h1>HDD(hda3) Remaining Amount</h1> Options[hda3]: absolute,gauge,noo,noinfo WithPeak[hda3]: ymw YLegend[hda3]: % ShortLegend[hda3]: % LegendI[hda3]: Use LegendO[hda3]: Legend1[hda3]: Use Legend2[hda3]:
最後にIndex.htmlを作る
# indexmaker --columns=1 --addhead="<META HTTP-EQUIV=?"Content-Type?" CONTENT=?"text/html; charset=euc-jp?">" /etc/mrtg.cfg > /mnt/www/mrtg/index.html
設定はまだ見直さないといけないけど、なんとか動いているようです。