外部スクリプト

最終更新日: 13 年 2024 月 XNUMX 日

概要

埋め込みスクリプトに加えて Groovy & PowerShellの、LogicMonitorは、好みの言語を使用した外部スクリプトのサポートも提供します。 通常、スクリプトを必要とするほとんどのタスクにはGroovyをお勧めしますが、使用したい特定の言語の専門知識がある場合もあります。 または、外部スクリプトを使用して、コレクターで任意のプログラムを直接実行し、その出力を使用してデータを収集することもできます。

データ収集に外部スクリプトを使用するデータソースの主な課題は、コレクタインフラストラクチャの管理ほどスクリプト自体にはありません。 たとえば、特定のRubyGemsを必要とするスクリプト化されたデータソースをRuby v2.1で作成した場合、Ruby v1.9を備えた、またはそれらのGemsがインストールされていないコレクターで同じスクリプトを実行できない可能性があります。 したがって、大きな課題ではありませんが、外部スクリプトを使用する場合は、バージョンと拡張子の依存関係に注意する必要があります。

外部スクリプト構成

データソースの収集メソッドの外部スクリプトを構成するには、データソース定義から実行する必要のあるXNUMXつの主要な手順があります(設定|データソース):

  1. スクリプトをアップロードする
  2. スクリプト名を指定します
  3. スクリプトパラメータを提供する

スクリプトをアップロードする

スクリプトを作成したら、 スクリプトのアップロード LogicMonitorプラットフォームにアップロードするためのデータソース定義にあるボタン。 これにより、適用されると、スクリプトはこのデータソースを必要とするデバイスに割り当てられたすべてのコレクターに自動的にデプロイされます。 複数のスクリプト(たとえば、XNUMXつのLinuxとXNUMXつのWindows)がある場合は、両方を次々にアップロードできます。

次に示すように、「スクリプト」を選択する必要があります。 コレクタ フィールドのドロップダウンと スクリプトファイルをアップロードする のために選択されたオプション スクリプトのアップロード ボタンが表示されます。

外部スクリプトは、LogicMonitor Collector 内の「agent/local/bin/」サブディレクトリにインストールされます。 スクリプトをこの場所に手動で直接コピーすることも可能ですが (Puppet や Chef などのオーケストレーション ツールを使用するなど)、次の理由により、DataSource 定義を介して自動デプロイすることを強くお勧めします。

  • スクリプトとデータソース定義の間の一貫性を確保しました。 LogicMonitorは、アップロードしたスクリプトとコレクターにインストールされているスクリプトの間の同期を維持します。 コレクターで外部スクリプトが誤って変更された場合、アップストリームで維持されているバージョンと強制的に再同期されます。
  • 簡単なスクリプト更新。 外部スクリプトを更新する必要がある場合は、データソース定義から新しいバージョンをアップロードすると、必要に応じてコレクターに自動的に配布されます。
  • 関連するすべてのコレクターへの自動配布。 LogicMonitorは、必要なすべてのコレクターにスクリプトを配布します。 これが特に役立つ場合の例は、コレクターがダウンしている状況です。 ダウンしたコレクターによって監視されているデバイスはバックアップコレクターにフェイルオーバーしますが、このコレクターが見落とされ、そのコレクターにスクリプトファイルがない場合、データ収集は失敗します。

スクリプト名を指定する

Windowsスクリプト および Linux / Unixスクリプト フィールドに、アップロードしたスクリプトの名前を入力します。 多くの場合、外部スクリプトは両方のプラットフォームで同じように動作しない可能性があるため、Linux スクリプトと Windows スクリプトは別々に処理されることに注意してください。 作成したスクリプトが特定の OS のみを対象としている場合は、いずれかのセクションを空白のままにしても構いません。 デフォルトのサブディレクトリの外にあるスクリプトに依存している場合は、完全なパスを定義する必要があります。 

注: 経由でアップロードされたスクリプト スクリプトのアップロード スクリプト名がアップロードされたスクリプトの名前と完全に一致する場合にのみ、ボタンが対象のコレクターに配信されます。

スクリプトパラメータを提供する

  スクリプトパラメータ フィールドは、スクリプトに引数を渡すために使用されます。 複数のパラメーターを渡す場合は、各引数を個別に指定し、空白で区切ります。 引数文字列を囲むために二重引用符を使用しないでください。

