mksensor コマンド

目的

センサーまたはマイクロセンサーを Resource Monitoring and Control (RMC) サブシステムに定義します。

構文

センサーを定義する場合:

mksensor [ -n host1[,host2…] | -N { node_file | "-" } ] [ -i seconds ] [ -c n ] [ -e 0 | 1 | 2 ] [ -u user-ID ] [-h] [ -v | -V ] sensor_name ["]sensor_command["]

マイクロセンサーを定義する場合:

mksensor -m [ -n host1[,host2…] | -N { node_file | "-" } ] [ -i seconds ] [-h] [ -v | -V ] microsensor_name microsensor_module [ ["]microsensor_arguments["] ]

説明

mksensor コマンド・ラインは、センサー・リソースを Resource Monitoring and Control (RMC) サブシステムに定義します。 センサー とは、モニター可能な属性を持つ RMC リソースです。 イベント応答リソース・マネージャー (ERRM) コマンドを使用して、センサー属性のモニターをセットアップすることができます。 モニター対象のセンサー・イベントが発生すると、定義済みの応答アクションが実行されます。 これによって管理者は、リソース・マネージャーを作成しなくても、RMC のモニター機能を拡張できます。

センサーの場合、sensor_command パラメーターは、センサー・リソース・マネージャーがセンサー属性値を設定 (後ほど、更新) するために実行するコマンドまたはスクリプトを指定します。センサー属性がモニターされた後で、センサー・リソース・マネージャーは属性値を設定します。その後、定義された間隔で、センサー・リソース・マネージャーはこれらの値を更新します。

マイクロセンサーの場合、microsensor_module パラメーターは、マイクロセンサー・リソース・マネージャーがマイクロセンサー属性値を設定 (後ほど、更新) するために呼び出すロード可能なモジュールへのパス名を指定します。マイクロセンサー属性がモニターされた後、マイクロセンサー・リソース・マネージャーは属性値を設定します。その後、定義された間隔で、マイクロセンサー・リソース・マネージャーはこれらの値を更新します。マイクロセンサーを作成するには、-m フラグを使用します。

あるいは、センサーまたはマイクロセンサーの属性値を更新するには、chsensor または refsensor を使用することができます。lssensor コマンドは、センサー・コマンドまたはマイクロセンサー・モジュールを使用して設定することができるセンサー属性またはマイクロセンサー属性の値を表示します (属性がモニターされている場合)。属性がモニターされていない場合、lssensor は属性の値を表示しません。 センサーまたはマイクロセンサーを除去するには、rmsensor コマンドを使用します。

mksensor コマンドはどのノードでも実行できます。 管理ドメインまたはピア・ドメイン内の 1 つ以上のノードでセンサーまたはマイクロセンサーを定義するには、-n フラグを使用します。-n フラグを使用して複数のノード名を指定する代わりに、-N node_file フラグを使用して、ノード名がファイルに入っていることを示すことができます。標準入力からノード名を読み取るには、-N "-" を使用します。

クラスター・システム・マネージメント (CSM) がご使用のシステムにインストールされている場合は、CSM 定義のノード・グループをノード名の値として使用して、複数のノードを参照することができます。 CSM ノード・グループの処理と CSM nodegrp コマンドの使用については、 「CSM: Administration Guide」および「CSM: Command and Technical Reference」を参照してください。

センサーは以下の属性から構成されており、これらの属性はセンサー・コマンドを使用して設定することができます。
Float32
このセンサー・リソースに関連した float32 タイプの属性。
Float64
このセンサー・リソースに関連した float64 タイプの属性。
Int32
このセンサー・リソースに関連した int32 タイプの属性。
Int64
このセンサー・リソースに関連した int64 タイプの属性。
Quantum
このセンサー・リソースに関連した quantum タイプの属性。
String
このセンサー・リソースに関連した string タイプの属性。
Uint32
このセンサー・リソースに関連した uint32 タイプの属性。
Uint64
このセンサー・リソースに関連した uint64 タイプの属性。

センサー・コマンドは、センサー・リソース・マネージャーが構文解析できる形式で標準出力に値を送信することによって、属性値を設定します。attr=value という形式です。例えば、sensor コマンドが Int32 属性を 57 に設定する場合、標準出力に Int32=57 と書き込まれます。 複数の属性値を設定したい場合、sensor コマンドは複数の attr=value ペアを標準出力に書き込むことができます。 attr=value ペアを 1 行にまとめることも、複数行に分けることもできます。センサー・コマンド出力が attr=value という形式でない場合、文字列と見なされ、値は String 属性に入ります。

