Xen/KVM Virtualization Management Application
  • 日本語
  • English

Karesansui Wiki


仮想化サーバー監視とは

Karesansuiでは、collected( http://collectd.org/ )を利用しホストOSのシステムリソース監視とゲストOSの監視に重点をおいたサーバー監視を行ないます。

サーバ監視のソフトウェアは、フリーソフトから有償製品まで、様々な種類がありますが、Karesansuiではその中でオープンソースソフトウェアであるcollectdを採用しました。


システム構成

collectdの特徴

collectdはシステムの様々な状態を収集する非常に小さなデーモンプログラムです。
UNIX上で動作し、ライセンスはGPLv2となっています。
本体がC言語で書かれた小さなデーモンプログラムのみで構成されており、システムに掛かる負荷が非常に少ないのが特徴です。
また、各種のデータの収集、記録などは、全てプラグインで追加していく形になっています。

各機能を使うためのプラグインも充実しており、あらかじめ90種類以上用意されています。

※Karesansui UIからは追加できませんが、任意のプラグイン設置も可能です。

CPUやネットワークトラフィックなど基本的なものから、Apacheの情報やSNMPなど、様々な情報を取得することができます。
さらに、自前でプラグインを作成するための言語バインディングも用意されているので、自分で好きな情報を集めるプラグインを作ることができます。

収集したデータの出力はRRD形式やCSV形式などがあります。KaresansuiではRRD形式を採用し収集データを行ないます。
また、収集したデータを別のサーバに送信する機能を持ったプラグインもあり、複数のサーバの情報を一箇所に集めることもできます。

※Karesansuiへの取り込みが検討されています。



その他に、collectdには値の収集/保存のほかにも、しきい値を利用したアラート機能があります。

Karesansui ではそれら機能を利用し、予めしきい値などの条件を設定しておき、条件に当てはまった場合に任意のスクリプトを実行したり、通知メールを送信する機能が実装されています。
この機能を利用することで、サーバの状態監視を自動化することができ、運用コストを劇的に軽減させることができます。

最後に、collectdはあくまでも値の収集や監視が目的なので、収集した値を見るためのインタフェースは提供されていません。
そこで、Karesansuiではシンプルで美しいレポート機能を実現しました。

監視で使われる設定ファイルについて

collectdは完全に独立して動作しており、設定ファイルはHDEが独自パスに置かれています。
collectd本体の設定ファイル : /etc/opt/hde/collectd.conf
各種プラグインの設定ファイル : /etc/opt/hde/collectd.d/*

RRD形式のデータ保存について
 - rrdchachedサービス(デーモン)経由で、/var/opt/hde/collectd/配下に保存されます。

設定変更不可データ

本体設定

収集間隔:10秒

設定変更可能データ

本体設定

読み込みスレッド数:5

デフォルトで有効可能になっているプラグイン一覧

cpu
 - 収集データ:CPUのアイドル時間など
 - 収集対象 :搭載されている全てのCPU(論理CPU数ごとに収集)

memory
 - 収集データ:メモリの使用量など
 - 収集対象 :搭載されているメモリ

df
 - 収集データ:ファイルシステムの使用量と空き容量(dfコマンドの結果と同等)
 - 収集対象 :全て(dfコマンドで表示されるファイルシステム)

disk
 - 収集データ:時間当たりの読み込み/書き込みデータ量など
 - 収集対象 :"/^(([hs]|xv)d[a-f][0-9]?|([a-z]+\/)?c[0-9]d[0-9](p[0-9])?)$/" 

interface
 - 収集データ:時間当たりの送信/受信パケット数など
 - 収集対象 :全てのNIC

load
 - 収集データ:ロードアベレージ
 - 収集対象 :collectdが動作しているマシン

uptime
 - 収集データ:起動時間
 - 収集対象 :collectdが動作しているマシン

users
 - 収集データ:ユーザ数
 - 収集対象 :collectdが動作しているマシン

libvirt
 - 収集データ:仮想マシンのCPU、ディスク、ネットワークに関するデータ
 - 収集対象 :全てのゲストOS

syslog
syslogにcollectdのログを出力します。

logfile
 - ログレベル:info
 - ログの出力先:/var/log/hde-collectd/collectd.log

python
pythonで書かれたプラグインを動作させます。

rrdcached
RRD形式で収集したデータをrrdchachedサービス(デーモン)経由で保存します。
 - RRDファイルの保存先:/var/opt/hde/collectd

しきい値を超えた時の挙動について

アクションには3つの場合があります。

1. 警告のしきい値を超えた場合
 - 警告しきい値を超えた場合に、任意のスクリプトの実行及び通知メールの送信が可能です。

2. 危険のしきい値を超えた場合
 - 危険しきい値を超えた場合に、任意のスクリプトの実行及び通知メールの送信が可能です。

3. 正常値へしきい値を戻った場合
 - 正常値へしきい値が戻った場合、任意のスクリプトの実行及び通知メールの送信が可能です。

アクションコマンドについて

karesansuiはcollectdから呼ばれるコマンドだけ提供してます。
collectdから見ると、karesansuiは閾値を超えたときに呼ぶpythonプログラムのみを提供します。

このpythonプログラムがcollectdから渡されるデータから状況を判断し、任意のスクリプト実行や通知メールを送信します。
※Karesansui データベースと連携していますので、データベースが必須になります。

テーブル名 : watch

※連続アラート回数等は、別のDB /var/opt/karesansui/notify_count.db に入っています。
通知メールのテンプレートは /etc/opt/hde/template/ 配下ににenとjaが用意されています。

通知メールのカスタマイズについて

通知メールには、Karesansui固有の変数を利用して、データの差し込みをすることができます。
※メールヘッダと本文の間には空行を一つ以上入れてください。
※変数とは : 送信されるメール内で文字列の置き換えが行われます

%{app_name} アプリケーション名
%{time} 検知した時刻
%{host} 検知したホストの名前
%{plugin} 監視対象名
%{plugin_instance} 監視対象の特定
%{type} 監視対象のサブカテゴリ
%{type_instance} 監視する項目名
%{ds} データソース名
%{current_value} 検知した時点での監視対象の値
%{threshold_value} 設定した閾値
%{failure_max} 危険値の閾値(上限設定)
%{warning_max} 警告値の閾値(上限設定)
%{failure_min} 危険値の閾値(下限設定)
%{warning_min} 警告値の閾値(下限設定)
%{severity} 警告レベル
%{script_result_message} アクションスクリプト実行結果

watch.png (30.8 KB) funagayama kei, 06/30/2010 04:36 PM

Also available in: HTML TXT