HotSaNICのインストール

Updated : 2008/08/16           
[Top} --> [書庫2] --> [HotSaNICのインストール]

HotSaNICのモニター画面
HotSaNICのモニターページ例

  HotSaNIC とは?

HotSaNIC を一言でいうと、サーバーの状態(トラフィック、負荷、メモリー、CPU、HDD領域、CPU温度、HDD温度、起動デーモン数)をグラフで時々刻々モニターするツールです。

サーバーをモニターする事例の図

モニターのグラフは以下の図のように時系列で最大1年間記録されます。このモニターグラフは GIF(*.gif) 画像ファイルとして連続して保存できるので、トレンドを把握するだけでなくサーバーのフライトレコーダーのようなログとしても利用できます。

CPU温度を1年間モニターしたグラフの例。
 ※ CPUファンレス・サーバーのCPU温度モニターのグラフの例 (2003/04 - 2004/05)

RRDTool、Net-SNMP と Apache を必要としますが、すでに利用可能な状態にあるものとして、HotSaNIC のインストール手順を中心に説明しています。HotSaNIC を利用するためには、Apache と SNMP の知識が必要なので、あらかじめしくみを理解されることをおすすめします。ここでは説明はほとんど省略しています。
 
  HotSaNIC の特徴など

 HotSaNIC は、SNMP と RRDTool を利用してネットワーク上の機器やサーバー等のモニターをするツールです。
HotSaNIC では、モニターする事項ごとにモジュールが用意されています。またモジュールは自分で作成することもできます。HotSaNICは、Perlスクリプトで 書かれています。ソースにはグラフ生成に必要なライブラリーをすべて含んでいますが、唯一サムネール ( 縮小画像 ) だけは、ImageMagick を使う設定になっています。(サムネールが不要の場合は、「不要」か「HTMLサムネール」を選ぶこともできます。)

   HotSaNIC は情報収集するだけですが、グラフ作図はやはりCPUに負荷がかかるので、必要最小限の項目を利用することをお勧めします。。。
FreeBSD などのBSD系OSでは、利用できるモニター項目が少なくなります。
        くわしくは 本文の HotSaNIC$/.settings.default を読んでください。
   HotSaNICでは、モニターする項目ごとにモジュールが用意されています。またモジュールが自分で作成することもできます。モジュールによっては、 sensors のようにLM_sensors などの外部プログラムを必要とするものもあります。
 RRDToolは、MRTGにくらべてシステムの負荷が軽減されると述べられていますが、多くのモジュールを稼動させると負荷が増えます。バランスのと れた最小限のモニター項目を選びましょう。
※ 本文では、テキスト作成の都合の関係上コマンド実行は root で行っています。
  実際のインストールでは、一般ユーザーと管理者(root) を使い分けてください。

2003年9月現在での安定版は、HotSaNIC-0.4.0 です。開発版の HotSaNIC-0.5.0 ではモニター項目が追加されています。最初は 安定版を利用することをおすすめします。
  
  MRTG と RRDTool のちがい

 MRTG は、ルーターのトラフィック情報をグラフ化する目的で開発されました。しかしMRTGは、ルーターだけでなくSNMP から収集できるさまざまな情報を、グラフィカルにHTML画面で表示することができます。そのためにネットワークでのさまざまな管理ツールとして使われて います。
 RRDTool (Round Robin Database Tool )は、MRTGを開発した Tabias Oetiker氏が、次世代のツールとして開発したツールです。MRTGの負荷を減らし機能を 拡張したRRDToolでは、2種類以上の時系列データを1つのグラフに記述することができて便利です。

MRTGは、SNMPマネージャとして次の3種類の処理を行います。
@ データ収集
A データ解析
B グラフ作成
RRDTool は、このうち@とAの処理を常時実行します。グラフ表示については、別途にCGIスクリプトを用意して、Webからの閲覧(リクエスト)があった時だけ、 オンデマンドで作成します。そのため、MRTGが Cronで5分ごとにグラフを生成するのに比べて、RRDTool はサーバーの負荷が軽減されるというメリットがあります。

  HotSaNIC でモニターできる項目

