FreeBSD4.7-STABLEにRRDTOOLをインストールしたときのメモです。
RRDTOOLは、MRTGとは異なりグラフを書く機能しかないため、データを受け渡すフロントエンドも同時にインストールします。今回は下記のソフトを使用しました。
- RRDTOOL
rrdtool-1.0.40 … (portsでインストール)
- HotSaNIC
HotSaNIC-0.4.0 … (HotSaNIC-0.4.0.tgz)
- SmokePing
smokeping-1.18 … (portsでインストール)
<sample>
1.前提条件
- snmpが動いていること
snmpget -v 1 -c <コミュニティ名> <IP-address> .1.3.6.1.2.1.1.1.0
とかして、システム情報が出てくるようならOKです。
2.RRDTOOL&HotSaNICのインストール
- RRDTOOLのインストール
cd /usr/ports/net/rrdtool
make install clean
バイナリが/usr/local/bin/rrdtool にインストールされます。
- ImageMagick(convert)のインストール
RRDTOOLで作成された画像を変換するのにImageMagickに含まれる convertというモジュールが後ほど必要となります。必要なモジュールだけ インストールした方がいいのですが、面倒なのですべてインストールしました。 (結構サイズがでかいです・・)
cd /usr/ports/graphics/ImageMagick/
make install clean
途中、GNU Ghostscript driverのコンフィグが出てくるので、要らないプリンター などのドライバは選択を解除します。
- HotSaNICのインストール
任意の場所にインストールします。
su
cd /usr/local
tar zxvf HotSaNIC-0.4.0.tgz
cd HotSaNIC
3.HotSaNICの設定
- セットアップ
セットアップツールがあるので、動かします。
./setup.pl
グラフを作成する項目を選んでいくのですが、どんなのが動くか分からないので、とりあえず全部 "y" にして、NICのところだけ考えて答えていけばいいと思います。
setup.plが終了すると、今選んだ項目が反映されたsettingsファイルが出来るので、 詳細をさらに編集します。
settings ← 私はこんな感じにしましたが、まだこの段階では、”RUN","SHOW","ORDER"の各項目は編集しないでおきます。
settingsの編集が終わったら、インデックスの作成とサムネイル画像の作成をします。
./makeindex.pl
./rrdtimer -i
./convert.pl ← サムネイル画像の作成
- デーモンを動かす
./rrdgraph start
暫くすると画像が出来ているはずですので、settings のWEBDIRで指定した URLにアクセスしてみます。
私の環境ではtraffic,system,partの三つしか画像が出来ていません でした。とりあえずこれだけあれば十分なので、他の項目は 設定から削除することにします。
settingsファイルを開いて、"RUN","SHOW","ORDER"から不要な項目を削除します。
その他、FreeBSD特有のバグ対応などを行いました。
1)曜日の文字化け修正
⇒rrdgraphを編集
最初の方に次の2行を追加2)swapのグラフが出ないのを修正
LC_TIME="abday"
export LC_TIME
./makeindex.pl; ./rrdtimer -i
としてインデックスを作り直した後、デーモンを再起動します。
./rrdgraph stop; ./rrdgraph start
これで曜日の表示は治ると思いますが、rrdgraph起動時に下記のような エラーが出る場合は、「LC_TIME="abday"」の上あたりに次のPERL_BADLANGの 記述をします。(岩澤信康さん情報有り難うございます。)
PERL_BADLANG=0
export PERL_BADLANG
Starting rrdtimer... perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LC_TIME = "abday", LC_CTYPE = "ja_JP.EUC", LANG = "ja_JP.EUC" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). reading & checking config (/usr/local/HotSaNIC/settings) ... evaluating cmdline arguments... entering daemon mode...
⇒data-system/read-data.plを編集
343行目あたりから、3)trafficの縦軸をbytesからbitsに変更
という行があるはずです。open(IN,"/usr/sbin/pstat -sk|"); while(<IN>) { if (/TOTAL/) { (undef, undef, $swpuse, $swpfre) = split; last; } }
ここを自分の環境に合わせます。
私の場合は、
という結果でしたので、下記のように変更しました。% pstat -sk Device 1K-blocks Used Avail Capacity Type /dev/ad0s1b 786304 8 786296 0% Interleaved
旧) if (/TOTAL/) { (undef, undef, $swpuse, $swpfre) = split; last; }
↓
新) if (/\/dev\//) { (undef, undef, $swpuse, $swpfre) = split; last; }
以上で、log/HotSaNIC.errに出ていた、
というエラーも消えるはずです。Use of uninitialized value at ./read-data.pl line 348, <IN> chunk 2. Use of uninitialized value at ./read-data.pl line 349, <IN> chunk 2.
⇒data-traffic/settingsを編集
4)CPUの縦軸を%表示に変更
⇒data-system/settingsを編集
5)cpu usageのidleとinterruptが逆
⇒data-system/read-data.plを編集(70行目あたり)
$cpu4{$cpu}=$cpu4;
$cpu5{$cpu}=$cpu5;
⇒data-system/diagramsを編集(205行目あたり)
STACK:nicavg#00ff00:"nice" \
STACK:idlavg#ffff00:"idle" \
- /usr/local/etc/rc.d に登録
cd /usr/local/etc/rc.d
su
vi /usr/local/etc/rc.d/HotSaNIC.sh
#!/bin/sh case "$1" in start) [ -x /usr/local/HotSaNIC/rrdgraph ] && /usr/local/HotSaNIC/rrdgraph star t ;; stop) /usr/local/HotSaNIC/rrdgraph stop ;; *) echo "Usage: `basename $0` {start|stop}" >&2 ;; esac exit 0
chmod 755 ./HotSaNIC.sh
4.CPUの負荷が高すぎる・・
- スクリプトを変更
前項までで、いちおう動くようになりましたが、よっぽど早いCPUを 使っている人でなければ、Load Averageが激増したことに気付くと思います。 ./rrdtimerの中をのぞくと、どうやら10秒ごとに数値を取っているようです。
管理ツールごときにこんなにCPU負荷を取られてはたまらないので、 下記のスクリプトを変更しました。
(ちなみに私のサーバのCPUはVIA C3 733MHz[celeron433MHz相当?]です。)
./rrdtimer
./HotSaNIC.pm
./data-traffic/makeindex.pl
./data-traffic/diagrams.pl
./data-system/makeindex.pl
./data-system/diagrams
<変更点>
・データの収集周期を10秒から60秒に変更
・trafficのグラフから「1 hour」と「6 hour」を削除し、「3 hour」を追加
・systemのグラフから「1 hour」を削除し、「3 hour」を追加
・Load Average のmonthを追加
・Load Average の上限を2から1に変更
いちおうパッチにしておきました。
patch -p1 < HotSaNIC-0.4.0-20030121.patch
で当たると思います。いままでと同じように、
./makeindex.pl; ./rrdtimer -i
としてインデックスを作り直した後、デーモンを再起動します。
./rrdgraph stop; ./rrdgraph start
- Load Average
スクリプト変更前と変更後のLoad Averageグラフ(MRTG)です。
平均0.2ぐらいだったのが、最後の水曜日には、0.04〜0.06ぐらいに収まりました。
(RRDTOOLを動かす前は、0.00〜0.03ぐらいでした。)
金曜日を境に変化しているのは、OSが4.4-REREASEから4.7-STABLEに変わったためです。
![]()
5.SmokePing
- インストール
cd /usr/ports/net/smokeping
make install
/usr/local/etc/smokeping/config を適当に編集する。
CGIのファイルが、/usr/local/smokeping/htdocs/smokeping.cgi として インストールされているので、ブラウザからアクセスできるようにapache のhttpd.conf を編集する。
- 例 - <Directory "/usr/local/smokeping/htdocs"> AllowOverride None options None order deny,allow deny from all allow from 192.168.0.0/26 </Directory> ScriptAlias /smokeping/smokeping.cgi "/usr/local/smokeping/htdocs/smokeping.cgi" Alias /smokeimg/ "/usr/local/smokeping/htdocs/img/"デーモンを起動する
/usr/local/etc/rc.d/smokeping.sh start
暫くするとデータが集まってくるので、ブラウザでsmokeping.cgi にアクセスし確認します。
6.最後に
- 今回はtraffic,system,partの三つしか動かしませんでしたが、HotSaNIC/data-hogehogeの下にあるsettingsファイルを編集するといろいろ動きそうなので、試してみてください。
- HotSaNIC公式ページには、ver.0.4.1で「data-diskio now supports *BSD 」になると、書いてありますが、1年ほどバージョンが上がっていません。
7.CPU温度と電圧をグラフにする(2003.2.2追記)
ver.1.06では動かなかったXMBmonが、ver.2.01で試したところ動作したので、rrdtool+HotSaNICで動かしました。
[動作確認]
マザーボード:ASUS CUSL2-M
CPU :VIA C3 733MHz C5B"Samuel2"(fan less)
- XMBmonをインストールする
付属のREADMEファイルをよく読んで、インストールします。マザーボードが対応している必要があります。
(Linuxの場合は、lm_sensorsというのがあるようです。)
tar zxvf xmbmon201.tar.gz
cd xmbmon201
./configure; make
mbmonというバイナリが出来ます。下記のようなメッセージが出れば成功です。
私の環境では、温度はマザーボードの数値(temp0)しか正常に出ませんでした。CPU(temp1)は25℃のまま変化しません。"Samuel2"コアのC3はthermal diodeを搭載しているはずなんですが・・。% ./mbmon -d Using SMBus access method[Intel801/810/815(ICH/ICH2)]!! * Asus Chip, AS99127F found. % ./mbmon Temp.= 27.0, 25.0, 0.0; Rot.= 0, 0, 0 Vcore = 1.62, 0.99; Volt. = 3.34, 5.03, 11.25, -11.30, -5.02 ^C
とりあえず数値がとれたので、インストールします。
make install
- HotSaNICの設定1
XMBmon付属のrrdデータ作成スクリプトをdata-sensorsにコピーします。
cp -p ./mbmon-rrd.pl /usr/local/HotSaNIC/data-sensors
./data-sensors/settingsを編集
SENSOR=,mbmon,temperature & voltage,,,,volts/temp../settingsのRUN,SHOW,ORDER各行に'sensors'を追加
RUN="sensors part traffic system"
SHOW="sensors part traffic system"
ORDER="sensors traffic system part"
- HotSaNICの設定2
mbmon-rrd.plとdata-sensorsの連携をとるため、下記のファイルを編集
./rrdtimer変更点をパッチにしました。
./data-sensors/diagrams
./data-sensors/makeindex.pl
第4項のHotSaNIC-0.4.0-20030121.patchを当てた後に、
patch -p1 < HotSaNIC-0.4.0-20030201.patch
とします。
./makeindex.pl; ./rrdtimer -i; ./convert.pl
としてインデックスを作り直した後、デーモンを再起動します。
./rrdgraph stop; ./rrdgraph start
- 最後に
私の環境ではtemp0と各種電圧しかまともに数値が出ませんでした。temp1やfan0が出る場合は、data-sensors/diagramsのrrdtoolを起動している行で、各パラメータを定義してあげてください。
- since January, 2003. webmaster@infobb.com InfoBB Web Site ブログ