square.gif 構成設定の実施シナリオ

Topic Home Print Page Send Comments

パフォーマンス(性能)グラフについて

目次 表示

Configuration(コンフィグレーション)ページの Performance(パフォーマンス)オプションでは、 ユーザが Nagios 監視システムから集められたデータを使って、性能グラフを作成することを可能にします。

パフォーマンス(性能)グラフのプロセス

Nagios 監視システムによって収集されたデータからパフォーマンス(性能)グラフを作ることができます。Nagios はサービスチェックの性能データを特別のイベントハンドラに渡すよう構成されています。そのイベントハンドラは、サービスチェックが実行されるたびに構成データベースからグラフのパラメータを取得して性能データを翻訳し、そして RRDtool を使って RRD (ラウンドロビン・データベース)を作成あるいは更新します。CGI プログラムがグラフ表示のために提供されます。インストールされた GroundWork のサービスプロファイルに合致するデフォルトの構成データベースが GroundWork Monitor パッケージで提供されます。このデータは、 GroundWork Monitor  の  Performance(パフォーマンス)> Configure(設定)オプションをアクセスすることで変更することができます。

RRD データベースが作成されたら、このデータを表示するためのいくつかの方法があります。 GroundWork Monitor のStatus(ステータス)のオプションにおいて、このアプリケーションは、RRD がそのホストとサービスに関連つけられていたら、サービスの下に性能グラフを表示します。下の図は、ホスト localhostService Current Load のための Status(ステータス)内の性能グラフを示します。

図: Status(ステータス)内の性能グラフ

performance_status.gif

このセクションに書かれている手順以上の追加の構成はありません。あなたは、これらを Nagios のService detail(サービス詳細)ページでリンクとして表示させるかもしれません。それを行うには  Nagios extended Service(Nagios 拡張サービス)情報のリンクを作成し、グラフ化 CGI プログラムをインストールする必要があります。それらの一般的なバージョンは、GroundWork Monitor に含まれています。

Groundwork Monitor でのパフォーマンスデータ処理  

Nagios によって処理されたどのようなチェックでも、パフォーマンスデータを返すことが可能です。プラグインのパフォーマンスデータに対するフォーマットを定義するには、Nagios Plugin Development Guidelinesを参照してください。

パフォーマンスデータの処理

GroundWork Monitor パッケージにあるの Nagios は、すべてのデータ(パフォーマンスデータを含むプラグインのアウトプット)を service_perfdata.log ファイルに書き込みます。Nagios は、300秒ごとに service_perfdata.log ファイルを読む スクリプト process_service_perf_db_file.pl を実行します。

サービスパフォーマンスデータファイル:

/usr/local/groundwork/nagios/eventhandlers/service_perfdata.log

サービスパフォーマンスデータ処理間隔:

300

サービスパフォーマンスデータ処理コマンド:

process_service_perfdata_file.db

は、Control(コントロール) > Nagios Main Configuration(Nagios メイン設定)の下(ページ2と3)のGroundWork Monitor構成設定オプションで設定可能です。

process_service_perfdata_file コマンドは、パフォーマンスデータを二箇所に書き込むスクリプトprocess_service_perf_db_file.pl を呼び出します:

  1. RRD ファイル - RDDのためのファイル名は、ホスト名とサービス名から作られます。こらら RRDs 内のデータは、GroundWork Monitor StatusPerformance アプリケーションの両方でグラフ表示します。

  2. Foundation データベース -パフォーマンスデータはパフォーマンスデータのためのリスナーを持っている Foundation に送られます。そのデータがどの様に保存されるかについて、以下で詳しく説明します。

処理の最後に、Nagios は書き込みモードで service_perfdata.log ファイルを再オープンして、空にします。

パフォーマンスデータのための RRD ファイル

パフォーマンスデータは RRD ファイルに保存されます。フォーマットおよびデータ集約についての情報は、http://oss.oetiker.ch/rrdtool/doc/rrdtool.en.html を参照してください。

Foundation内のパフォーマンスデータ

パフォーマンスデータは、 パフォーマンスデータを処理するために設けられた、Foundation の下記の URL に post コマンドとして送られます :

http://localhost:8080/foundation-webapp/admin/manage-performanceDataLabel.jsp

process_service_perf_db_file.pl スクリプトは、ホスト名、サービス説明、ラベル、タイムスタンプおよびパフォーマンス値を Foundation の post の中に含みます。

入ってきたパフォーマンスデータを取り扱う Foundation の中のビジネスオブジェクトは、デフォルトでは一日に一度、チェックのパフォーマンスデータ値を平均する設定になっています。毎日の平均化といっしょに、その日の最大値と最小値も保存されます。構成設定によって、平均する範囲を、1日単位から1時間単位に変更することができます。インターバルの変更について詳しくは、ブックシェルフ(Bookshelf)の開発者リファレンス(Developer Reference)の中のConfiguring Foundationの構成設定 を参照ください。

パフォーマンスデータの値は LogPerformanceData テーブルに保存されます。パフォーマンスデータを提供する各サービスのために毎日1エントリが生成されます。

パフォーマンスデータについてのレポート

GroundWork Monitor のReports(レポート)オプションは、ホスト毎、ホストグループ毎に  Foundation 内に保存されたパフォーマンスデータを見るための二つのレポートを持っています。そのレポートは、個々のサービス毎のパフォーマンスデータにドリルダウンすることができます。これらのレポートは、GroundWork Reports(GroundWorkレポート)>Performance Reports(パフォーマンスレポート)の下にあります。

このレポートは、選択されたホストグループと時間範囲にまたがるラベルの値によって識別されるパフォーマンス指標を示します。

性能データの処理パラメータ

screenshoticon.gifShow/Hide コンフィグレーションアプリケーションは、性能データを取り扱うために、Nagios のメインコンフィグレーションファイルを正しく構成するのに使用することができます。これは GroundWork の RPM ですでにセットアップされているはずです。しかし、これらは重要な構成パラメータです。下記の図と文章は、性能データハンドリングを可能にするための Nagios Main Configuration(Nagios メイン設定)の画面内のパラメータを示して説明します。

GroundWork Monitor のディストリビューション内のほとんどのプラグインは、フォーマット済みの性能データを出力します。このデータがどのようにフォーマットされるかについては、Nagios Plugin Development Guidelines で定義されています。

注意: Nagios はホストおよびサービスからの性能データを処理する能力を持っていますが、サービスチェックは通常の間隔で実行されます。それに対してホストチェックは、まったく実行されることがないかもしれません。Nagios は依存関係の演算を行うときにのみ、ホストチェックを実施します。そのため、このホストチェックの散発的に発生する性質のため、ホストの性能データはグラフ化に不向きです。これが GroundWork Monitor において、なぜサービスの性能データのみに関心を持つかという理由です。

パフォーマンス処理データフロー

screenshoticon.gifShow/Hide Nagios がプラグインの実行をスケジュールするとき、そのプラグインは、二つのタイプのデータを標準出力に返します。これらの両フィールドは同じ行にあります。これらの二つのフィールドは、パイプオペレータ (|) で区分けされます。Nagios は、パイプオペレータの前にあるすべてをステータス文字列とみなし、 Nagios(と Status:ステータス)のユーザインタフェースのステータスフィールドに挿入します。 また、ステータス文字列は、Nagios マクロ $SERVICEOUTPUT$ にも挿入されます。パイプオペレータの後の文字列は、マクロ $SERVICEPERFDATA$ に挿入され、また service_perfdata.log ファイルに書き込まれます。パフォーマンスの処理データイメージを見るには、上の View Diagram(図表示)アイコンをクリックしてください。

典型的なプラグインの出力は下記のように見えます:

OK - load average: 0.35, 0.29, 0.20 | load1=0.350;5.000;10.000;0; load5=0.290;4.000;6.000;0; load15=0.200;3.000;4.000;0;

