ヘルプ 管理 監視の追加 カスタムWindowsプラグイン

DLLでのWindowsプラグインの記述

Site24x7のオープンなエコシステムでは、カスタム プラグインの自作も可能であり、必要データを、希望の方法で監視できます。属性それぞれにしきい値を決め、指定値超過時のアラートを選択できます。DLLでWindowsプラグインを記述し、必要データを確認可能です。

独自のWindowsプラグインの記述には、バッチ、PowerShell、VBScriptも利用いただけます。
しくみ:
  1. 最新バージョンのWindowsエージェントをサーバーに、ダウンロード・インストールします。
  2. インストール ディレクトリ内部で、monitoring > Plugins(デフォルト フォルダー)とアクセス。
  3. プラグインの名称のフォルダーを作成し、カスタム スクリプト ファイル(.dll)を、このフォルダーに置いてください。たとえば、ファイルシステムのパフォーマンスについてプラグインを記載する場合は、「filesystemperformance」フォルダーを、\Monitoring\Plugins\ の配下に作り、filesystemperformance.dllファイルと、依存ファイルを、ここに置きます。
  4. 次回のエージェント データ収集の時に、プラグインが検出され、監視の対象になります。
要件:

プラグインはC#で書いてください(.NET Framework 3.0以上)

プラグインの記述
  1. Visual Studioのエディターでは、ソリューション プラットフォームを「Any (CPU)」にする必要があります。
  2. Site24x7Plugin.Monitor.dllライブラリを、下記の場所で参照ください。
    [Winエージェントのインストール ディレクトリ]\monitoring\Plugins\PluginsReference
  3. プラグインの記述には、参照ファイルを、プラグインの参照フォルダーに置く必要があります。 
  4. IPluginインターフェースで、独自のクラス ファイルを作成します(.csファイル)

    メモ:IPluginインターフェースには、Site24x7Plugin.Monitor.dllの内部にあるクラスの構造が含まれています。

  5. クラスに必須の変数:
    • バージョン: バージョン番号の変更があれば、Site24x7のデータセンターは、テンプレートを更新し、当該バージョン用の新規テンプレートを作成します。デフォルト値は1です。プラグインの更新をするたびに、バージョン番号は1ずつ上げなくてはなりません。バージョン番号には、整数のみを使用できます。例:1、2、3……
  6. クラスに必須の関数:
    • クラス ファイルには、DataCollect()メソッドが必要です。これは、Dictionary<string, object>を返します。
  7. クラスに任意でおく変数:
    • Heartbeat: プラグインからSite24x7データセンターに、データがまったく届かなくなると、プラグインのダウンと判断し、アラートします。heartbeatの値は、trueかfalseです。デフォルトでは、heartbeatの値は、trueです。
    • DisplayName: クライアントに表示される監視の名前をさします。例えば、プラグイン「Site24x7 user」を作成する場合、このプラグインのクラスの表示名は、「Site24x7 user」を戻り値とする必要があります。
    • クラス ファイルには、Units()メソッドを含めることができます。キー・バリューのペアには、キーとして、プラグインにある監視対象の属性の名称を、バリューにはそれぞれの単位を指定します。これは、Directory <string, object>を返します。
    • msg :監視がダウンすると、設定したエラー メッセージが、Site24x7 Webクライアントに表示されます。この属性は、データ属性にパラレルにおいてください。
    • Version、DisplayName、Heartbeatのプロパティは、それぞれ、文字列オブジェクトを1つ返します。
  8. このデータをすべて、.dllの1ファイルにコンパイルし、プラグイン フォルダー([Installation directory]/Monitoring/Plugins)においてください。
  9. これにより、カスタム データをSite24x7のダッシュボードで表示できるようになります。
プラグイン ログは、すべて、PluginLog.logとPluginRegisterLog.logのファイルに収集され、[installation directory]\monitoring\logs\Detailsに置かれます。
DLLによるプラグイン ファイルのサンプル:

using System;
using System.Collections.Generic;
using System.Text;
using Site24x7Plugin.Monitor;

namespace Plugin
{
public class test : IPlugins
{
public string DisplayName
{
get{ return "File system performance"; }
}
public string Version
{
get { return "1"; }
}
public string Heartbeat
{
get { return "True"; }
}
public object Units()
{
IDictionary<String, object> sample = new Dictionary<String, object>();
sample.Add("File Control Bytes Per Second", "Bytes/sec");
sample.Add("File Control Operations Per Second", "operations/sec");
sample.Add("File Data Operations Per Second", "Bytes/sec");
sample.Add("File Read Bytes Per Second", "Bytes/sec");
return sample;
}
public object DataCollect()
{
Random r = new Random();
IDictionary<String, object> sample = new Dictionary<String, object>();
sample.Add("File Control Bytes Per Second", 10);
sample.Add("File Control Operations Per Second", 4);
sample.Add("File Data Operations Per Second", 1.2);
sample.Add("File Read Bytes Per Second", 87);
return sample;
}
}
}

JSON出力:

 {

        "data":{"File Control Operations Per Second":4,"File Data Operations Per Second":1.2,"File Read Bytes Per Second":87,"File Control Bytes Per Second":10},

        "units":{"File Control Operations Per Second":"operations/sec","File Data Operations Per Second":"Bytes/sec","File Read Bytes Per Second":"Bytes/sec","File Control Bytes Per Second":"Bytes/sec"},

        "type":"Plugin.dll",

        "version":"1",

        "availability":"1"

}

Site24x7ダッシュボードに表示されるデータ:

関連記事: