HotSaNIC-0.5.0-pre6 のインストール

Updated : 2008/07/27     
Top > 書庫2 > HotSaNIC-0.5.0-pre6

HotSaNIC-0.5.0-pre6-snapshot
HotSaNIC-0.5.0-pre6 snapshot のインデックスページ
 ■ HotSaNIC-0.5.0-pre6 のインストール方法を説明します
 HotSaNIC 最新版の HotSaNIC-0.5.0-pre6-snapshot (2004/11/10)を試用しています。
現在自宅サーバーで使用中の HotSaNIC-0.50-pre5 にくらべて、機能が拡張されて使いやすくなりました。
0.5.0-pre6-snapshot は開発途上ですが、完成度が向上して使いやすいのでおすすめできます。
このページでは HotSaNIC ( HTML Overview To System And Netowrk Information Center ) のFedora Core4 へのインストール方法と、新しい機能を簡単に説明します。他の Linuxでもほぼ同じ手順でインストールできます。

  ■ ページのメニュー 
  1. HotSaNIC の機能 
  2. インストールの概要
  3. 関 連ソフトの準備 
  4. HotSaNIC-0.5.0-pre6 のインストール 
  5. モ ジュールの設定 
  6. HotSaNIC の起動 
  7. ト ラブルシューティング 
  8. メモラン ダム 


  HotSaNIC の機能

 ■ 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 で変ったところ 】


  インス トールの概要

 ■ HotSaNIC を利用できるUNIX

   HotSaNIC はUNIX環境で利用できます。Windows では利用できません。
このページでは Fedora Core Linux 3  にインストールする手順を説明していますが、他のLinux  でも基本的には同じです。

 ■ HotSaNIC に必要なソフトウェア

   HotSaNIC を利用するために次のソフトウェアをあらかじめインストールし連携させる設定をします。
   Linux の場合 HotSaNIC以外は、RPMパッケージを利用してインストールして利用できます。

HotSaNIC-0.5.0-pre6-snapshot
HotSaNIC の本体スクリプト
入手先 : http://hotsanic.sourceforge.net/
   rrdtool-1.0.* 系を使います。

RRDTool
HotSaNIC が収集した情報を管理するラウンドロビン・データベース
入 手先 : http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/

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 パッケージをワイルドカードですべてインストールします。

# yum install net-snmp*

 ※ 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 パッケージをインストールします。


# yum install httpd-*


 HotSaNIC で作成した HTMLページを出力するディレクトリを /var/www/hotsanic/ として作成する。

# mkdir /var/www/hotsanic

  /var/www/hotsanic/ をApacheの公開ディレクトリとして /etc/http/conf/httpd.conf に次の設定を追記する

Alias /hotsanic/ "/var/www/hotsanic/"
<Directory "/var/www/hotsanic">
    Options MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


設定を有効にするために Apache を再起動させる

Apache をインストール後は Fedora Core3 を起動時に Apache  が自動起動するように設定します

# /etc/rc.d/init.rd/httpd start
# chkconfig --level 345 httpd on

他のネットワーク上のパソコンで Apache が起動していることをのブラウザーで確認できれば準備完了です。
Apache Default Page
 http: //[マシンIPアドレス] でデフォルトページが見える。
 


  HotSaNIC-0.5.0-pre6 のインストール

 ■ hotSaNIC-0.5.0-pre6-snapshot のソースプログラムをダウンロードする

公式Webサイト
公式Webページの daily snapshot をクリックする
 ■ HotSaNIC をインストールする
● ソースファイルを解凍したファイルを /usr/local にディレク トリごと移動させます