パイプオペレータの前のすべてが、ステータスのテキストで、後のすべてが性能データです。

service_perfdata 構成ディレクティブを正しく設定したら、Nagios はこのプラグインの出力を下記のログファイルに記録します:

/usr/local/groundwork/nagios/eventhandlers/service_perfdata.log

5分間隔で(この間隔は service_perfdata_file_processing_interval を使って調整できます)、Nagios はパフォーマンスイベントハンドラ: process_service_perf_db_file.pl を起動します。このイベントハンドラはさまざまの業務を行います。 serNagios がそこに書き込んだ性能データを取り出すためにservice_perfdata.log ファイルから読み出します。各サービス実行において、Monarch データベースの performanceconfig テーブル内のサービス名のデータベース検索を行います。このテーブル(サービス名でインデックスされています)は、特定のプラグインによって返されたデータのためのユニークな RRD 作成コマンドと RRD 更新コマンドを持っています。

イベントハンドラ process_service_perf_db_file.pl は、最初のインスタンスで RRD を作成し、そのサービスのその後の実行でそれらの中のデータを更新するのに、この情報を使います。

それらの RRD はperformanceconfig エントリ(これらはカスタマイズ可能)内で指定された CGI のよって読まれ、その後 Status(ステータス)アプリケーションで表示するために渡されます。

また、 performanceconfig テーブルの上にはグラフィカルユーザインタフェース(Performance>Configuration)があるので、オペレーターは RRD の作成と更新ストリングを調整することができ、それらをグラフにするのにどの CGI を使うかの指定すら可能です。。

イベントハンドラ process_service_perf_db_file.plは、また、それ以上のことを行います。新しい RRD を作成する必要がある場合いつでも、それは Monarch データベースの datatype テーブルに、その RRD のパスとファイル名を書き込みます。このテーブルは、システム内のさまざまの RRD 位置づけるために、パフォーマンスアプリケーションによって使用されます。パフォーマンスは、複数の RRD からデータを読み、そのデータをひとつのグラフに統合することができます。

また、このイベントハンドラは、ERP レポートによって使用するために、サマリーの性能データを GWCollageDB に挿入するパフォーマンスリスナーに HTML ポストを行います。

最後に、process_service_perf_db_file.pl は、システム内での RRD 問題を診断するのに非常に有用なデバッグログファイルを作成する能力を持ちます。そのファイルは process_service_perf.log という名前で、イベントハンドラ内のデバッグフラグを使ってロギングをオンにしたりオフにしたりすることができます。デバッグログをオンにするには、 process_service_perf_db_file.pl を編集して、下記のラインを:

my $debug = 0;

下記のように変更します:

my $debug = 3;

RRD 問題のトラブルシューティングが終了したら、(debug = 0 と設定し)これをオフにするのを忘れないでください。そのロギングはきわめて大量で、このファイルは比較的短時間で非常に大きくなる可能性があります。

フォーマンスの設定内でのストリングリストの実装

 Performance(パフォーマンス) > Configure(設定)下に、定義するパッシブサービスに対して、ひとつまたは複数のサービス/ホストエントリを設定します。どのような方法でもこれらを作成できますが、RRD Create Command(RRD作成コマンド)エントリは以下のフォームであることを確認してください:

$RRDTOOL$ create $RRDNAME$ --step 300 --start n-1yr $LISTSTART$DS:$LABEL#$:GAUGE:900:U:U$LISTEND$ RRA:AVERAGE:0.5:1:8640 RRA:AVERAGE:0.5:12:9480

基本的に $LISTSTART$$LISTEND$ の間のすべてが、性能データ内の各 label=valueに対して複製されるでしょう。もちろん、DS タイプを GAUGE からサポートされる値に変更、またはRRA パラメータのいずれかを変更できます。同様に、RRD の更新コマンドが以下の形式であることを確認してください:

$RRDTOOL$ update $RRDNAME$ -t $LABELLIST$ $LASTCHECK$:$VALUELIST$ 2>&1

