LogicMonitorのBatchScript収集メソッドは、ポーリングサイクルごとに1つのスクリプトを実行することで、ディスク、インターフェース、サービスなど、単一デバイス内の複数のインスタンスを効率的に監視できます。このメソッドは、多数のインスタンスを持つデバイスや、インスタンス固有のSNMPクエリやAPIをサポートしていないデバイスに最適です。

各ポーリングサイクル中、LogicMonitor Collector はデバイスごとに設定されたスクリプトを 1 回実行します。このスクリプトは、データソースに直接埋め込むことも、別のファイルとしてアップロードすることもできます。このスクリプトは、検出されたすべてのインスタンスのメトリクスを 1 回の実行で収集・出力します。LogicMonitor はこの出力を標準出力 (stdout) 経由でキャプチャし、選択された後処理方法(複数行のキーと値のペアや JSON など)を適用してデータポイント値を抽出します。このプロセスは標準の Script 収集方法と似ていますが、多数のインスタンスを持つデバイスの監視においては、BatchScript の方がはるかにスケーラブルです。

BatchScriptは、収集したメトリックをインスタンス名に動的にマッピングすることで、マルチインスタンスのデータ収集をサポートします。 ##WILDVALUE## トークン。このトークンはスクリプト本体ではなく、データポイントキーの定義で使用されます。

スクリプトが次の形式で出力を返す場合:

disk1.iops=9024 
disk1.throughput=563 
disk2.iops=4325 
disk2.throughput=452

データポイントは 次のようにフォーマットされたキーを持つ複数行のキーと値のペアの後処理方法:

##WILDVALUE##.iops 
##WILDVALUE##.throughput

処理中、LogicMonitorは ##WILDVALUE## 実際のインスタンス名(例: disk1disk2)、各値を正しいインスタンスに関連付けます。

BatchScript はデバイスごとに 1 回実行されるため、スクリプトでは次の点を考慮してください。

  • 使用できません instanceProps.get() インスタンス固有のプロパティを取得します。
  • のようなトークン ##WILDVALUE##   ##WILDALIAS## スクリプト内では使用できません。
  • ループ内ですべてのワイルド値にアクセスするには、 datasourceinstanceProps.
def listOfWildValues = datasourceinstanceProps.values().collect { it.wildvalue }
 
datasourceinstanceProps.each { instance, instanceProperties ->
instanceProperties.each
{ it -> def wildValue = it.wildvalue // Do something with wild value }
}

このアプローチにより、スクリプトは 1 回の実行で検出されたすべてのインスタンスのメトリックを動的に生成できます。

BatchScript コレクションメソッドを使用してデータポイントを構成するための要件

スクリプトは次のいずれかを返す必要があります。

  • 複数行のキーと値のペアここで、各行はインスタンスとそのメトリックを表します。
    具体的な例を挙げますと、以下の通りです。
    instance1.key1=value11 
    instance2.key1=value21
    instance1.key2=value12
    instance2.key2=value22

     複数行のキーと値のペア 後処理方法。データポイント キーは次の形式に従う必要があります。
    ##WILDVALUE##.key1 
    ##WILDVALUE##.key2
  • JSONの—後処理方法と互換性のある構造化オブジェクト形式を使用する
    具体的な例を挙げますと、以下の通りです。
    {
    "data": {
    "instance1": {
    "values": {
    "key1": value11,
    "key2": value12
    }
    },
    "instance2": {
    "values": {
    "key1": value21,
    "key2": value22
    }
    }
    }
    }

     JSON/BSONオブジェクト 後処理方法。データポイント キーは次の形式に従う必要があります。

    data.##WILDVALUE##.values.key1
    data.##WILDVALUE##.values.key2

データポイントを定義するときは、 ##WILDVALUE## キーフィールドにトークンを追加することで、値を個々のインスタンスにマッピングします。このトークンはLogicMonitorによって処理中に動的に解決され、適切なマルチインスタンスマッピングに必要です。 ##WILDVALUE## サポートされていない文字(例::、#、\、スペース)が含まれている場合は、NoData が返されます。

推奨事項: アクティブ検出スクリプトとスクリプト出力の両方で、インスタンス名内の無効な文字をアンダースコア (_) またはダッシュ (-) に置き換えます。

BatchScriptコレクションメソッドの使用に関する考慮事項

収集メソッドとしてのBatchScriptは、マルチインスタンスのデータソースを対象としています。データソースを設定する際は、マルチインスタンスとActive Discoveryが有効になっていることを確認してください。

注意: 当学校区の collector.batchscript.timeout の設定 agent.conf これはバッチスクリプトにのみ適用されます。PowerShell スクリプトには適用されません。PowerShell スクリプトは、固定された設定不可能なタイムアウトを持つ別のプロセスで実行されます。

PowerShellスクリプトが大量のデータを出力する場合は、 Write-Output Write-Hostの代わりにWrite-Outputを使用する。Write-Outputは、データをホストに送信するのに効率的である。 stdout タイムアウトの問題のリスクを軽減するのに役立ちます。

BatchScript コレクションメソッドを使用した通常のデータポイントの構成

  1. LogicMonitorで、次の場所に移動します モジュール 新しいデータソースを追加するか、BatchScript データを収集するためのデータポイントを追加するモジュールを選択します。
    詳細については、を参照してください。 カスタム モジュールの作成 or モジュール管理.
  2. 必要に応じてモジュールを設定または変更し、「BatchScript」が選択されていることを確認します。 収集方法.
    BatchScript コレクションメソッドのデータソース設定
  3. 確保 マルチインスタンス   アクティブディスカバリー 有効になります。
  4. 完全 アクティブディスカバリー フォーム。詳細については、 アクティブディスカバリー.
  5. 通常のデータポイントを設定してバッチスクリプトデータを収集するには、 正規データポイントを追加する.
  6.  お名前 フィールドにデータポイントの名前を入力します。
  7.   詳細説明  フィールドに説明を入力してください
  8.  データポイントソース フィールド、選択 スクリプトが標準出力に書き込むコンテンツ。
  9.  出力を次のように解釈します フィールド、選択 複数行のキーと値のペア
  10.  キー フィールドに「」と入力します##WILDVALUE##.Datapoint Name
    たとえば、データポイント名がread_bytes_per_secondの場合、キーは ##WILDVALUE##.read_bytes_per_second.
  11. 必要に応じて、データポイントの追加設定を構成または変更します。 
  12. 選択する 保存

14日間フルアクセス LogicMonitor プラットフォーム