現在の安定版である HotSaNIC-0.4.0 では、つぎの事項をモニターすることができます。

  動 作を確認したUNIX 環境

PC
OS
CPU
マザーボード
メモ
自作
 RedHat Linux 8
  VIA-C3 800Mhz
 JetWay603TCF
 良好
自作
 FreeBSD 4.7
  Pentium4 (S423)1.7GHz
 Asustek P4T-M
 項目がすくない
自作  Fedora 4
   Pentium M /1.7GHz
AOpen i855Gmem
 良好
自作 Fedora 9   Pentium Dual Core 2GHz Intel DG35EC lsensors は不可
自作 Cent OS 5.2   Celeron D 2.9GHz  Intel DG945PSN

上記の動作環境で HotSaNIC-0.4.0 をインストールしましたが、モジュールの全項目についてはテストしていません。

  HotSaNIC を利用するための関連ソースプログラムを入手する

HotSaNIC を利用するためには、次のソフトウェアが必要です。
本文では、rpm のパッケージではなくすべてソースからインストールしました。
Perl 5.x  通常の UNIX や Linux には Perl5 がデフォルトでインストール済みです。

SNMP    SNMPの実装である ucd-snmp と net-snmp は開発版と安定版という違いだけです。
       URL : http://net-snmp.sourceforge.net/

RRDTool MRTGを開発した Tabias Oetiker氏が、次世代のツールとして開発したRRDTool
       URL : http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/

HotSaNIC SNMP で取得したデータを、RRDToolを利用して、グラフ化する制御をします。
       URL : http://hotsanic.sourceforge.net/

ImageMagick HotSaNIC のHTMLページに表示するグラフのサムネール(縮小画像)を作成する
         ために利用します。サムネールの画質にこだわらず、簡易表示にするならば
         必要ありません。また、Perlモジュールの Image::Magick でも代用可能らしい?
          URL: http://www.imagemagick.org/

Apache     httpd サーバーのApache で、HotSaNIC で作成したグラフを公開します。
          URL : http://www.apache.org/

  net-snmpd のインストール

snmpについての説明は省略します。最低限の手順だけ書いておきます。

@ インストールする

$ tar zxvf net-snmp-5.0.6.tar.gz
$ cd net-snmp-5.0.6
$ make
# umask 022
# make install


A 設定ファイル snmpd.conf のテンプレートをコピーする

# cd /usr/local/share/snmp/
# cp /usr/local/src/net-snmp-5.0.6/EXAMPLE.conf  /usr/local/share/snmp/snmpd.conf

# which snmpd
    <-- snmpd のパスを調べた
    /usr/local/sbin/snmpd
snmpd.conf のパスは、Linux も FreeBSD も /usr/local/share/snmp/snmpd.conf となっています。
Community 名は適切な値を設定してください。セキュリティも配慮してください。

B snmpd.conf の設定

# vi snmpd.conf   <-- エディタで書き換える

++++++++ 省略 +++++++++
##      sec.name    source    community
com2sec    local    localhost    WHZAT
++++++++ 省略 +++++++++
Community 名はパスワードを意味し WHZAT を設定した。その他の項目も適切な値を設定する。

C snmpd の動作を確認する

# snmpd -c /usr/local/share/snmp/snmpd.conf   <-- snmpd を起動する
# snmpwalk -v 1 -c purple localhost system   <-- システム情報取得のコマンドを実行
++++++++ 省略 +++++++++
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.6 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.8 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (4) 0:00:00.04
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (4) 0:00:00.04
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (4) 0:00:00.04
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (4) 0:00:00.04
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (4) 0:00:00.04
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (5) 0:00:00.05
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (5) 0:00:00.05
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (5) 0:00:00.05
 snmpd から取得した情報がだらだらと表示されれば snmpd の正常な動作が確認できた。

  RRDTool のインストール

RRDTool についての説明は省略します。コマンドだけ書きます。

$ tar zxfv rrdtool-1.0.38.tar.gz
$ cd rrdtool-1.0.38
$ ./configure
$ make
# make install
# make site-perl-install

 rrdtool-1.0.* または rrdtool-1.3.* を使用してください。
 make install の実行によって、RRDToolは /usr/local/rrd-1.0.38  ディレクトリにインストールされる。