通常、このフィールドを使用して、スクリプトにリソースプロパティを提供します。 たとえば、あなたは合格することができます ##system.hostname## パラメータとして、スクリプトはこれを引数としてキャプチャし、このスクリプトがどのリソースに作用するかを示します。

注: Windowsでは、ファイルの拡張子のみに基づいているスクリプトインタープリターを判別するのが難しい場合があります。 でスクリプトインタプリタを提供することをお勧めします Windowsスクリプト フィールドとフルパス、および引数 スクリプトパラメータ フィールド。 たとえば、Pythonスクリプトを使用すると、次のようになります。 c:\python27\python.exe スクリプト名として c:\program files (x86)\logicmonitor\agent\lib\monitor_script.py ##system.hostname## スクリプトパラメータとして。 この場合、スクリプトのファイル名と関連する引数を含めるために二重引用符が必要です。

例:外部スクリプトデータソースを使用してログファイルのサイズを監視する

例として、Tomcatアプリケーションサーバーによって生成されたすべてのログファイルのサイズを監視する外部スクリプトを次に示します。 Tomcatはすべてのロギングメッセージをディレクトリに書き込みます $ {TOMCATROOT} /logs/catalina.out、ここで、TOMCATROOTはTomcatがインストールされているディレクトリです。 この場合、catalina.outのサイズを追跡し、サイズが1GBを超えるとアラートをトリガーします。

  1. まず、スクリプトを作成する必要があります。 以下は、私たちが名前を付けたサンプルのperlスクリプトです。 tomcat_log_size.pl。 これは、Tomcatルートディレクトリを含む単一の引数を取るように記述されています。
    #!/usr/bin/perl use warnings; use strict; # ingest the single argument array a single variable  my ($tomcatRoot) = @ARGV; # run the "stat" function on the filename and collect the output as an array my @result = stat( "$tomcatRoot/logs/catalina.out" ); # exit with a non-zero code if we didn't get a valid result from stat exit 1 if ( !@result ); # the 7th element in the array is size in bytes; print this out print $r[7]; # exit to indicate we got a valid result exit 0;
  2. 記述したら、コマンドラインで実行して動作することをテストします。
    $ ./tomcat_log_size.pl /usr/local/tomcat 3710925
  3. 次に デバイスプロパティを作成する Tomcatログファイルを監視する各デバイスで「tomcat.root」という名前が付けられています。 tomcat.rootプロパティに格納される値は、Tomcatがそのシステムにインストールされているディレクトリになります。

    注: スクリプトはリモート接続に対応していないため、このスクリプトはコレクターと同じホストで実行されているTomcatインストールのみを監視できます。 しかし、これはかなり簡単な変更です。

  4. 次に、 スクリプトデータソースを作成する、選択 スクリプトファイルをアップロードする スクリプトタイプを示すオプションを使用してから、 スクリプトのアップロード アップロードするボタン tomcat_log_size.pl スクリプト。
  5. Linux / Unixスクリプト フィールドに、ファイル名として「tomcat_log_size.pl」と入力し、に## tomcat.root ##を指定します。 計測パラメータ 下のフィールド。

    注: Windowsで実行する同様のスクリプトを作成した場合は、最後のXNUMXつの手順を繰り返して、このスクリプトのWindows固有のバージョンをこのデータソース定義にアップロードして構成します。

  6. データポイントの定義、スクリプトから収集するデータの種類を指定する必要があります。 スクリプトはファイルサイズを標準出力に出力するように作成されているため、ソースとして標準出力を使用するようにデータポイントに指示します。
  7. 次に、を選択する必要があります ポストプロセッサ方式 出力を解釈します。 スクリプトは単一の値のみを返すため、を選択できます 通訳なし。 直接使用する オプション。 スクリプト出力に複数の値がある場合は、キーと値のペアとして、または正規表現を使用してそれらを抽出できます。
  8. を設定 静的しきい値 データポイントの場合、1GBを超えるとわかります。
  9. データポイントができたので、次のことができます。 グラフを作成する このデータが時間の経過とともにどのように変化するかを表示します。
記事上で