SNMP+MRTG 再設定
MRTGを設定したはいいんですが、CPU使用率、トラフィック、HDD温度の3つを記録してるはずなのに・・・
- CPU、トラフィック、全く記録されず
- HDD温度、33度固定
というわけの分からない事態に・・・
MRTGの動作ログを見てみる限りでは、SNMPのレスポンスがないとか云々。
・・・ここからが地獄の再設定でした_| ̄|○
とりあえず、非常に汚いログになってしまったので、うまくいった方法だけを抜粋。
まずは何はともあれ、SNMPの消去。
設定ファイルなども全くない、クリーンな状態を復元。
# apt-get --purge remove snmpd snmp
次に、SNMPをソースコードから全部新規にインストール。
というわけで、必要パッケージは
- zlib
- libpng
- GD
を順に入れた上で(依存関係上)、
とインストールします。
流石にzlibぐらい入ってるだろうと思ったら、結果だけをいうなら入ってなかったという始末・・・
わけわかんねぇよ_| ̄|○
zlib Home Site - zlib-1.2.3
# tar zxvf zlib-1.2.3.tar.gz # cd zlib-1.2.3 # ./configure # make # make install
続いてlibpngのインストール
libpng Home Page - libpng-1.2.15.tar.gz
# tar zxvf libpng-1.2.15.tar.gz # cd libpng-1.2.15 # ./configure # make # make install
更に、GDのインストール
Main Page - LibGD(GD Graphics Library) - gd-2.0.33.tar.gz
# tar zxvf gd-2.0.33.tar.gz # cd gd-2.0.33 # ./configure # make # make install
これだけやって、やっとSNMPのインストールに入れます・・・
道のりが長すぎる・・・(;´Д`)
SNMPの最新版は Net-SNMP と呼ばれるやつですが、どうもウチの環境ではうまくインストールされないようで、一昔前のバージョンの、 ucd-snmp というやつを入れました。
Net-SNMP - ucd-snmp-4.2.7.tar.gz
# tar zxvf ucd-snmp-4.2.7.tar.gz # cd ucd-snmp-4.2.7 # ./configure # make # make install
これがまたconfigureからmakeから、とんでもなく時間がかかったわけで。。。_| ̄|○
とりあえず何とかインストール完了したので、あとは最期にMRTGのインストール。
MRTG - Tobi Oetiker's MRTG - The Multi Router Traffic Grapher - mrtg-2.15.0.tar.gz
# tar zxvf mrtg-2.15.0.tar.gz # cd mrtg-2.15.0 # ./configure # make # make install
全体としても、作業は単純、落として解凍してコンフィグしてコンパイルしてインストールするだけ。
ただ、とてつもなく時間はかかりました_| ̄|○
で、あとは、SNMPとMRTGの設定。
SNMPのアーカイブの中から EXAMPLE.conf をコピーし、snmpd.confとリネームして設定します。
/usr/local/sbin/snmpd (←snmpdデーモン本体)
/usr/local/share/snmpd.conf (←設定ファイル、EXAMPLE.confをここにコピーする)
.confファイルは中を読めば大体分かると思うんで、ある程度省略。
とりあえず、ウチの設定は
# sec.name source community com2sec local localhost KURO-BOX # sec.model sec.name group localgroup v1 local group localgroup v2c local group localgroup usm local # incl/excl subtree mask view all included .1 80 # context sec.model sec.level match read write notif access localgroup "" any noauth exact all none none access localgroup "" any noauth exact all all none disk / 10000 disk /mnt 10000
とりあえず最低限にこれだけ。
これがセキュリティ上いいのか悪いのかはもうあまりこだわってません(;´Д`)
というか、これ以上こんがらがらせるのがしんどいです_| ̄|○
で、あとはこれを起動に登録。
#!/bin/sh # ucp-snmp RunningPids=`/bin/ps -e | /usr/bin/awk '$4~/^snmpd/ {print $1}'` OPTIONS="-Lsd -Lf /var/log/snmpd.log -p /usr/local/sbin/snmpd -a" case "$1" in 'start') echo "Starting the snmpd daemon." /usr/local/sbin/snmpd ;; 'stop') echo "Stopping snmpd daemon." kill $RunningPids ;; *) echo "Usage: sh $0 { start | stop }" ;; esac exit 0
私の環境の場合、webminからやったんでどこに入ったか詳しく知りませんが、恐らく
/etc/rc5.d/
あたりに入ってるはずです。
これで、
# /etc/init.d/snmpd start # /etc/init.d/snmpd stop
で、それぞれ起動と停止をすることが出来るようになりました。
そして動作チェック。
# snmpwalk -v 1 localhost KURO-BOX system
下にずらずらーっと大量の情報が出てこれば成功。
そしてようやく本当に最後の設定項目、MRTGのcfgファイルの設定。
/usr/local/mrtg-2/bin/mrtg (←MRTG本体)
/usr/local/mrtg-2/bin/cfgmaker (←.cfgファイルを作ってくれる)
/usr/local/mrtg-2/bin/indexmaker (←indexページを作ってくれる)
# /usr/local/mrtg-2/bin/cfgmaker --output="./mrtg.cfg" KURO-BOX@localhost
とやって、最初のcfgファイルの生成。
KURO-BOX@localhost のところは、snmpd.confの環境次第で変わるので、
コミュニティ名@ホスト名 となるように設定します。
で、できた mrtg.cfg のファイルを編集。
最終的にウチの環境で作れたファイルは以下のとおり。
### Global Config Options # for UNIX # WorkDir: /home/http/mrtg WorkDir: /usr/local/apache/htdocs/mrtg ### Global Defaults # to get bits instead of bytes and graphs growing to the right # Options[_]: growright, bits Options[_]:growright, bits Interval: 5 Refresh: 300 WriteExpires: Yes EnableIPv6: no Language: eucjp ###################################################################### # System: KURO-BOX # Description: Linux KURO-BOX 2.4.17_mvl21 #24 2004年 10月 19日 火曜日 17:17:03 JST ppc # Contact: Me <me@somewhere.org> # Location: Right here, right now. ###################################################################### #----------------------------------------------------------------- # トラフィック状況 #----------------------------------------------------------------- Target[traffic]: 2:KURO-BOX@localhost Directory[traffic]: traffic SetEnv[traffic]: MRTG_INT_IP="192.168.1.150" MRTG_INT_DESCR="eth0" MaxBytes[traffic]: 1250000 Title[traffic]: Traffic Analysis for eth0 -- KURO-BOX PageTop[traffic]: <h1>Traffic Analysis for eth0 -- KURO-BOX</h1> #<div id="sysdetails"> <table> <tr><td>System:</td><td>KURO-BOX in Right here, right now.</td></tr> <tr><td>Maintainer:</td><td>webmaster@localhost</td></tr> <tr><td>Description:</td><td>eth0 </td></tr> <tr><td>ifType:</td><td>ethernetCsmacd (6)</td></tr> <tr><td>ifName:</td><td></td></tr> <tr><td>Max Speed:</td><td>1250.0 kBytes/s</td></tr> <tr><td>Ip:</td><td>192.168.1.150 (KURO-BOX)</td></tr> </table> #</div> #----------------------------------------------------------------- # CPUのロードアベレージ #----------------------------------------------------------------- Options[_]: gauge,absolute,growright,nopercent Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.2&.1.3.6.1.4.1.2021.10.1.5.3:KURO-BOX@localhost Directory[cpu]: cpu MaxBytes[cpu]: 100 Unscaled[cpu]: dwmy WithPeak[cpu]: mw YLegend[cpu]: CPU Load (%) ShortLegend[cpu]: % LegendI[cpu]: 5分平均 LegendO[cpu]: 15分平均 Legend1[cpu]: 負荷 5分平均 (%) Legend2[cpu]: 負荷 15分平均 (%) Title[cpu]: CPU使用率 PageTop[cpu]: <H1>CPU使用率</H1> #----------------------------------------------------------------- # メモリ空き容量 #----------------------------------------------------------------- Options[mem]: gauge,absolute,growright Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:KURO-BOX@localhost Directory[mem]: mem # 実メモリの最大容量 MaxBytes1[mem]: 127088 # スワップメモリの最大容量 MaxBytes2[mem]: 257032 kilo[mem]: 1024 kMG[mem]: k,M,G,T,P YLegend[mem]: Mem Free (MB) ShortLegend[mem]: Bytes LegendI[mem]: 物理空き LegendO[mem]: スワップ空き Legend1[mem]: 空き物理メモリ(MBytes) Legend2[mem]: 空きスワップメモリ(MBytes) Title[mem]: メモリ空き容量 PageTop[mem]: <H1>メモリ空き容量</H1> #----------------------------------------------------------------- # ハードディスク温度 #----------------------------------------------------------------- Options[hddtemp]: growright,absolute,gauge,nopercent,noinfo Target[hddtemp]: `/usr/sbin/hddtemp -n /dev/hda` Directory[hddtemp]: hddtemp MaxBytes[hddtemp]: 100 WithPeak[hddtemp]: ymw YLegend[hddtemp]: Temperature ShortLegend[hddtemp]: C LegendI[hddtemp]: 温度 LegendO[hddtemp]: Legend1[hddtemp]: 温度 (℃) Legend2[hddtemp]: Title[hddtemp]: KURO-BOX : ハードディスク温度 PageTop[hddtemp]: <h1>ハードディスク温度 for KURO-BOX</h1> #----------------------------------------------------------------- # ディスク使用量 #----------------------------------------------------------------- Options[disk1]: gauge,absolute,growright # ディスク使用量 Target[disk1]: .1.3.6.1.4.1.2021.9.1.8.1&.1.3.6.1.4.1.2021.9.1.8.2:KURO-BOX@localhost Directory[disk1]: disk1 # hda1の最大容量 MaxBytes1[disk1]: 2063504 # hda3の最大容量 MaxBytes2[disk1]: 155992804 kilo[disk1]: 1024 kMG[disk1]: k,M,G,T,P YLegend[disk1]: Disk Usage (MB) ShortLegend[disk1]: Bytes LegendI[disk1]: hda1 LegendO[disk1]: hda3 Legend1[disk1]: hda1 使用量 (MB) Legend2[disk1]: hda3 使用量 (MB) Title[disk1]: ディスク使用量 PageTop[disk1]: <H1>ディスク使用量</H1> #----------------------------------------------------------------- # ディスク使用率 #----------------------------------------------------------------- Options[disk2]: gauge,absolute,growright # ディスク使用率 Target[disk2]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.2:KURO-BOX@localhost Directory[disk2]: disk2 MaxBytes[disk2]: 100 Unscaled[disk2]: dwmy YLegend[disk2]: Disk Usage (%) ShortLegend[disk2]: % LegendI[disk2]: hda1 LegendO[disk2]: hda3 Legend1[disk2]: hda1 使用率 (%) Legend2[disk2]: hda3 使用率 (%) Title[disk2]: ディスク使用率 PageTop[disk2]: <H1>ディスク使用率</H1>
そして動作チェック。
# /usr/local/mrtg-2/bin/mrtg ./mrtg.cfg
初回はログファイルが無いなどといったエラーが出てくるので、3回ほど繰り返せば、エラーは消えます。
ただ、ウチの設定上、HDDの温度を取る分での指定と、メモリ空き容量の指定の箇所が若干だけエラーを吐いてます。
後日でもまた修正してみます。
今はちゃんと動いてるのでもう放置で。
そしてインデックスページを作って完成。
# /usr/local/mrtg-2/bin/indexmaker --columns=1 ./mrtg.cfg > ./index.html
最後に、自動登録をして終了。
# crontab -e
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/mrtg.cfg