HotSaNIC(サーバ監視)

サーバのシステム情報をグラフ化して表示します。

【参考サイト】
HotSaNICでCPUの温度等をグラフ化 http://k64.mydns.to/debian/hotsanic.html

【環境条件】
RRDTool    グラフを作成するプログラム  Synapticパッケージマネージャからインストールします。
         (とりあえずUbuntuマークの付いた librrds-perl も入れておきました。)
ImageMagick  以前XOOPS Cube Legacy + YYBBS でインストール済みです。
          リンク ない場合はインストールします。
HotSaNIC   これはSynapticパッケージマネージにないのでサイトからダウンロードしてきます。

HotSaNICのインストール
HotSaNICのサイト http://hotsanic.sourceforge.net/
downloadより hotsanic-0.5.0-pre5.tgz をダウンロードする。
任意のディレクトリ(/usr/local)へhotsanic-0.5.0-pre5.tgzを移動またはコピーして解凍します。

/usr/local/# tar -zxvf hotsanic-0.5.0-pre5.tgz    【解凍】

測定項目の設定
システムの測定する項目を指定する。

# cd /usr/local/HotSaNIC
# ./setup.pl  
質問に答えます。
traffic、system、part(ディスクパーティション情報)、sensors(ハードウェア情報)、netstat(ネットワークソケット情報)で y を選択しました。
インターフェイスは eth0 と lo をyで選択しました。
再度設定をする場合は setup.pl コマンドを実行する。

個別の測定項目の追加と削除をする場合
   【/usr/local/HotSaNIC/settings】を編集する。
   【127行目あたり】 RUN=”netstat part sensors system traffic” 【項目の追加・削除】
   【156行目あたり】 SHOW=”netstat part sensors system traffic” 【項目の追加・削除】

グラフを配置するディレクトリの作成
システム監視グラフを出力して表示するディレクトリを作成します。
端末より管理者になり
# mkdir /var/www/hotsanic

所有者をApacheの実行ユーザーに変更
# chown -R USER:gruopA /var/www/hotsanic
   (/var/www/hotsanicの権限を例:USERユーザ 例:gruopAグループに変更します。)

HotSaNICの設定
【/usr/local/HotSaNIC/settings】を編集

【72行目】 BINPATH=”/usr/bin”    【変更】実行モジュールrrdtoolのパスの設定

【141行目】 WEBDIR=”/var/www/hotsanic”    【変更】表示するディレクトリ

【150行目】 IMAGEFORMAT=”png”    【変更】グラフの出力形式.Pngで出します.

【169行目】 DTIME=”15″          【確認】15分間隔でシステムチェックの更新を行う
                      (グラフ表示の確認のためはじめは5分でもよいと思います。)

【190行目】 CONVERTMETHOD=”ImgMgck”     【確認】サムネイルの出力エンジン 

【197行目】 CONVERTPATH=”/usr/bin/convert”   【確認】convertのパス

※サーバの負荷を減らす場合は測定する項目を減らしたり、データー収集間隔をあける。
データ収集間隔を広げる。
(HDDの書き込み音(カリカリ)が気になる場合など60秒ぐらいにします。
その代わりに出力されるグラフが荒くなります。)
【/usr/local/HotSaNI/rrdtimer.pl】を編集する。

      while () {
     $now=time;
【138行目】 # if ($last+60 3) { print “\n”; }
         }
        }
        $last=$now;
【138行目】 # } 【変 更】コメント#を外して有効にする。

アクセス制限
サーバのシステム情報を外部に公開するといけませんのでLAN内のみアクセスできるようにアクセス制限を設定します。
サイトが有効の場合はの無効にする。(無効の場合はスキップ)
# a2dissite default2

サイトの設定
【/etc/apache2/sites-available/default】
(すでにdefaultファイルをコピーしてある場合はスキップします。)
/etc/apache2/sites-available/# cp default default2

【/etc/apache2/sites-available/default2】を編集する。

    
<VirtualHost *:80>        ポートはこのまま    
    
DocumentRoot /var/www/   ディレクトリこのまま    
    
<Directory /var/www>      ディレクトリこのまま    
    Options FollowSymLinks MultiViews    
         (※OptionsのIndexesを削除する。    
          Indexesを外すとファイルの一覧は表示されない)    
        AllowOverride None    
        Order allow,deny    
        allow from all    
</Directory>    
    
    
【追加】以下の5行を追加する。    
<Directory /var/www/hotsanic/>    
     Order deny,allow    
     deny from all    
     allow from 192.168.0.0/24  ←LAN内からのみアクセス許可(※IPアドレスは自分の環境に変更すます。)    
</Directory>    

/etc/apache2/sites-available# a2ensite default2
  default2 のサイトを有効にします。

設定が完了したらApache2を再起動します。
# /etc/init.d/apache2 restart
 エラーが出たら各設定を再度確認する。

CPUとHDDの温度測定
lm-sensors   CPUやマザーボードの温度や電圧などの情報を取得します。
hddtemp     HDDの温度を取得します。

以前、「CPUとHDDの温度、電気料金」でsensors-appletをインストールしている場合は
Lm-sensorsとhddtempは自動的にインストールされているみたいです。
リンク
入っていない場合はSynapticパッケージマネージャから検索してインストールします。

lm-sensorsの動作確認
端末より管理者になり
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +40.0°C (crit = +60.0°C)

結果はCPUの温度は表示されるのですがAdapterが Virtual device と表示されてしまい
正しくデバイスが認識されていないみたいです。
調べてみるとlm-sensorsやUbuntuのカーネールのバージョン問題があるみたいです。
もしくはマザーボードが対応していない原因があります。

CPUの温度情報がlm-sensorsから取れなかったのでsensors-appletから取得することにしました。
Sensors-appletでマウスを右クリックしてPreferencesを選択します。
Sensors Applet Preferences画面が表示されSensorsタグを選択します。

acpi – THRM にcpuの温度が記載されていそうです。
次に 場所 – コンピュータのファイル・ブラウザを開きファイルシステムを選択します。
検索ボタンを押して検索:の欄にTHRMを入力してエンタキーを押して検索します。

THRMフォルダが見つかりそれをクリックします。
/proc/acpi/thermal_zone/THRMのパスが表示されその中にtemperatureファイルがありました。
Temperatureファイルを開いて見てみます。

「temperature: 40 C」となっていました。
パラーメータの項目順は第2項目の40が使用できそうです。
とりあえず今回はCPUの温度だけ取得できればいいのでこれで対応します。

hddtempの動作確認
Sensors Applet Preferences画面 – Sensorsタグ – hddtemp下にデバイス名(/dev/sg0 /dev/sda)がわかります。

# hddtemp /dev/sda
/dev/sda: WDC WD10EADS-00L5B1: 37°C

# hddtemp /dev/sda -n    で実行します。

37
パラーメータの項目順は第1項目の37を使用します。

次にCPUとHDDの温度設定をします。
【/usr/local/HotSaNIC/modules/sensors/settings】を編集する。
以下の内容を追加します。

SENSOR=”/proc/acpi/thermal_zone/THRM/temperature,temp1,CPU1,2,1,0,ーC,0,60″
SENSOR=”/usr/sbin/hddtemp -n /dev/sda |”,sda,HDD1,1,1,0,ーC,0,60

   
【書式】SENSOR=<device-file>,<dbname>,<description>,<entry>,<scale-factor>,<add>,<unit>   
<entry>では温度や電圧などの数値の位置をしめします。   

HotSaNICの動作確認
# cd /usr/local/HotSaNIC HotSaNICをインストールした位置へ移動
# ./makeindex.pl   htmlファイルの作成
# ./rrdgraph start   システム監視プログラムを起動する。(停止:stop  再起動:restart)
(15分後にグラフが出力される。)

# ./convert.pl グラフのサムネイル(縮小)画面の作成

/var/www/hotsanicのフォルダにhtmlのグラフが作成されます。

LAN内から接続
Webブラウザで【http://IPアドレスまたはドメイン名/hotsanic】 にアクセスすると
サムネイルのグラフが表示される。
HotSaNIC01
CPU、HDDの温度もグラフ化できました。
traffic – eth0 のサムネイルをマウスでクリックしてみます。
外から接続
外から【http://ドメイン名/hotsanic】へ接続できないことを確認する。
画面以下の紋々が表示されシステム情報がみられません。
Forbidden
You don’t have permission to access /webdruid on this server.
または403が表示される。

自動起動の設定
Ubuntuの再起動時に自動的にプログラムを起動させるように設定する。
/usr/local/HotSaNIC# cp ./rrdgraph /etc/init.d/

# update-rc.d rrdgraph defaults

Ubuntuでは本来、update-rc.d を使用します。
自動起動を解除する場合は # update-rc.d rrdgraph remove になります。

これでサーバの状態が把握でき、不具発生時に役に立つと思います。
サーバのシステム監視には他に

Cacti(カクタイ)サボテン http://cacti.loaded.jp/
         Webブラウザ上で設定・管理ができます。
Ganglia     ネットワーク上の複数の監視ができます。
Nagios などがあります。
http://www.ibm.com/developerworks/jp/linux/library/l-ganglia-nagios-1/index.html
 
設定が大変そうですが、興味がありましたらのぞいて見てください。
【補 足】
※CPUの表示温度が変化しない場合はUbuntuサーバのBIOS設定で温度の設定項目を変更すると動き出す場合があります。

Munin(サーバ監視)

munin は自分自身(Local)を監視する。
munin-nodeはネットワーク上の他のホストも監視できる。 
Basic認証やIP制限などを行った方がいいと思います。
主な特徴
比較的導入が簡単
プラグインによる取得データの拡張が出来る
グラフ化部(マスター)とデータ取得部(ノード)が違うプログラムになっている。
インストール後
設定ファイルの編集
【/etc/munin/apache.conf】

グラフの出力先は
Alias /munin /var/cache/munin/www

# Order allow,deny コメントアウト

Order deny,allow
deny from all
  allow from localhost 127.0.0.0/8 ::1
allow from 192.168.0.0/24  ←LAN内からのみアクセス許可
(※Ipアドレスは自分の環境に変更すます。)

Apache2 の再起動
# service apache2 reload

Muninのトップページへアクセスする。
http://IPアドレス/munin

Apache,IOサービスタイム、CPU、メモリ使用状況、HDDのレイテンシーが記録される。
OSの再起動後も動作OK
Munin01