今後のバージョンアップを考えて、/usr/local/rrdtool へシンボリックリンクを張っておく。

# cd /usr/local/
# pwd
          ←/usr/local/であることを確認
   /usr/local
# ln -s rrdtool-1.0.38 rrdtool


 MRTGでは、単に2つのデータを渡せばよいが、RRDTool では最初にデータベースファイルを用意する必要がある。

  ImageMagick のインストール

ImageMagick に含まれるサムネールを作成する convert というコマンドだけを使います。
convert コマンドの有無を確認する

# which convert
/usr/bin/convert  <--- convert はインストール済み

convert がインストールされていない場合は以下の手順で入れる。

$ tar zxvf ImageMagick-5.5.4-4.tar.gz
$ cd ImageMagick-5.5.4

$ ./configure
$ make
# make install
# identify -verbose logo:

   make には時間がかかります。

  HotSaNIC のインストール

@ 適当な作業ディレクトリで、HotSaNIC のソースを解凍展開する

$ cd /usr/local/src/
$ tar zxvf HotSaNIC-0.4.0.tgz

ここでは、便宜上ディレクトリ名を変更しました。

$ mv HotSaNIC-0.4.0 HotSaNIC

  ここでは、便宜上ディレクトリ名を変更しました。

A ドキュメントを読む

$ cd /usr/local/src/HotSaNIC

  README

    Documentation/README こちらがマニュアルになっています。
 
B インストール用スクリプトを実行する
 環境設定用スクリプト setup.pl が用意されているのでそれを実行する。
スクリプトを実行すると、さ まざまな質問が出るので、それに答えることで設定ファイルが生成される。基本的な設定事項は、自動的に設定ファイルに設定さ れ保存される。
スクリプトの実行を終了すると、設定ファイル setting が生成される。
設定を間違えても、生成された設定ファイル setting を書き換えて変更できる。

    質問は「XXXモジュールを使用するか?」と、「Web表示するか?」という内容で、Yes かNoで答えます。
   質問の「WORM」と「PING」「SENSOR」以外は「Y」で答えて問題ないでしょう。

[root@maxter HotSaNIC]# ./setup.pl

    Module found: SENSORS              # SENSORS モジュールを利用するか?
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > Y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > Y

    setting up data-sensors ...

    Please check the settings file and adapt it to satisfy your needs.
    for your info: this configuration is a bit tricky

                         # CPU温度、FAN、電圧のセンサー監視 ( 別途に Lm_Sensors が必要です )
    ----------------------------------------

    Module found: DNET              # DNET モジュールを利用するか?
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-dnet ...

    Please check the settings file and adapt it to satisfy your needs.

    ----------------------------------------

    Module found: PART             # ハードディスクの領域使用状況を監視
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-part ...

    Please check the settings file and adapt it to satisfy your needs.
    you have to configure some destination networks.

    ----------------------------------------

    Module found: PING             # ( ping を流して)ネットワークの応答時間データを収集します
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > n

    Module found: TRAFFIC         # NIC のトラフィックモニター
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-traffic ...

    Configuring local interfaces. Please answer these:
    found: eth0  -  (y)es or (n)o ? y

    found: lo  -  (y)es or (n)o ? n


    Please check the settings file and adapt it to satisfy your needs.
    If you have any interfaces slower than 100 MBit, please change the
    corrosponding default values.

    Maybe there are some additional interfaces or SNMP hosts you want
    to query.

    ----------------------------------------

    Module found: NETWORKS
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-networks ...

    Configuring local interfaces.
    (i)nternal means an interface pointiong to your local machines (intranet)
    (e)xternal means an interface connecten with the internet
    (n)one means you don't want to account this interface.

    Please answer these:
    found: eth0  -  (i)nternal, (e)xternal or (n)one ? i

    found: lo  -  (i)nternal, (e)xternal or (n)one ? n


    Please check the settings file and adapt it to satisfy your needs.
    you have to configure some destination networks.


    ----------------------------------------

    Module found: DISKIO             # HDDの I/O 転送速度を監視するか?
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-diskio ...

    Please check the settings file and adapt it to satisfy your needs.

    ----------------------------------------

    Module found: SYSTEM     # OSのモニターをするか?
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > y
    Do you want to show this module's graphs on the webpage ? (Y)es / (n)o > y

    setting up data-system ...

    Please check the settings file and adapt it to satisfy your needs.

    ----------------------------------------

    Module found: WORMS             # ワーム検出をするか?
    ----------------------------------------
    Do you want to use this module ? (Y)es / (n)o > n

                                    #最後に次のような設定確認が表示される

      checking for OS-type (current: not configured)
    OSTYPE="Linux"
      checking path to "rrdtimer" (current: not configured)
    DAEMONDIR="/usr/local/src/HotSaNIC"
      checking path to "rrdtool" (current: not configured)
    detected: /usr/local/rrdtool-1.0.40/bin
    is this corrrect? (y)y
    BINPATH="/usr/local/rrdtool-1.0.40/bin"
    LOGDIR="$DAEMONDIR/log/"
    PIDFILE="$DAEMONDIR/log/rrdtimer.pid"
    DIAGRAMLOG="last"
    LOGSIZE="200000"
    LOGBACKUPS="5"
    DEBUGLEVEL="-1"
    STIME="120"
    RUN="sensors dnet part traffic networks diskio system"
    WEBDIR="not configured"
    WIDTH="600"
    HEIGHT="200"
    IMAGEFORMAT="gif"
    SHOW="sensors dnet part traffic networks diskio system"
    ORDER="traffic system part ping dnet sensors"
    DTIME="15"
    CTIME="24"
    CONVERTMETHOD="ImgMgck"
      checking path to "convert" from ImageMagick (current: not configured)
    detected: /usr/X11R6/bin/convert
    is this corrrect? (y)y
    CONVERTPATH="/usr/X11R6/bin/convert"
    THUMBSIZE="20%"
    REFRESH="300"
      checking path to "snmpwalk" (current: not configured)
    detected: /usr/local/bin/snmpwalk
    is this corrrect? (y)y
    SNMPWALK="/usr/local/bin/snmpwalk"
      checking path to "snmpget" (current: not configured)
    detected: /usr/local/bin/snmpget
    is this corrrect? (y)y
    SNMPGET="/usr/local/bin/snmpget"

    Now adapt all settings files to satisfy your needs.
    They are all linked to the directory  ./settings.all .


 設問が終わると、設定した指定事項を上記のように表示してスクリプトは終了する。
この最後の表示部分には、設問にない項目があるので確認してください。
ファイル settings.all を直接エディターで編集することもできます。

C ディレクトリを移動させる
あらかじめソースを作業ディレクトリとして /usr/local/ で解凍・展開していれば 問題なかったが、/usr/local/src/ では支障が出るので、HotSaNIC をディレクトリごと /usr/local/ に移動する。


# mv -i /usr/local/src/HotSaNIC /usr/local

  

