REXEC と UNIX データ ソースの概要

UNIX ベース システム上のデータ ソースに対しては、多くの場合、リモート実行プロトコルを用いてクエリを実行することができます。 確認済みのデータ ソースが定義済みデータ ソース リストに表示されます。 たとえば、Solaris システム上で Context Switches/sec (コンテキスト スイッチ回数/秒) を監視するとしましょう。 定義済みリストからこのエントリを選択することで、リモート実行の詳細を指定しなくてもよくなります。 該当するデータ ソースがリストに見つからない場合は、カスタム データ ソースを作成します。

リモート実行

リモート実行とは、コマンドライン インターフェイスを使ってリモート ホスト上でコマンドを実行することです。 シェル スクリプトを実行することもできます。 シェル スクリプトを確認するには、telnet クライアントを使用して UNIX システムに接続し、コマンドやスクリプトをいくつか実行します。

単独実行

単独実行の場合は、新しいデータ ポイントが要求されるたびに、プライマリ ドメイン コントローラ エミュレータ (PDCE) がリモート マシンに接続しコマンドを実行します。 実行間隔が短いと、この設定ではリモート マシンに負荷をかけるおそれがあります。 ただし、PDCE は、最後に実行したコマンドが終了するまで、リモート マシン上で新しいコマンドを起動しません。

単独実行でない場合、PDCE は監視セッションの初めにリモート マシンに接続し、コマンドを起動して、コマンドの出力をパーサーに転送します。 パーサーは、所定の監視間隔で起動され、使用可能なデータを解析します。 コマンドは 1 回だけ実行され、リモート マシンへの接続は監視セッション全体を通して有効なままです。 (たとえば、リモート マシン上のコマンドが終了したために) 接続が失われると、PDCE は一定の間隔を空けて再接続を試みます。

単独実行の例

ps -ef | egrep -c ".*"

上記のコマンドは、UNIX システム上で動作しているプロセスの数を数えるものです。 telnet セッション中にこのコマンドを入力します。 コマンドは値 (実行中のプロセスの数) を出力した後、終了します。 このような動作を "単独実行" と呼びます。

このようなコマンドを ‘while’ ループで囲むことができます。

複数実行の例

while [ true ]; do	// Mind the spaces
   ps -ef | egrep -c ".*";
   sleep 5;
done

上記の例では、プロセス数が 5 秒間隔で継続的に出力されます。 このような動作を "複数実行" と呼びます。