sensor_command は、センサー・リソースを作成するユーザー ID を使用して実行されます。 センサー・リソースがモニターされると、-i フラグで指定されたインターバル (秒) ごとに sensor コマンドが実行されます。 デフォルト・インターバルは 60 秒です。値 0 を指定すると、sensor コマンドはインターバルごとに実行されません。 この場合、センサー値を更新するには、通常 refsensor コマンドを使用します。

sensor_command からの終了値を解釈する方法を制御するには、-e フラグを使用します。 この設定に応じて、sensor_command からの終了値がエラーとみなされる場合には、センサー属性が設定されず、情報は監査ログに書き込まれます。

マイクロセンサーは以下の属性から構成されており、これらの属性はマイクロセンサー・ロード・モジュールを使用して設定することができます。

Float32
このマイクロセンサー・リソースの float32 型の属性。
Float32Array
このマイクロセンサー・リソースの float32 型のアレイ属性。
Float64
このマイクロセンサー・リソースの float64 型の属性。
Float64Array
このマイクロセンサー・リソースの float64 型のアレイ属性。
Int32
このマイクロセンサー・リソースの int32 型の属性。
Int32Array
このマイクロセンサー・リソースの int32 型のアレイ属性。
Int64
このマイクロセンサー・リソースの int64 型の属性。
Int64Array
このマイクロセンサー・リソースの int64 型のアレイ属性。
Quantum
このマイクロセンサー・リソースの quantum 型の属性。
String
このマイクロセンサー・リソースの string 型の属性。
StringArray
このマイクロセンサー・リソースの string 型のアレイ属性。
UInt32
このマイクロセンサー・リソースの uint32 型の属性。
UInt32Array
このマイクロセンサー・リソースの uint32 型のアレイ属性。
UInt64
このマイクロセンサー・リソースの uint64 型の属性。
UInt64Array
このマイクロセンサー・リソースの uint64 型のアレイ属性。

マイクロセンサー・リソース・マネージャーは、マイクロセンサー・ロード・モジュールを呼び出して、マイクロセンサー属性の値を設定します。マイクロセンサーの使用法について詳しくは、「Administering RSCT」を参照してください。

フラグ