D 環境設定ファイル settings を再編集する
HotSaNIC-4 では、設定ファイルは次のような構造で、アイテムごとに分散されています

        HotSaNIC$-+- settings                 # HotSaNIC 全体の設定
                   +- data-diskio/settings     # Disk I/O に関する設定
                   +- data-dnet/settings        # dnet に関する設定
                   +- data-networks/settings  # networks に関する設定
                   +- data-part/settings        # Partition に関する設定
                   +- data-ping/settings        # ping に関する設定
                   +- data-sensors/settings   # sensors に関する設定
                   +- data-system/settings    # system に関する設定
                   +- data-traffic/settings     # traffic に関する設定
                   +- data-worms/settings     # worm に関する設定

 各アイテムの設定ファイルは、HotSaNIC$/settings.all/ 以下にシンボリックリンクが張られている。

   設定手順は、最初に HotSaNIC$/settings を設定して正常な動作を確認してから、各アイテムに settings に関する設定を行うのがいいでしょう。

   次に実行するmakeindex.plに備え,「RRDToolのバイナリファイル先」やApacheの「ドキュメントルート指定」などを設定しておく。
    デフォルト値については、最低限編集が必須の個所は、矢印 表示の個所です。


    [root@maxter HotSaNIC]# more settings
    # In this file all global settings for HotSaNIC are defined.

    #####################################################################
    #                                                                   #
    # First we set some important system globals...                     #
    #                                                                   #
    #####################################################################

    # Which type of operating system do you use ...
    # Currently supported are:
    #
    # OSTYPE="Linux"
    #   fully featured for any Linux system, based on Kernel 2.4.x
    #   2.2.x based systems may encounter some incompatibilities
    #
    # OpenBSD                # HotSaNIC の開発環境は Linux なので、
    # FreeBSD                # BSD系にまだ未対応の項目がある。
    # NetBSD
    #   at the moment a lot of work has to be done to get the system
    #   completely running under BSD based systems. Currently supported
    #   are the following modules:
    #
    #               FreeBSD         OpenBSD         NetBSD
    #     diskio    not tested      not tested      not tested
    #     dnet       --- should work (it's just log-parsing) ---
    #     networks   --- currently only for Linux/IPTables   ---
    #     part      ok              ok              ok
    #     ping      should work     not tested      ok
    #     sensors   not tested      not tested      not tested
    #     system    not tested      not tested      ok
    #     traffic   ok              not tested      ok
    #     worms      --- should work (it's just log-parsing) ---
    #
    OSTYPE="Linux"

    #####################################################################
    #                                                                   #
    # Then let's configure some pathes...                               #
    #                                                                   #
    #####################################################################

    # path to the HotSaNIC main-directory
    # this has to be a directory !
    #
    #   DAEMONDIR="/home/daemon/HotSaNIC"
    ###
    DAEMONDIR="/usr/local/HotSaNIC"

    # path to the "rrdtool" binary
    # this has to be a directory !
    #
    #   BINPATH="/usr/local/rrdtool-1.0.33/bin"
    #
BINPATH="/usr/local/rrdtool/bin"

    # set LOGDIR to the directory where logfiles shall be created
    #   LOGDIR="$DAEMONDIR/log/"
    #
    LOGDIR="$DAEMONDIR/log/"

    # path to the pid-file for the daemon
    #   PIDFILE="$DAEMONDIR/log/rrdtimer.pid"
    #
    PIDFILE="$DAEMONDIR/log/rrdtimer.pid"


    #####################################################################
    #                                                                   #
    # Here are some global parameters                                   #
    #                                                                   #
    #####################################################################

    # if DIAGRGAMLOG is set to "all" then all diagrams will be logged.
    # anything else will log only the last diagram.
    # when logfiles reach LOGSIZE they will get rotated.
    # LOGBACKUPS old logfiles will be kept as backups
    #
    DIAGRAMLOG="last"
    LOGSIZE="200000"
    LOGBACKUPS="5"

    # level of debugging (-1 .. 5)
    # -1 means no debugging information at all
    #
    DEBUGLEVEL="-1"

    # module-scan timebase (seconds)
    # After this time the daemon re-scans for available modules.
    #
    STIME="120"

    # modules listed here (space separated) will be executed
    # to use all availabe mods you may enter
    # RUN="*"
    #
    RUN="sensors dnet part traffic networks diskio system"


    #####################################################################
    #                                                                   #
    # These settings affect the diagram generation                      #
    #                                                                   #
    #####################################################################

    # web-directory for all graphs      
# 作成したグラフと画面を出力するディレクトリを指定する
    # this directory must be writeable for the rrdgraph tool
    # because each plugin will create its own subdir here.
    #