$LABELLIST$$VALUELIST$ マクロは、性能データから解析処理されたラベルおよび値の派生リストを展開します。

パフォーマンスのテストおよびデバッグ

以下のステップを使用して、性能ハンドラが期待どおりに動作するように設定します。性能ハンドラ・ログファイルがディレクトリ/usr/local/groundwork/nagios/eventhandlers/process_service_perf.logに作成されます。

これは、 process_service_perf_db_file.pl スクリプトのmydebug  変数が3(デフォルト:0)に設定された場合に作成されます。プラグインが実行されるごとに、以下の情報がログに入力されます:

サービスエントリのログ結果

性能ハンドラの問題をデバッグするには、サービスエントリのログ結果を確認します。 以下のステップを確認してください:

  1.  サービスが適切に解析されているか。

  2.  設定エントリ情報が正確であるか。

  3.  性能またはステータス情報が正確に解析されているか。

  4. パフォーマンス構成設定データベースの正確なエントリが使用されてるか。

  5.  RRD コマンドが適切に解析処理されているか。

  6.  RRD コマンドが正常に実行されているか(エラーメッセージなし)。

チャート生成エラー

チャート生成エラーのデバッグには、以下を確認してください:

  1.  RRD がホスト/サービスに対して生成されているか。 RRD がディレクトリ/usr/local/groundwork/rrd に保存されているか。

  2.  サービス拡張情報テンプレートで参照される CGI プログラムが正確であるか。

  3.  グラフアイコンをクリックした際に、ブラウザが参照 CGI プログラムを開いているか。

  4.  CGI プログラムが、RRD 作成コマンドで定義した正確なデータセット名を参照しているか。

注意: mydebug フラグを 0 に戻し、トラブルシューティングを終了する時は、デバッグログを削除するのを忘れないでください。このログファイルは、容量をにすることが可能です(多数の GB)。

インポートおよびエクスポート

性能設定データベースの定義は、別のシステムへ転送するため、あるいはバックアップ目的のためにエクスポートする場合があります。 性能設定データベース全体をエクスポートするには、性能設定ユーティリティの上部にある Export All(すべてをエクスポート)ボタンを選択します。 特定の性能設定エントリをエクスポートするには、そのエントリに対応する Export(エクスポート)ボタンを選択します。 エクスポートされたファイルは、デフォルトで /tmp ディレクトリに保存されます。 このファイルは、各フィールドのエントリを記述する XML ファイルです。 以下は、サンプルのファイルです。

<groundwork_performance_configuration>

<service_profile name="gwsp-service_ping">

<graph name="Ping response time ">

<host>*</host>

<service regx="1"><![CDATA[Host Alive]]></service>

<type>nagios</type>

<enable>1</enable>

<label>Ping Response Time</label>

<rrdname><![CDATA[/usr/local/groundwork/rrd/$HOST$_$SERVICE$.rrd]]></rrdname>

<rrdcreatestring><![CDATA[$RRDTOOL$ create $RRDNAME$ --step 300 --start n-1yr DS:number:GAUGE:900:U:U RRA:AVERAGE:0.5:1:2880 RRA:AVERAGE:0.5:5:4032 RRA:AVERAGE:0.5:15:5760 RRA:AVERAGE:0.5:60:8640]]></rrdcreatestring>

<rrdupdatestring><![CDATA[$RRDTOOL$ update $RRDNAME$ $LASTSERVICECHECK$:$VALUE1$ 2>&1]]></rrdupdatestring>

<graphcgi><![CDATA[/nagios/cgi-bin/number_graph.cgi]]></graphcgi>

<parseregx first="0"><![CDATA[]]></parseregx>

<perfidstring></perfidstring>

</graph>

</service_profile>

</groundwork_performance_configuration>

エクスポートされたファイルのインポート

エクスポートされたファイルをインポートするには、次のスクリプトを実行します。このスクリプトは、エクスポートされた XML ファイルを読み込み、性能設定データベースにエントリを挿入します。

import_perfconfig.pl <file name>