-m
定義すべきリソースがマイクロセンサー・リソースであることを指定します。
-n host1[,host2…]
センサーを定義する先の 1 つ以上のノードを指定します。 デフォルトでは、センサーはローカル・ノード上に定義されます。 このフラグは、管理ドメインまたはピア・ドメインでのみ使用します。
-N { node_file | "-" }
ファイルまたは標準入力からノード名を読み取ることを指定します。
ノード名がファイルにあることを示すには、-N node_file を使用します。
  • node_file ファイルでは、1 行につき 1 つのノード名を指定します。
  • 1 桁目に番号記号 (#) を付けると、その行がコメントであることを示すことができます。
  • ノード名の左のブランク文字はすべて無視されます。
  • ノード名の右のブランク文字はすべて無視されます。

標準入力からノード名を読み取るには、管理ドメインまたはピア・ドメインで -N "-" を使用します。

-i seconds
センサーの属性値を更新するためにセンサー・コマンドが実行されるか、マイクロセンサーの属性値を更新するためにマイクロセンサー・モジュールが実行される間隔。seconds は、整数値であり、10 以上でなければなりません。デフォルト・インターバルは 60 秒です。

sensor コマンドは、センサー・リソースがモニターされる場合にのみ、 指定した間隔で実行されます。マイクロセンサー・モジュールは、マイクロセンサー・リソースがモニターされる場合にのみ、指定した間隔で実行されます。間隔を 0 に設定すると、センサー・コマンドまたはマイクロセンサー・モジュールは自動的には実行されません。

このフラグの使用は、センサーをリフレッシュするための refsensor コマンドの使用から独立しています。

-c n
特殊な処理がこのセンサーに必要であるかどうかを指定します。 n には、次のいずれかの値を指定できます。
0
特殊な処理は不要であることを示します。これはデフォルトです。

センサー・コマンドは、sensor_name に定義された間隔で実行されます。センサー・コマンドは、モニターが開始されるとき、または lssensor コマンドが実行されるときには、実行されません

1
モニターが開始されるときにセンサー・コマンドが実行されることを示します。 また、センサー・コマンドは、sensor_name に定義された間隔でも実行されます。センサー・コマンドは、lssensor コマンドが実行されるときには、実行されません

センサー・コマンドが素早く実行されることを期待している場合を除き、この値を指定することはお勧めしません。センサー・コマンドが素早く実行されない場合、センサー・リソース・マネージャーへの他の要求がブロックされることになります。これらの要求は、センサー・コマンドが実行を終了するまで処理されません。

2
SavedData フィールドのコマンドからの出力は SavedData 持続リソース属性に 永続的に保管されないことを示します。 この値を指定しない場合は、このコマンドの標準出力に行 SavedData="any-string" が 含まれているときはいつも、センサー・リソース・マネージャーがこのレジストリーのリソース・テーブル内のデータを更新します。
3
12 の組み合わせを示します。
4
センサー・リソース・マネージャーが、モニターが停止した後、センサー・コマンドを実行することを示します。
5
14 の組み合わせを示します。
6
24 の組み合わせを示します。
7
12、および 4 の組み合わせを示します。
-e 0 | 1 | 2
sensor_command の終了値をセンサー・リソース・マネージャーがどのように解釈するかを以下のように指定します。
0
sensor_command からの終了値は、いずれもエラーではありません。
1
sensor_command からの 0 以外の終了値はエラーです。
2
sensor_command からの終了値 0 はエラーです。
デフォルト値は 1 です。 終了値がエラーと解釈される場合、センサー属性は更新されません。 その場合、エラーに関する情報が監査ログに書き込まれます。
-u user-ID
センサー・コマンドの実行に使用される特権を持つユーザーの名前を指定します。このユーザーは、システム上に既に定義されている必要があります。user-ID のデフォルト値は、現在の有効ユーザー ID に関連付けられているユーザー名です。
-h
コマンドの使用方法の文を標準出力に書き込みます。
-v | -V
コマンドの詳細メッセージを標準出力に書き込みます。

パラメーター

["]microsensor_argument["]
マイクロセンサー・モジュールのコールバック機能に渡される文字列を指定します。マイクロセンサー・リソース・マネージャーは、マイクロセンサー引数内のブランク文字に基づき文字列を文字列のアレイに分割します。一度マイクロセンサーが定義されると、マイクロセンサー引数を変更することはできません。

マイクロセンサー引数に、シェルによって解釈できるブランク文字または特殊文字が含まれている場合は、マイクロセンサー引数を二重引用符で囲む必要があります。マイクロセンサー引数を二重引用符で囲む場合は、「内側の」二重引用符の前に円記号エスケープ文字 (¥) を組み込む必要があります。また、ドル記号 ($) の前にも ¥ を組み込む必要があります。

microsensor_module
ロード可能なマイクロセンサー・モジュールへのパス名を指定します。モジュール用のシグニチャーがマイクロセンサー・リソース・マネージャーに格納されており、モジュールが使用されるとシグニチャーが検証されます。一度マイクロセンサーが定義されると、マイクロセンサー・モジュールを変更することはできません。
microsensor_name
定義するマイクロセンサーの名前を指定します。
["]sensor_command["]
センサーの属性値を設定するためにセンサー・リソース・マネージャーが使用するコマンドまたはスクリプトを指定します。このパラメーターの一部としてセンサー・リソース・マネージャー・コマンド (chsensorlssensor mksensorrefsensor、または rmsensor) のいずれも呼び出してはなりません。

sensor_command にブランク文字、またはシェルによって解釈できる特殊文字が含まれている場合は、二重引用符で囲む必要があります。

sensor_command を二重引用符で囲む場合は、「内側の」二重引用符の前に円記号エスケープ文字 (¥) を組み込む必要があります。 また、ドル記号 ($) の前にも ¥ を組み込む必要があります。 詳しくは、例 2 を参照してください。

sensor_name
定義するセンサーの名前を指定します。

セキュリティー

このコマンドを使用してセンサーを作成するには、IBM.Sensor リソース・クラスの書き込み許可が必要です。

このコマンドを使用してマイクロセンサーを作成するには、IBM.MicroSensor リソース・クラスの書き込み許可が必要です。

許可は、接続先システム上のアクセス制御リスト (ACL) ファイルで指定されます。 ACL ファイルおよびその変更方法について詳しくは、「Administering RSCT」を参照してください。

終了状況

0
コマンドは正常に実行されました
1
フラグとパラメーターの間違った組み合わせが入力されました。
n
RMC サブシステムによって戻される他のエラーに基づいています。

環境変数

CT_CONTACT
CT_CONTACT 環境変数がホスト名または IP アドレスに設定されていると、 このコマンドは指定されたホスト上の Resource Monitoring and Control (RMC) デーモンと連絡を取ります。 この環境変数が設定されていないと、このコマンドは、 コマンドが実行されているローカル・システム上の RMC デーモンと連絡を取ります。 コマンドによって表示または変更されるリソース・クラスやリソースは、 接続の確立先であるシステム上にあります。
CT_IP_AUTHENT
CT_IP_AUTHENT 環境変数が存在する場合は、RMC デーモンは、IP ベース・ネットワーク認証を使用して、CT_CONTACT 環境変数が設定されている IP アドレスで指定されるシステム上の RMC デーモンと連絡を取ります。CT_IP_AUTHENT が意味をもつのは、CT_CONTACT が IP アドレスに設定されている場合のみです。つまり、この環境変数はドメイン・ネーム・システム (DNS) サービスには依存しません。
CT_MANAGEMENT_SCOPE
リソースおよびリソース・クラスをモニターおよび制御するために RMC デーモンとのセッション に使用される管理有効範囲を決定します。 管理有効範囲は、リソースおよびリソース・クラスをモニターおよび制御可能な候補となり得るターゲット・ノードのセットを決定します。
有効な値は以下のとおりです。
0
Local 有効範囲を指定します。
1
Local 有効範囲を指定します。
2
ピア・ドメイン 有効範囲を指定します。
3
管理ドメイン 有効範囲を指定します。
この環境変数が設定されていない 場合は、Local 有効範囲が使用されます。

制限

sensor_command パラメーターの一部としてセンサー・リソース・マネージャー・コマンド (chsensorlssensormksensorrefsensor、または rmsensor) のいずれも呼び出してはなりません。これは、これらのコマンドを呼び出すと、デッドロックが生じる可能性があるためです。

実装上の固有な条件

このコマンドは、AIX® オペレーティング・システム用の rsct ファイルセット、ならびに Linux®、Solaris、および Windows プラットフォーム用の rsct-3.1.0.0-0.platform.rpm パッケージの一部です。ここで、platform は、i386ppcppc64s390、または x86_64 です。

  1. スクリプト /usr/bin/updateSensor1 を実行し、(モニターが始まると) 30 秒ごとにセンサー属性を更新する Sensor1 という新しいセンサーを作成するには、次のように入力します。
    mksensor -i 30 Sensor1 "/usr/bin/updateSensor1"
    /usr/bin/updateSensor1 の内容は、例えば次のようになります。
    #!/usr/bin/perl
    my $int32 = some_fn_that_generates_i32_value;
    my $string = some_fn_that_generates_string_value;
    print "Int32=$int32 String=$string";
    exit 0;
    条件は、例えば以下の例のようになります。
    mkcondition -r IBM.Sensor -s "Name==Sensor1" -e "Int32 > 100" Sensor1Int32
    「E-mail root anytime」応答を使用して、モニター開始コマンドを以下のようにすることができます。
    startcondresp Sensor1Int32 "E-mail root anytime"
  2. 次の sensor_command の値を指定した Sensor1 と呼ばれるセンサーを作成するには、
    df -m /var | sed '1d' | sed 's/%//g' | /bin/awk '{ print "Int32="$4}',
    次のように入力します。
    mksensor Sensor1 "df -m /var | sed '1d' | sed 's/%//g' | /bin/awk ¥ 
    '{ print ¥"Int32=¥"¥$4}'"
    sensor_command を二重引用符で囲む場合は、「内側の」二重引用符の前に円記号エスケープ文字 (¥) を組み込む必要があります。 また、ドル記号 ($) の前にも ¥ を組み込む必要があります。 そのため、この例では、センサー・コマンドのサブストリング "Int32="$4 は、mksensor コマンドの一部である場合は ¥"Int32=¥"¥$4 になります。
  3. /u/joe/common_nodes ファイルにリストされているノード上で /usr/bin/checkhealth スクリプトを実行する、Sensor3 と呼ばれるセンサーを作成するには、次のように入力します。
    mksensor -N /u/joe/common_nodes Sensor3 "/usr/bin/checkhealth"
    ここで、/u/joe/common_nodes には、以下が含まれます。
    # common node file
    #
    node1.myhost.com    main node
    node2.myhost.com    backup node
  4. 共用モジュール /usr/lib/msensors/msensorq を使用し、パラメーター db=abcconfirm=yesretry=yes、および mirror=no を必要とする IBM.msensorq と呼ばれるマイクロセンサーを作成するには、次のように入力します。
    mksensor -m IBM.msensorq /usr/lib/msensors/msensorq ¥ 
    "db=abc confirm=yes retry=yes mirror=no"

場所

/opt/rsct/bin/mksensor