WEBDIR="/home/httpd/stat/hotsanic"

    # Sizes of all output-graphics in pixels #グラフのサイズを指定する
    #
    WIDTH="600"
    HEIGHT="200"K

    # the output-format of the generated images may be either "gif" or "png"
    #
    IMAGEFORMAT="gif"

    # modules listed here (space separated) will be shown on webpage
    # to use all availabe mods you may enter
    # SHOW="*"
    #
    SHOW="sensors dnet part traffic networks diskio system"

    # in which order shall the modules appear on the webpage
    # unlisted mods will be added in alphabetical order
    #
    ORDER="traffic system part ping dnet sensors"

    # diagram-rebuild timebase (minutes).
    # Usually 15 min. should do fine, but if you think your system
    # is too busy, just increase the timebase as you like.
    # Values up to about 45 make sense since the lowest-scale graph
    # covers 60 minutes of data sampled.
    #
    DTIME="15"

    # diagram-convert timebase (hours)
    # After this time the weekly diagrams are being converted to
    # the smaller pictures on the main page.
    #
    CTIME="24"

    # This setting controlss how the images will be converted
    # to thumbnails
    #
    #   Value         Behaviour
    #
    #   "ImgMgck"    Call ImageMagick's "convert" to create thumbnails
    #
    #   "I::M"       Use the Image::Magick module
    #
    #   "HTML"       Don't convert at all, but use the HTML image resize
    #                tag instead. More data has to be transfered using
    #                this method, but you won't need additional software.
    #
CONVERTMETHOD="ImgMgck"

    # path to the "convert" binary from ImageMagick package
    # this has to be the full path to the binary !
    #
    #   CONVERTPATH="/usr/X11R6/bin/convert"
    #
    CONVERTPATH="/usr/bin/convert"

    # How much shall the thumbnails be scaled compared to the originals.
    # Default is 20%.
    #
    THUMBSIZE="20%"        # サムネールのサイズを指定する

    # refresh time for graphs
    # The browser automatically reloads the detailed statistics after
    # this timespan.
    #
    # If you want to disable the auto-refresh, just set the variable to 0
    #
    REFRESH="300"


    #####################################################################
    #                                                                   #
    # Helper applications                                               #
    #                                                                   #
    #####################################################################

    # configure the pathes of some additional applications which may be
    # needed by HotSaNIC
    #

    # configure the full pathes to snmpwalk and snmpget binaries here.
    # These may be needed to get data from remote machines.
    #
SNMPWALK="/usr/local/bin/snmpwalk"
SNMPGET="/usr/local/bin/snmpget"



 グラフ表示させる項目や、表示の優先順位なども変更できます。
WEBDIR では、Apache で(HotSaNICで作成したグラフを)表示可能なディレクトリを指定します。

以降の手順では、HotSaNICのトップページ(index.html )を自動作成するためのスクリプト makeindex.pl 、そして各データを手動で更新させるためのスクリプト rrdtimer を実行させる。
 ( 後述のデーモンを起動させると、rrdtimerを利用して自動更新される仕組みになっています)

D HotSaNICのトップページを作成するスクリプトを実行する

# ./makeindex.pl
    reading & checking config (/usr/local/src/HotSaNIC/settings) ...
    WEBDIR (path to HotSaNIC's output directory) does not exist.

     --- ATTENTION ---

    In future please use "rrdtimer -i" to generate the index files.
    this wrapper-script may vanish without further announcement.

     Webサーバー(Apache)での公開ディレクトリを用意してなかったのでエラー が出た。

● ディレクトリを作成する。


# mkdir /home/httpd/stat/hotsanic

    再度、実行してHotSaNIC も起動させる

    # ./makeindex.pl
    # ./rrdtimer -i

   
E 作成された HotSaNIC のWebディレクトリを調べる

# ls /home/httpd/stat/
    hotsanic  mrtg  rrd  PostPet

    # ls /home/httpd/stat/hotsanic/
    diskio  HotSaNIC.gif  networks  rrdtool.gif   system
    dnet    index.html      part         sensors     traffic

     各ディレクトリ内にそのモジュールのグラフ画面があれば成功です。

     上記のように Webディレクトリ内に各項目のデータが生成されていれば成功です。
    うまくいかない場合は、必要に応じて、ディレクトリのオーナー設定を確認してください。

  HotSaNIC を実行する

@ SNMP のデーモンを先に起動させる

# snmpd


A   HotSaNIC の起動スクリプト rrdgraph を実行する

# ./rrdgraph start


プロセスが起動しているか確認する


# ps -ax
PID TTY      STAT   TIME COMMAND
  1 ?        S      0:03 init [3]
----------< 途中を省略 >---------------
3756 pts/0    S      0:00 bash -i
4083 pts/0    S      0:00 /usr/bin/perl -w ./rrdtimer Dp
4330 pts/0    R      0:00 ps -ax


B   作成された HotSaNIC のコンテンツを見る
    はじめてHiSaNIC を起動した時は、snmp からのデータがログに蓄積されていないため
    Webページにはグラフが表示されません。


# ls /home/httpd/stat/hotsanic/system/
cpu-day.gif     load-day.gif   mem-hour.gif   proc-hour.gif   swap-hour.gif
cpu-hour.gif    load-hour.gif  mem.html       proc.html       swap.html
cpu-month.gif  load.html      mem-month.gif  proc-month.gif  swap-week.gif
cpu-week.gif   load-week.gif  mem-week.gif   proc-week.gif   users.html
cpu-year.gif   load-year.gif  mem-year.gif   proc-year.gif   week.html
hour.html       mem-day.gif    proc-day.gif   swap-day.gif

※ 最初は、RRDTool に十分なデータがないので、データのないグラフが出力されます。
  起動後約30分で rrdtool から収集したデータでグラフがはじめて生成される。
C 出力されたグラフ画像を確認する
 WebサーバーのApache の公開ディレクトリに出力された HotSaNIC の出力画像は、ネットワークに接続されたPCのブラウザー(IE6など)から見ることができます。

 Apache で、WEBDIR="/home/httpd/stat/hotsanic" に、適切なアクセス権を設定してください。

  URL : http://[サーバーのIPアドレス]/stat/hotsanic/

設定が適切であれば、上記のアドレスにブラウザーでアクセスするとグラフを見ることができます。
HotSaNICのトップ画面

  デー モンモードで HotSaNIC を起動させる設定
 
デーモンモードで HotSaNIC を起動させる設定
   Linux の起動時に、SNMPが自動起動するよう設定します。その後で HotSaNICも自動的に起動するよう /etc/rc.d/init.d/ ディレクトリ下に起動のスクリプトを置くのがいいでしょう。

 別の方法としては、/etc/rc.d/rc.local ファイル内に次のような記述を追加すればいいでしょう。


# vi /etc/rc.d/rc.local
    ----------< 途中を省略 >----------
    /usr/local/HotSaNIC/rrdgraph start  <----  この1行を追加する


     
OS を再起動して、SNMP と rrdgraph のデーモンが自動的に起動すれば成功です。

  HotSaNIC のカスタマイズ

 HotSaNIC は、それ自体のサーバー負荷が大きいことを、出力画面のグラフを見て認識してください。
グラフ表示されているマシンの状態は、HotSaNICの負荷を念頭において評価してください。
 以下の自分の実験で試行錯誤してわかった Tips などを参考にしてカスタマイズしてください。

  FAQ

 HotSaNIC については、自分のハマった問題や、利用者がたぶん困るであろう事項についてFAQを作りまし た。英文ドキュメントの補足として参考にしてください。


 Q1 トップページのグラフに サムネールが表示されない

 A2 大きな原因として考えられることはつぎの2つ です。
原因1: サムネールを作成するソフ ト ImageMagick などがインストールされていない
対策1: ImageMagick をインストールする。
対策2: Perlモジュール Image::Magick をインストールする。
対策3: サムネールに HTML を指定する。( 負荷は少ないがトホホな画像になります。)
原因2: サムネールを作成するソフト convert のパスが正しくない。
対策: HotSaNIC$ /setting の設定をチェックして上記の設定を行い、サムネールを作成するスクリプトを実行します。
"ImageMagick" の場合
[HotSaNIC$]# ./convert.pl
● "Image::Magick" の場合
[HotSaNIC$]# ./convert.sh
設定の修正がうまく行けば、トップページ以下の項目毎のディレクトリに、thumb_* というサムネールの画像ファイルが生成されます。
  Q3 グラフ表示項目に、 足りない項目や削除したい項目があるのでなおしたい。

  A3 再設定の方法
 makeindex.pl は、設定ファイル setting の指定した全体的な事項だけを指定します。
個々のグラフの事項については、各項目のディレクトリにある settings を直接編集・設定して、必要項目の指定や、不要な項目のコメントアウトをします。
各項目の設定が終了後に、カレントディレクトリにある makeindex.pl を再度実行してください。すると、詳細項目の設定が反映されたトップページが生成されます。
  Q4 HotSaNIC を起動後、15分経過してもグラフが更新されない。

 A4 グラフ画像が出力される Webサーバーの公開ディレクトリのオーナーまたはパーミッションを確認します。
[HotSaNIC$]# chown -R nobody /usr/local/apache/stat/hortanic

※ インストールする Apache の環境にあわせてオーナーなどをコマンドで設定してください。
  Q5 CPU温度の sensors が表示されない。

 A5 別途に Lm-sensors のソフトウェアをインストールしていない場合は、CPUチップからデータを取得できないので
    表示されません。Lm-sensors の rmp パッケージも用意されているので、インストールしてください。
      Lm-sensors は多くのチップセットに対応していますが、ハードウェアの知識も必要になります。
 Lm_Sensors :  http://secure.netroedge.com/~lm78/

※1 Lm-sensors は、CPUチップに内蔵された温度センサーのデータを読み出します。
※2 また、マザーボードのチップセットが Lm_sensors に対応していないと温度データを読み出せません。
  ( 古いPCの 日立FLORA DC330 ではダメでした。 )

  Q6 HotSaNIC- 0.5.0 を使ったがうまくいきません。( Updste 2004/03/25 )

 A6 開発版のHotSaNIC-0.5.0には、 新しい機能が追加され改良が加えられているようですが、
    同時にバグもあるようです。
HotSaNIC-0.5 の記事を追加しました 2004年3月に最新版の HotSaNIC-0.5.0_pre5 のインストールを追加しまし たのでごらんください。
   最新 版の 0.5.0_pre5 では、バグも取れてモジュールも増えています。0.5.0_pre5 をおすすめします


  Q7 HotSaNIC の負荷を減らすには? (2003/04/05)

 A7 HotSaNIC はデフォルト設定では、10秒ごとにデータ取得を実行します。
      そのためにパワー不足のマシンでは、HotSaNICの実行でHDDアクセスが大きな負荷になります。
      HotSaNICの実行時間のインターバルを増やして、HDDアクセスを減らすと効果があります。
rrdtimer のスクリプトの中の次の行を書き換えます。

      -------
        $now=time
     if($last+10<=$now {    # 数値はインターバルの秒数(10秒)を指定しています。
        -------

 デフォルト値の10秒を30〜60秒に変更して最適値を探してください。

変更後は、rrdgraph を再起動させて設定を有効にします。rrdtimer -i は実行する必要はありません。
SystemLoad のグラフで、負荷が軽減される様子を確認して加減します。同時にグラフのプロット数が減るので、グラフの全体のパターンはギザギザした表示になります。
    モニターグラフのプロット数と、システム負荷とのトレードオフに留意ください。

  おわりに
 2002年秋のMRTGをテスト中に HotSaNIC を見つけました。息抜きにHotSaNIC をインストールしてみたらたいへん便利なので、それ以降使い続けています。とくに 当Webサーバーが VIA-C3 (800MHz) をファンレスで運用しているために、CPU温度のデータを時系列グラフでモニターできて便利です。自サーバーでの実際の運用状況をご覧くださ い。
HotSaNIC のモニター      : http://whzat.minidns.net/hotsanic/index.html
HotSaNICで知るC3インサイド : http://whzat.minidns.net/c3/
 CPU温度センサー・モニター Lm_sensors のインストールのページは、後日に書く予定です。
■ オープンソースのソフトウェアを利用しています。
多くの熱心な研究者、技術者によって開発されたこれらの優秀なソフトウェアが、自由に利用できることに感謝しています。
Perlのロゴ
HotSaNIC のロゴ RRDTool_Logo
 Net-SNMP Logo
ImageMagic Logo
apache Logo

もどる もどる [Top} --> [書庫2] --> [HotSaNICのインストール]