■['04/03/06] お詫びと訂正 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
['04/03/06]以前に本ページで公開されていた設定では,CPU 温度と M/B 温度が入れ替わって
検出されるようになっていました.恐れ入りますが,以前の設定を用いて温度を計測している場合は,
設定の変更をお願いします.
また,RRDtool+HotSaNICを使用している場合,以下の手順で過去のデータを引き継ぎつつ
上記修正を行うことが出来ます(以下,HotSaNICが/usr/local/HotSaNIC/にインストールされている
という前提で説明します).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■監視用ソフト | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■監視に必要なことあれこれ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
『今の状態』を知るだけであれば,
前回のページで
解説したソフト類の他に何も準備するものは
ありません.各コマンドを叩くことにより,現在の状態を確認することが
できますし,画面上に常時 CPU 温度を表示するなんてことも,プログラムを
組めば簡単に実現できます. しかし,状態を監視するということは,たいていの場合は『その瞬間』のデータ ではなく,長期的なデータの推移を見たいことの方が多いでしょう.例えば温度変化を 監視したい場合,1日(24時間)でどのように変化しているかや,夏の暑い盛りから 冬の寒い 時期まで,どのように温度が上下動するかを見たいこともあるでしょう. おそらく,各種ステータスの監視を行う際には,次のような要件が重要に なって来ると思います.
これらを実現することを目的としたソフトは,多くのものが開発,公開されて います.その中でも最もメジャーであると思われる MRTG ,そして綺麗な グラフ表示で最近人気を集めている RRDtool を今回は採り上げ, インストールから運用方法まで解説したいと思います.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■監視用ソフトのインストール1【MRTG】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■MRTG | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MRTG とは,Multi Router Traffic Grapher の略であり,Tobias Oetiker氏
らの手により開発されたソフトです.本家は
こちら
のページであり,
MRTG 公式日本語サイト
もあります. MRTGの歴史的を見ると,1994年に Oetiker氏は 64kbps のラインでインターネットと 接続されているサイトで仕事をしていたときに,そのトラフィックに関心を持った ことから開発が始まります.そして回線負荷状況を Web 上にグラフ化して表示し, 逐次更新するプログラムとして,1995年に最初の版が公開されました.その後全て Perl で書かれていたプログラムの一部を C に書き直して劇的な高速化が計られ, MRTG-2 が公開されます.そして現在は,ログデータの持ち方をがらりと変更する などの大きな変更が加えられる MRTG-3 が計画されており,新しい版では完全に RRDtool ベースにする旨がアナウンスされています. MRTG は設定が容易で使い勝手が良く,また,出力として得られる折れ線 グラフも必要充分な情報が得られるため,非常に多くのサイトで利用されて います.また,出力されるグラフは Web 経由で閲覧することが可能なため, サイトによってはそのままの形で公開されていることもあります.そのため, Web であちこちを回っていると,様々な形で利用されている,MRTG の出力 するグラフを目にすることも多いでしょう.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■前準備 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
まずは MRTG で監視する前に,snmpd がきちんと動いていることを
確認してください(前回のページ
参照のこと).なお,トラフィック,CPU使用率,メモリ使用率およびディスク
利用率に関しては SNMP 経由で情報を取得し,温度に関してはローカルマシンの
データをじかに読むことにします. まずは,SNMP で監視する対象のデータが取得できるかを確認してみましょう.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■インストール | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
まずは,tarボールで固められたソースコードを
ここ
からダウンロードしてください.私はちょっと古くなってしまいましたが,
mrtg-2.9.7.tar.gz を現在使用しています('03/02 現在の最新版は
mrtg-2.9.27.tar.gz ).
なお,MRTG が動作するためには,以下のソフト(ライブラリ)も必要と
なりますが,Vine2.6 であれば,一通り既にインストールされていますので,
改めて入れ直す必要はありません.
MRTG 本体のインストールは至って簡単で,以下のように行うだけです.
上記の例はバージョン 2.9.7 で行う場合です.異なるバージョン を使用する場合は,青字の部分を書き換えてください.また,そのまま make install すると,/usr/local/mrtg-2/ にインストールされますので, インストール先を変更する場合は,Makefile を書き換えてください. なお,当然ながら,エラーが出た場合は適時問題を fix するようにして ください.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定1【トラフィック】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MRTG を動かすためには,設定ファイルを作成する必要があります.
設定ファイルの書式は極めて簡単ですので,手でスクラッチから記述しても
良いでしょう.
また,トラフィックのみを監視する場合は,設定ファイルを簡単に作成
するためのコマンドが用意されていますので,今回はそちらも併用する
ことにします.
cfgmaker の詳細な使い方の説明は省略しますが,上記の例で説明すると, 『terminator という名前のホストに private というコミュニティ名でアクセス し,トラフィック情報を監視するための設定ファイルを出力せよ』と,なります. 出力された設定ファイルのテンプレートは,この実行例では /tmp/ether.cfg に 出力されますので,内容をチェックしてみてください. おそらく,殆どの行が"#"でコメントアウトされたファイルが出来ていると 思います.cfgmaker は一通りのネットワークインターフェイスの情報を取得 して出力しますが,リンクダウンしているインターフェイスに関しては,コメント アウトした状態で出力します.このファイルの中で,コメントアウトされていない 部分のみを抜き出し,別ファイルに保存しておきましょう.以下の例は私の Terminator での該当部分です.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定2【CPU使用率】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
次に CPU 使用率(負荷平均率)を監視する設定をします.OID では,
enterprises.ucdavis.laTable.laEntry.laLoadInt.1〜3 を参照することにより,
値が取得できます.順に 1, 5, 15分での負荷平均率です.今回は 5分,15分の
データを監視することにしますので,MRTG の設定は以下のようになります.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定3【メモリ使用率】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メモリ使用率は,実メモリおよびスワップに関して監視することにします.
ここで用途によって,『空きメモリ容量を監視』するか,『使用中のメモリ容量』
を監視するかという2つのアプローチを採ることができます.まずは前者に関して
ですが,このデータは enterprises.ucdavis.memory 以下のツリーで SNMP でじかに
取得することが出来ますので,設定は簡単です.MRTG の設定は以下のようになります.
なお,青字の部分は,それぞれ実メモリ,スワップメモリの容量ですので, 利用中の環境に合わせて書き換えてください.snmpget コマンドを使用し, enterprises.ucdavis.memory.memTotalReal.0, enterprises.ucdavis.memory.memTotalSwap.0 の値を確認し,転記すれば OKです. 次に『使用中のメモリ容量』を見る場合ですが,SNMP 経由では,実メモリ+スワップメモリ のトータルでの空き容量しか確認することができません. そのため,使用量を見るためには,SNMP で得た情報を加工し,MRTG に渡す必要があります. まずはデータを MRTG に渡すためのスクリプトですが,例えば次のようにな ります.これを任意の場所に保存し,『chmod +x ファイル名』で 実行パーミッションを付けておいてください.以下, "/usr/local/mrtg-2/conf/mem2.sh" として保存したとして説明します.
一度 "/usr/local/mrtg-2/conf/mem2.sh" を実行し,実メモリの使用量, スワップの使用量が2行に分けて出力されるかを確認してください. 現在のメモリの使用量に関しては,"free"コマンドの出力からも計算で 求めることができます. 次にMRTGの設定ですが,前記のメモリ空き容量の設定のうち,
の部分を,
に書き換えてください.空き容量,使用量をどちらも監視したい場合は, 片側は"terminator_mem"の部分を"terminator_mem2"のようにしておくように します.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定4【ディスク利用率】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ディスク使用量は,enterprises.ucdavis.dskTable.dskEntry 以下のツリーで
参照することが可能です.なお,MRTG では1つのグラフに2つまでのデータ推移
しかプロット出来ませんので,snmpd で複数のデータが参照可能に設定されている
場合でも,任意の2つまでを監視することになります. 設定は次のようになります.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定5【CPU,M/B温度】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
最後に CPU および M/B 温度ですが,今回はローカルのファイルから値を読む
ことにします.SNMP を使用し,ネットワーク経由で読みたい場合は,メモリ使用量の
設定を参考にしてください.また,今回も,MRTG に値を渡すための前処理が必要に
なりますので,スクリプトを組むことにします.
実行パーミッションを付けることも忘れないようにしてください. 以下,このスクリプトを"/usr/local/mrtg-2/conf/temp_chk.sh"として 保存したとして説明を続けます.MRTG の設定は,次のようになります.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定のまとめ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
これで各々の設定に関しては終わりです.あとはこれら設定を別々に
ファイルに保存し,MRTG を個別に起動するか,設定を1つのファイルに
まとめておき,
MRTG を1つ起動するだけで全てをグラフ化するようにするかです.私は
後者の方法を採りました. なお,これまでに説明した一通りの設定を1つのファイルにまとめて保存する際に, 一番最初の行に,HTMLファイルおよびグラフの画像ファイルをどの ディレクトリに書き出すかを指定するのを忘れないようにしてください. 例えば Vine でしたら,apache の公開用ディレクトリは "/home/httpd/html" 以下になりますので,この下に"mrtg"という ディレクトリに出力させることにします.ディレクトリを作成した後に, MRTGの設定ファイルに,次のように記述しておいてください.
なお,これらの設定を全てまとめると, このようなファイルになります.これを "/usr/local/mrtg-2/conf/mrtg.cfg" に保存するとして話を進めます. ※設定ファイル中の細かなオプションに関しては, 説明を省略させて頂きます.詳しくは MRTG のマニュアルを 参照してください.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■実行 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
まずは手動で MRTG を起動し,問題なく動作するかを確認します.
いくつか『こんなファイル無いよ』というエラーが出ると思いますが, (設定ファイル関連のエラー以外は)気にしないでください.これを3回ほど繰り 返して実行すると,エラーが出なくなるはずです. 次に,MRTG で監視している情報を,一覧することが可能なページを作成します.
実行後,Webブラウザで http://(MRTGを動かしたホスト名)/mrtg/ にアクセス すると,データはまだプロットされていないと思いますが,グラフが並んで表示 される筈です.(MRTG等のアイコンは表示できていないと思いますが,動作上は 問題ありません.気になるようであれば,/usr/local/mrtg-2/lib/mrtg2/*.png を /home/httpd/html/mrtg にコピーしてください) MRTG が正常にグラフを生成できていることが確認できたら,次に自動的に グラフを更新するように cron を設定します.crontab -e コマンドを実行し, 以下のエントリーを追加してください.このように設定することにより,5分 毎に自動的にグラフが更新されるようになります.
上記グラフは,容量を抑えるためにJPEGの圧縮率を高めて 保存しています.オリジナルのグラフは,とてもシャープに表示されます. なお,MRTG が生成するグラフは単に画像ファイルとして置かれていますので, indexmaker の作成する HTML ファイルを使わず,自分の用途に合った HTML ファイルを作成し,監視用のTOPページとして使用すると良いと思います.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■監視用ソフトのインストール1【RRDtool+HotSaNIC】 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■RRDtool+HotSaNIC | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MRTG を使用していると,そのグラフの表現力や実行速度の限界に何かと
不満を持つかと思います.特に個人的に感じているのは,MRTG はデータを
蓄積する際に,次第に平均を取るレンジが広くなることです.そのため,
ピーク値を見たい場合であっても,例えば年グラフでは鈍ったグラフになって
しまいます. この辺りを解決するソフトとして, RRDtool という表現力の高いグラフ化ツールがリリースされています.RRDtool が作成 可能なグラフは,非常に多様で表現力もあり,また,データを蓄積するエンジン も高速なため,MRTG と比較して大きなアドバンテージがあります.しかし難点としては, その設定の煩雑さです. RRDtool が MRTG 程普及しないのは,この辺りに原因があるのではないかと 個人的には思っています.しかし,この辺りを解決するためのツールとして,多くの フロントエンドソフトが公開されています.これらフロントエンドを使用する ことにより,RRDtool を使用するための設定作業が容易になり,見栄えも素晴らしい グラフを簡単に作成できるようになります. 今回私が使用したフロントエンドは,『Graphical overview about a large number of network- and system statistics for you Unix Box』と,説明され ているHotSaNIC というソフトです.本体は Perl で書かれており,インストールおよび設定が 極めて簡単なパッケージになっています.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■インストール | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
まずは RRDtool のインストールを行います. Vineの場合,標準状態で様々なコマンドの出力に日本語が含まれるため,英語版 RRDtool を使用すると,グラフ内各所で文字化けしてしまいます(例えば曜日等. Vine 側の設定で対応することも出来なくはない).そのため,日本語パッチが当てられた RRDtool をインストールすることにします. なお,英語版をインストールする場合は こちら からリンクを辿り,rrdtool-1.0.40-1.7.2.src.rpmを.日本語パッチの当たった 版を利用する場合は, こちらからリンクを辿り,rrdtool-1.0.40-1.7.2j.src.rpm をダウンロード します(パッチを作成,公開して下さっている大野洋史氏に感謝!).なお,これら バージョンは, '03/02 現在の最新の安定版です. バイナリパッケージが提供されている場合でも,ソースパッケージ(SRPM)を ダウンロードしたのには意味があります.半ばコダワリに近いかもしれませんが, Vine 用として提供されているもの以外の RPM パッケージは,私は基本的にソースから rebuild することにしています.RPMパッケージの設定に不備があった場合に, それを FIX し易いと思われるためです. まずは RRDTool の SRPM パッケージを rebuild してみましょう.なお,以下説明に おいて,パッケージ 名は日本語版のもので記述しています.英語版を使用する場合には読み替える ようにしてください.
~/rpm/RPMS/i386 の下に,"rrdtool-1.0.40-1.7.2j.i386.rpm", "rrdtool-devel-1.0.40-1.7.2j.i386.rpm" という2つの rpm ファイルが 作成されます.これらを次のようにしてインストールしてください.
※人によっては,/usr/local 以下にインストールしたいと 考えるかもしれません.その場合は,インストール先を変更してからビルドする必要 があります. 次に HotSaNIC をインストールします.HotSaNIC は こちらからダウンロード できるので,stable(安定版)の最新版をダウンロードしましょう.開発版は大抵 pre? のような名前がついています.なお,今回は "HotSaNIC-0.4.0.tgz" を使用しました. インストールは至って簡単で,たとえば /usr/local にインストールする場合は, 次のようにファイルを展開するだけです.なお,HotSaNIC が動作するためには, ImageMagic および Perl5 がインストールされている必要がありますが,Vine の 場合は標準でインストールされているため,改めてインストールする必要は無いでしょう.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■設定 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
基本的に,RRDtool はインストールを行うだけで良く,HotSaNIC 側の
設定を行うことにより,監視が行えるようになります. まずは HotSaNIC のスクリプトを実行し,基本的な設定行います.
設定は対話式で行われ,質問に答えていくことにより行われます. モジュールは合計9個ありますが,必ずしも全てを使用する必要は ありません.私の場合,SENSORS,PART,TRAFFIC,DISKIO,SYSTEM の 5つを 使用するようにしました.
なお,setup.pl を実行することにより,基本的な設定は完了しますが, 一部未設定になる部分や,誤って設定される部分があります. まずは,HotSaNIC 全体に関する設定ファイルである "/usr/local/HotSaNIC/settings" ファイルを修正します.
上記設定は,あくまでも一例です.自分の環境に合わせて修正 してください. 次に,RRDtool の生成する HTML ファイル等の格納先ディレクトリを作成 します.
最後に,setup.pl で設定されない各モジュールの設定ファイルを 修正します.
■SENSORモジュールの設定ファイル SENSOR=/proc/sys/dev/sensors/it87-isa-0290/temp1,cputemp,CPU temp,3,1,0,度 SENSOR=/proc/sys/dev/sensors/it87-isa-0290/temp2,mbtemp,MB temp,3,1,0,度
■PARTモジュール
■DISKIOモジュール disk_io: (3,0):(471176,92636,3013450,378540,12126724) (3,1):(97807,54960,757450,42847,3364496)
と,なった場合,ディスクは2台あって(3,0)と(3,1)です.
これを反映させる場合(Kernel 2.4 の場合), /usr/local/HotSaNIC/data-diskio/settings に以下の2行を書きます. DEV=3_0,hda DEV=3_1,hdb ちなみに,私の環境の設定ファイルは,最終的に次のようになりました.
今回は使用しませんでしたが,SNMP 経由での情報取得も可能です.その他 設定に関する詳細は,HotSaNICの(あまり充実していませんが…)ドキュメント および各設定ファイル内のコメントを参照してください. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■実行 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
まず,HotSaNIC のインデックスページを作り,手動で RRDtool を
実行し,一度データを取得します.
実行後,設定ファイルで指定した URL に,Web ブラウザでアクセスして みてください.おそらくグラフ画像は表示されていないと思いますが,設定 した監視項目は一通り表示されていると思います. 表示されていることが確認できたら,次に手動でデーモンモードで起動し, グラフが自動更新されるかを確認します.
エラーが出ていなければ,起動成功です.定期的にグラフが更新される 筈です.なお,先程のページにブラウザでアクセスしてもグラフが表示されない場合, しばらく(数分〜15分くらい)待った後に以下のコマンドを実行し,グラフを 手動で更新してみてください(通常は不要です).
きちんと動いているようであれば,マシン起動時に自動的に実行される ようにします.以下の行を,/etc/rc.d/rc.local に追加してください.
これで作業は完了です.以下のようなグラフがWeb経由で見ることができる はずです.なお,このページは makeindex.pl で作成したページであり, 各リンクやグラフをクリックすることにより,より詳細な情報ページへジャンプします.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■まとめ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■MRTGとRRDtool | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
前述したとおり,MRTG-3 は RRDtool ベースになることがアナウンス
されています.しかし,現在は(MRTG-2は)デフォルトで RRDtool を使用
しませんので,その動作を前提として比較することにします. 両者共にメリット,デメリットがあります.MRTG は設定はし易いが 凝ったグラフは描けず,動作が低速で負荷も比較的高くなります.一方 RRDtool は柔軟なグラフが描け,動作も軽い反面,設定が煩雑でフロント エンドの手を借りないとかなり大変でしょう.また,今回はフロントエンド として HotSaNIC を使用しましたが,そのインデックスページはとても容量 が大きくなると共に,今ひとつ使い易くありません.おそらく多くの人は, インデックスページをカスタマイズして使用することになるでしょう. 個人的には,RRDtool での監視体制が出来てしまえば,MRTG は不要かなと 思います.特に,MRTG では,温度のグラフでピーク値が取れないのは致命的でした. ただし,特殊なデータを簡単にプロットしたいという用途に対して は,MRTGを使用することもあるかもしれません.つまり,至極当たり前な結論 になりますが,用途に合わせ,自分に合ったツールを使うのが良いと思います.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
■まとめ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
会社では,多くのマシンや Ethernet Switch を管理するために,古くから
MRTG を愛用してきました.しかし,家ではそれほどシビアな用途に PC を使用
することもなく,監視ソフト系を使用することはありませんでしたが,Terminator
を使い始めたことにより,その状況は変わりました. Terminator 使いの一番の興味(そして切実な関心)の対象として,CPU および M/B 温度がどの程度まで上昇するのか見たいという問題があります.これは静音化 と密接に関係した問題なわけですが,私はこのデータを監視&蓄積するために,まずは 夏の暑い盛りに,MRTG を動かし始めました.その結果,現在の静音化を施した構成で 問題無さそうであることが分かりました. その後監視対象は増え,また,現在は動作の重い MRTG は止め,RRDTool で監視を 行っています.様々なデータが集まると,これまで見えなかった問題も見えてくるよう なり,新たな発見もありました. 現在は Web で外部からも自宅マシンの状態がチェックできるようにしており, 出張のときなどに,宿泊先のホテルから,CLIE+AirH”の組み合わせでグラフを眺めたり 等しています(あまり意味無いけど :-) ). 今後の課題としては,SNMP で言うところのアラームの扱いです.異常時に緊急停止 する仕組み(例えば,M/B 温度が70度を超えた場合は『落とすよ』と,メールを打った 後に自動 shutdown するなど)をどう実装しようか考えているところです.欲を言うと, lm_sensors で電圧等も監視できれば,電源がヘタって何らかのサインが出たときや, もう少し厳密に電源の限界が見えるかなと思っています.
|