$ cd /usr/local/src
$ tar zxvf hotsanic-0.5.0-pre6-snapshot.tar.gz
# mv -i HotSaNIC /usr/local
# cd /usr/local/HotSaNIC
# ls
CVS  README    convert.pl   images  makeindex.pl  rrdtimer.pl  tools
Documentation  clearall  diagrams.pl  lib  modules    setup.pl var


 カレントディレクトリを /usr/local/HotSaNIC に移動し、以下のインストール作業をします。

 README を開くと インストール手順などの情報が簡潔に書いてあるので最初に読みます。
 詳しいドキュメントはソースファイルを解凍した doc/ 以下のディレクトリに用意されています。
● 設定スクリプト setup.pl を実行する

   HotSaNIC の基本的な設定は、設定スクリプト setup.pl の質問に答えることで簡単にできます。
設定スクリプト setup.pl を実行し自分の管理したい事項について質問に Yes/ No で返答を入力します。

setup.pl 実行事例
setup.pl を実行後、基本事項が設定済みの設定ファイル settings が自動生成されます。

 上記の対話式の設定で返答を間違えた場合は、setup.pl を再実行することでやり直すことができます。
 または設定後に設定ファイル settings を修正することで、管理グラフの使用/不使用を簡単に変更できます。

● 設定ファイル settings を完成させる

設定スクリプト setup.pl の実行後、settings の設定事項をエディターで点検・修正して完成させます。

settings の設定事例

settings での設定項目はすべて必須事項なので、HotSaNICが正しく動作しない場合は記述を点検・修正します。
 使用するコマンドのパス、Webディレクトリ・パスなどを、使用環境に合わせて書き換えて修正することもできます。

 ■ インデックス・ページを作成する

設定作業が終了したら、makeindex.pl を実行しWebディレクトリに 「インデックスページ」を生成させます。

● インデックスページは makeindex.pl を実行して自動生成する


# ./makeindex.pl

スクリプト終了後、Webディ レクトリ /var/www/hotsanic/ 以下に「インデックスページ」が出力される。

makeindex.pl は、settings の記述にしたがってモジュールの項目を含むテンプレートを Webディレクトリに出力するスクリプトです。したがって、正しく生成できない場合は settings を点検・修正して再度 makeindex.pl を実行する。
● 「インデックスページ」をしらべる

生成された /var/www/hotsanic/index.html をブラウザー( IE、Mozilla、FireFox etc.)で閲覧する。
makeindex_plで生成されたインデックスページ <-- まだ未完成のページ
 グ ラフ画像のないとほほな index.html が見えれば成功です。

上の画像のようなインデックスページが生成され、さらに画像の最上段に「モジュール名」が表示されれば成功 です。
設定した「モジュール名」が表示されない場合は、settings を点検・修正し、再度 makeindex.pl を実行して再生成します。

このあと 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 を初期化する

# rrdtimer -i


■ HotSaNIC を起動させる

以上の設定を終了後、起動スクリプト rrdgraph を実行することで HotSaNIC を起動できます。

# ./rrdgraph start

 ※ 初めての起動後10分ぐらいは蓄積データがないためにグラフは表示されません。

終了させるコマンド

# ./rrdgraph stop

 ※ 再起動は stop と start を実行します。restart はありません。

● サムネールを作成する

 モジュールのグラフ画像が表示されるようになったら「インデックスペー ジのサム ネール」を作成します。

# ./convert

 実行すると上記のインデックス ページにグラグのサムネールが表示されるようになります。


 ■  完成したインデッ クスを見る

● 3つのインデックスページ
0.5.0-pre6 ではインデックスページが3個用意されています。
まだ開発過程の snapshot 版ですが、menu.html  とframe.html が新しく追加されました。
HotSaNICロゴの壁紙も追加されてちょっと見栄えもよくなりました。

 index.html

 menu.html
vanilla

menu



 frame.html


frame



 
● インデックスページをカスタマイズするには

 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 の開発グループおよび、関連するソフトウェアを開発してくださった方々に感謝します。
多くの方にこのすばらしいソフトウェアの恩恵がありますようにこのページを公開しています。


もどる もどる    Top > 書庫2 > HotSaNIC-0.5.0-pre6