■
HotSaNIC でできること
HotSaNIC自体は Perl
のスクリプトプログラムです。UNIXマシンにインストールして、マシン上にあるハードウェアとソフトウェアに関連するさまざまな情報を収集し、データ
ベースに蓄積して画像グラフを作成し
ます。また他のマシンやネットワーク機器からもSNMPを利用して情報を収集してグラフ作成をします。さらにそれらグラフ
は HTML形式のWebページとして出力されるので、Apache などの Webサーバーを使ってネットワークからモニター・管理できます。
この種のモニター・ツールではMRTGが有名ですが、HotSaNIC ではよりかんたんに利用できます。
【 HotSaNIC でモニターできる事項 】
HotSaNIC ではモジュールとよばれるスクリプトを利用して、マシン内部情報やネットワーク上の機器情報を収集します。
収集した情報は、すべて RRDTool というデータベースで管理・グラフ化します。
HotSaNICの本体は、これらのモジュールとデータベースを連携・管理し、1つの管理画面を出力します。
デフォルトで利用できるモジュール・管理グラフ
・ ネットワーク・カードのトラフィック traffic
・ OSのステータス system
CPU負荷、メモリー・モニター、
・ ハードディスクの使用状況 part
・ 他ホストとの間のネットワーク・ラウンドトリップ時間 ping
任意のホスト との間での Ping
の遅延時間 (Smoke Ping とほぼ同じ)
・ マシンのハードウェア情報のモニター sensors
CPU内部温度、冷却ファン回転数、HDD温度
・ ハードディスクのRead/Write モニター diskio
・ メール・スプールのモニター mailq
postfix のスプール
・ UPS(電源バックアップシステム) のモニター
・ DNSサーバーのモニター BIND
・ ストリーミングサーバー shoutcast のモニター shoutcast
・ 各種のデーモン(プロセス)のモニター apps
・ Apache Log に記録された worm のモニター worm
Nimda、CodRed の襲来件数
・ ネットワークのトラフィック network
・
NTPサーバーとクロックのモニター
ntp
【
0.5.0-pre6 で変ったところ 】 - setup.pl
の完成度が向上してさらに使いやすくなった。
- NTP モジュールが追加された。
- インデックスページが3種類になった。
- インデックスページ
に HotSaNIC の壁紙が追加された。
■
HotSaNIC を利用できるUNIX
HotSaNIC はUNIX環境で利用できます。Windows では利用できません。
このページでは Fedora Core Linux
3
にインストールする手順を説明していますが、他のLinux でも基本的には同じです。
- Linux
HotSaNIC 開発は Linux プラットホームで行われているようです。Snapshot
も問題なく使えます。
- *BSD FreeBSD などBSD系UNIX
ではモジュールの実装が遅れています。
- Solaris
モジュールの実装は一番少ないのですが利用できるようです。
■
HotSaNIC に必要なソフトウェア
HotSaNIC を利用するために次のソフトウェアをあらかじめインストールし連携させる設定をします。
Linux の場合 HotSaNIC以外は、RPMパッケージを利用してインストールして利用できます。
HotSaNIC-0.5.0-pre6-snapshot
HotSaNIC の本体スクリプト
rrdtool-1.0.* 系を使います。
RRDTool HotSaNIC
が収集した情報を管理するラウンドロビン・データベース
Net-SNMP ネットワーク上の機器などからさまざまな情報を収集管理する SNMP
ImageMagick
HotSaNICの作成したトップページの画像サムネール
を作成するグラフィック
処理ソフト
Apache
HotSaNICが作成した
HTMLの画像を表示するためのWebサーバー
インストール作業をする作業ディレクトリは /usr/local/src/ としました。
ここでは作業手順をわかりやすくするために、RRDTool 以外のソフトウェアはRPMパッケージを yum
コマンドを利用してインストールします。
■ RRDTool
のインストール
●
RRDTool
公式サイトより入手したソースプログラムをコンパイルしてインストールします。
$
cd
/usr/local/src $
tar zxvf rrdtool-1.0.49.tat.gz $
cd rrdtool-1.0.49 $
./configure $
make #
make install #
make site-perl-install #
cd /usr/local #
ln -s rrdtool-1.0.49 rrdtool
|
RRDTool は
/usr/local/rrdtool-1.0.49 にインストールされるので、シンボリックリンク
/usr/local/rrdtool を作成した。
RRDTool にはそのほかの設定はありません。
追記: rrdtool-1.0.50 と rrdtool-1.3.0
で正常な動作を確認しました。 2008/07/24
■
Net-SNMP のインストール
● yum コマンドを使って
net-snmp の RPM パッケージをワイルドカードですべてインストールします。
※ net-snmp と関連する rpm
パッケージをすべてインストールします。
● 設定ファイル /etc/snmp/snmp.conf
の設定を書き換える
#
sec.name
source
community
com2sec notConfigUser
default mycommunity
|
Community ( コミュニティー名はパスワードと同等 )
を
新しい名前に書き換えて Net-SNMP
を(再)起動させる。
Net-SNMP
の運用は、セキュリティに直接関係するので関連書籍やWebサイトで勉強してから行ってください。
● net-snmp のテスト
net-snmp
を起動し、以下のコマンドを実行してシステムの情報が表示できれば成功です。
#
/etc/rc.d/init.rd/snmpd
start <---
SNMP
を起動させる # chkconfig --level
345 snmpd on <---
デーモンとしてSNMPを起動させる # snmpwalk -v 1 -c
mycommunity localhost system
|
snmpwalk コマンドを実行してダラダラと長いメッセージを返してくれば成功です。
■ ImageMagick
のインストール
yum コマンドを使って
ImageMagick の RPM パッケージをインストールします。
● yumコマンドを実行してインストールする
#
yum install ImageMagick
# which convert <----
convert というコマンドのパスをしらべる /usr/bin/convert
|
ImageMagick
は画像処理ソフトですが使用するのはその中の convert というプログラムだけです。
■ Apache
のインストール
yum コマンドを利用して
Apache (httpd) の RPM パッケージをインストールします。
HotSaNIC で作成した
HTMLページを出力するディレクトリを /var/www/hotsanic/ として作成する。
# mkdir /var/www/hotsanic
|
■
モジュールごとの設定ファイル settings を完成させる
上記の
HotSaNIC/settings
は、HotSaNIC
本体のグローバルな設定をするためのものでした。
この章では、HotSaNIC 管理下の各モジュールの設定ファイル
modules/*/settings
を設定します。
他のモジュールもそれぞれの settings を編集して設定してください。
HotSaNIC/
--+--- settings <--- グローバルな設定ファイル
+--- modules/---+--- apps/ ----- settings
+--- diskio/---- settings
+--- netstat/--- settings
+--- networks/-- settings
+--- ntp/ -------
settings <--- NTPモジュールの設定ファイル
+--- parts/ ----- settings
+--- ping/ ------ settings
+--- sensors/ --- settings
+--- system/ --- settings
+--- traffic/---- settings
■ 事例:NTP
モジュールを設定する
0.5.0-pre6 にあたらしく追加された
NTP(Network
Time Protocol)
の settings の設定を例に説明します。
この「NTP 管理グラフ」を出力させるためには RPMパッケージの ntp-4.* をあらかじめインストールしてください。
ntp の設定ファイルは /etc/ntp.conf です。
●
NTPサーバーと時間を同期させる
マシンの時刻が
NTPサーバーの時刻と大きく違っている場合は、正確な時刻に同期することができない。
そこで、ntpd を停止させて直接コマンド( ntpdate )でNTPサーバーから時刻を取得する。
#
/etc/rc.d/init.d/ntpd stop <---
ntpd を停止させる #
ntpdate -b
ntp1.jst.mfeed.ad.jp <---
NTPサーバーに時間同期させる
26 Apr 10:09:07
ntpdate[5496]: step time server 210.173.160.27 offset 0.001376 sec #
date <---
日付を確認する
2005年 4月 26日
火曜日 10:09:39 JST #
clock -w <---
取得した正確な時刻をハードウェア・クロックに書き込む
#
/etc/rc.d/init.d/ntpd
start <---
ntpd を起動停止させる
# ntpq -p <---
NTPサーバーと時間を同期する(数十分経ってから実行する)
remote
refid st t when poll
reach
delay offset jitter ============================================================================== -ns2.pulsation.f
84.207.3.38 3
u 31 64 377
274.681
-6.918 2.026 *Time2.Stupi.SE
.PPS.
1 u 34 64
377 286.404
-4.536 3.040 -zoiedog.com
131.107.1.10 2
u 28
64 377 164.254
4.681 2.058 LOCAL(0)
LOCAL(0)
10 l
42 64 377
0.000
0.000 0.004 +ntp2.jst.mfeed.
210.173.160.86 2 u
36 64 377
6.506
-2.246 1.863 +ntp1.jst.mfeed.
210.173.160.86 2 u
34 64 377
6.818
-0.871 1.445
|
ntpq
コマンドを実行して * 印の NTPサーバーと同期しています。
※
最近、日本の代表的なNTPサーバー(福岡大学)にアクセスが増えて大きな負荷になっているそうです。
NTPサーバーは ISP やローカルな公開サーバーをさがして利用しましょう。
●
modules/ntp/settings を設定する エディターで以下のように参照する NTPサーバーを HOST
として登録し保存終了します。
#
SHORT DESCRIPTION
# # ntpd-client command # NTPCOMMAND="/usr/sbin/ntpdc" # # configure targets # # HOST=<host or
IP>,<description> # # if you want to query the
local host, just add: HOST="," # # HOST="localhost,local system" HOST="ntp1.jst.mfeed.ad.jp,NTP1"
|
※
稼動してからモジュールの settings を変更した場合、新しい設定を有効にするために起動中の
NotSaNIC
を再起動させます。
■
モジュールの追加と削除について
HotSaNIC
を運用していてモジュールを新しく追加したり、削除したいことはよくあります。
新しくモジュール追加/削除する場合はインス
トール時の作業と同
じように setup.pl を実行し「モジュール選択」では Yes/No
で取捨選択します。そして追加モジュールの settings を設定し、makeindex.pl を実行し、再起動させれば利用できます。
削除する場合は、
settings の設定記述から
モジュール名を削除し、makeindex.pl
を実行し、再起動すると削除完了です。
既存のグラフのデータをすべて初期化したい場合は、スクリプト clearall.pl を実行します。
各モジュールのデータベースも初期化されますので実行には注意が必要です。
■ 初回だけ HotSaNIC
を初期化する
■
HotSaNIC を起動させる
以上の設定を終了後、起動スクリプト rrdgraph を実行することで HotSaNIC を起動できます。
※
初めての起動後10分ぐらいは蓄積データがないためにグラフは表示されません。
終了させるコマンドは
※ 再起動は stop と
start を実行します。restart はありません。
●
サムネールを作成する モジュールのグラフ画像が表示されるようになったら「インデックスペー
ジのサム
ネール」を作成します。
実行すると上記のインデックス
ページにグラグのサムネールが表示されるようになります。
■
完成したインデッ
クスを見る
●
3つのインデックスページ 0.5.0-pre6
ではインデックスページが3個用意されています。
まだ開発過程の snapshot 版ですが、menu.html
とframe.html が新しく追加されました。
HotSaNICロゴの壁紙も追加されてちょっと見栄えもよくなりました。
index.html
| | menu.html
|
 | |  |
| | |
frame.html
| | |
 | | |
● インデックスページをカスタマイズするには
HotSaNIC
のインデックスページをカスタマイズするには、
Mozilla 付属の Netscape
Composer
を使うと便利です。
■ HotSaNIC を OS起動時に自動起動させる
Linux
の起動時に自動的に HotSaNIC
を起動させるには、起動スクリプトの rrdgraph を /etc/rc.d/inetd に登録する。
#
cp
/usr/local/HotSaNIC/rrdgraph /etc/rc.d/init.d <--- コピーする #
chkconfig --help <---
コマンドオプションをしらべる #
chkconfig --add rrdgraph <---
システム・サービスに登録する
# chkconfig --level 345 rrdgraph on <--- Run レベルを設定する #
chkconfig --list <---
サービスの一覧をしらべる
|
※
自動起動の設定後に、HotSaNIC の設定を変更をした時は、rrdgraph を再起動させてください。
■
エラ-メッセージはログに吐き出させる
グラフ画像が出力されなかったり、トラブルが発生した場合はドキュメント
を読んで
考えます。
特定のモジュールのグラフが表示されない場合は、必要なソフトが不足していたり、settings
の設定記述に原因があることが多いようです。
問題を解決するためにログを調べることが推奨されています。
HotSaNIC
についてのエラーメッセージとイベント発生などのがすべてログに出力されます。
【
HotSaNIC.log の事例 】
<<
途中を省略 >>
ntp2.jst.mfeed.ad.jp: timed out, nothing received
***Request timed out
[Wed 2005-04-27 07:49:00] - PING [5039] error: Unknown ping method!
Use of uninitialized value in join or string at
../../lib/HotSaNICmod.pm line
442 (#1)
(W uninitialized) An undefined value was
used as if
it were already
defined. It was interpreted as
a "" or a 0,
but maybe it was a mistake.
To suppress this warning assign a
defined value to
your variables.
To help you figure out what was
undefined, perl
tells you what operation
you used the undefined value
in. Note,
however, that perl optimizes your
program and the operation displayed in
the warning
may not necessarily
appear literally in your
program. For example,
"that $foo" is
usually optimized into "that " . $foo,
and the
warning will refer to
the concatenation (.) operator, even
though there is
no . in your
program.
<<
途中を省略 >>
|
(
設定ファイルsetting でのPING
のメソッド指定が意味不明です・・・ というメッセージです。 )
&
nbsp;ログは自動的にローテーションされます。(古いログは圧縮されその後
削除されます。)
■ 文字化け対策
「週(weekly)グラフ」で文字化けが発生する場合、
rrdgraph に以下の4行の設定を追加する。
# Description: HotSaNIC
system statistics ### END INIT INFO
LC_TIME="abday" export
LC_TIME PERL_BADLANG=0 export
PERL_BADLANG
cd "/usr/local/HotSaNIC"
.
./settings < 以下省略 >
|
2004
年末に
HotSaNIC-0.5.0-pre6-snapshot がリリースされました。この版では、setup.pl
がさらにを自動化されて使いやすくなっています。今回追加された NTP
モジュールのグラフは、今までよくわからないまま使用していた NTPの理解を深める上で大変役立ちました。
HotSaNIC の優れた点は、UNIX やプログラミングの高度なスキルを必要とせずに、むすかしい設定作業をすべて Perl
のスクリプトで処理してくれることです。このおかげで、ユーザーは完成した管理ツールの利用に専念できます。
折線グラフの魔術師とも呼ばれる Tabias Oekiker 氏の開発した MRTG から RRDTool
が生まれました。RRDTool
がリリースされたことでMRTGで使われた技術が応用しやすくなり、関連するさまざまなアプリケーションが開発されるようになりました。
HotSaNIC は Bernd Pissny 氏らのグループが開発しています。
【 謝辞 】 HotSaNIC
の開発グループおよび、関連するソフトウェアを開発してくださった方々に感謝します。
多くの方にこのすばらしいソフトウェアの恩恵がありますようにこのページを公開しています。