自動アクション定義ファイル(actdef.conf)(互換用)
- 〈このページの構成〉
形式
[#自動アクション定義ファイルバージョン] [DESC_VERSION=バージョン情報] [#自動アクション状態監視パラメーター] △0[:state_watch={true | false}] [#自動アクション定義パラメーター] △0[ {+パラメーターグループ番号|&}△1] {$イベントID|*}△1 [/メッセージ/] [,[/イベント基本情報/] [,[/イベント詳細情報/] [,[/イベント拡張情報重大度/] ] ] ]△1[イベント拡張情報属性名=/属性値/ [,イベント拡張情報属性名2=/属性値/][,…] ]△0 : △0[u=ユーザー名△1] [e=環境変数ファイル名△1] [d=実行先ホスト名|グループ名△1] [dt=抑止時間△1] [rt=遅延監視時間△1] [アクション] :
ファイル
actdef.conf(自動アクション定義ファイル)(互換用)
格納先ディレクトリ
- Windowsの場合
-
- 物理ホストのとき
-
Consoleパス\conf\action\
- 論理ホストのとき
-
共有フォルダ\jp1cons\conf\action\
- UNIXの場合
-
- 物理ホストのとき
-
/etc/opt/jp1cons/conf/action/
- 論理ホストのとき
-
共有ディレクトリ/jp1cons/conf/action/
説明
JP1/IMの自動アクション機能で,アクションを実行する条件と,アクションとして実行するコマンドについて定義するファイルです。このファイルは,JP1/IM - Managerの動作する言語コードで記述してください。
自動アクション機能はこのファイルの定義に従い,特定の条件を満たすJP1イベントを受信した時に,自動的にコマンドを実行します。
各行のアクションの定義をパラメーターといいます。自動アクション定義ファイルのパラメーターには,次の3種類があります。
-
自動アクション定義ファイルバージョン
自動アクション定義ファイルのフォーマットのバージョンを定義します。
-
自動アクション状態監視パラメーター
自動アクションの状態を監視するかどうかを定義します。
-
自動アクション定義パラメーター
アクションを実行する条件と,アクションとして実行するコマンドについて定義します。
自動アクション定義ファイルバージョンおよび自動アクション状態監視パラメーターは,自動アクション定義パラメーターの前に記述してください。自動アクション定義パラメーターの後ろに,自動アクション定義ファイルバージョンおよび自動アクション状態監視パラメーターを記述した場合,定義内容は無効になります。
また,自動アクション定義ファイルバージョンおよび自動アクション状態監視パラメーターを,複数回定義した場合,最初の定義を有効,2回目以降の定義を無効とします。
自動アクション状態監視パラメーターおよび自動アクション定義パラメーターは,定義を1行に1件ずつ定義します。1行に書ききれない場合は,次の行に継続できます。
自動アクション定義パラメーターでは,「:」で区切られた二つの部分により「イベント監視条件:アクション実行定義」という形式で指定します。
-
一つの自動アクション定義パラメーターの最大長は,5,706バイトです。
バイト数には,空白を含みます。改行コードと,継続行にする場合の「\」は含みません。
-
自動アクション定義パラメーターが長いときは,次の行に継続できます。
定義行を継続するときは,改行コードの直前に「\」を記述します。「\」と改行コードの間に空白など文字がある場合は継続行にならず,「\」はデータとして扱います。
-
1カラム目が「#」の行はコメントになります。
コメントは1行で記述してください。複数行のコメントは,GUIで定義したときに定義行の直前の1行目以外が破棄されます。なお,行の途中や継続行の中の「#」はコメントではなくデータとして扱います。
受信したJP1イベントが,複数の自動アクション定義の実行条件と一致する場合,(後述するパラメーターグループごとに)最も優先順位の高い自動アクションが一つだけ実行されます。自動アクションの優先順位は,次の規則によって決まります。
-
イベントIDを指定した自動アクションは,イベントIDの「すべて」を対象にする自動アクションが優先されます。
-
自動アクション定義ファイルで前に記述されている(GUIでは[アクション設定]の画面で上に表示されている)自動アクションが優先されます。
それぞれの自動アクション定義パラメーターは,パラメーターグループに属します。パラメーターグループとは,自動アクション実行の条件を判定する単位です。パラメーターグループによって,一つのJP1イベントで複数のアクションを実行する場合や,複数の条件を満たすときにアクションを実行する場合など,複雑な条件を指定できます。
一つのJP1イベントがJP1/IMのマネージャーに届くと,パラメーターグループごとに,優先順位の順に自動アクション定義パラメーターと実行条件と比較します。実行条件が一致する場合は,パラメーターグループごとに優先順位の最も高い自動アクション定義パラメーターが一つだけ実行されます。
パラメーターグループに「&」を指定すると,前の行に定義した自動アクション定義パラメーターとのAND条件となります。自動アクション定義パラメーターをAND条件として指定すると,すべての条件が満たされたときにアクションが実行されます。
自動アクション定義パラメーターでサイズチェックされる項目とその最大長を次に示します。
-
自動アクション定義パラメーターのサイズは5,706バイトまで。
-
自動アクション定義パラメーターのイベント監視条件のサイズは1,040バイトまで。
-
自動アクション定義パラメーターのアクションのサイズは4,096バイトまで。
最大長を超過した場合は,定義を反映するときにメッセージが表示され,該当する自動アクション定義パラメーターは無視されます。
作成した定義ファイルは,jcamakeaコマンドを使って定義ファイルの定義内容を確認してください。
自動アクション定義ファイル(actdef.conf)(互換用)では業務グループ名を使用できません。業務グループ名を指定した場合,ホスト名として扱われます。
定義の反映時期
自動アクションの定義は,JP1/IM - Managerの起動時,JP1/IM - Viewの[アクション設定]画面の[適用]ボタンをクリックして定義を有効にしたとき,またはjcachangeコマンドを実行して定義を再読み込みしたときに有効になります。
jcachangeコマンドを実行して定義を再読み込みする場合は,jcachangeコマンドを実行する前にjcamakeaコマンドを実行して定義に誤りがないことを確認してください。
記述内容(自動アクション定義ファイルバージョン)
自動アクション定義ファイルバージョンに記述する項目について説明します。
- DESC_VERSION=バージョン情報
-
自動アクション定義ファイルのフォーマットのバージョンを定義します。
表2‒11 自動アクション定義ファイルのフォーマットのバージョン情報 バージョン情報
説明
1
07-11〜07-51の自動アクション定義ファイルのバージョンを示す。
2
08-00以降の自動アクション定義ファイルのバージョンを示す。
3
09-00以降の自動アクション定義ファイルのバージョンを示す。
4
11-50以降の自動アクション定義ファイルのバージョンを示す。
このパラメーターを省略,または「1」に指定した場合は,バージョン情報を「2」と仮定して読み込みます。JP1/IM - Viewで[アクション設定]画面の[適用]ボタンをクリックしたとき,「2」に設定し直します。
このパラメーターに「1」,「2」,「3」,または「4」以外の値を指定した場合,統合トレースログにエラーが出力され,バージョン情報を「3」と仮定して読み込みます。このとき,JP1/IM - Viewで[アクション設定]画面は表示できません。バージョン情報を変更したい場合は,直接定義ファイルを編集してください。
旧バージョンの自動アクション定義ファイルのフォーマットは,08-00以降の自動アクション定義ファイルのフォーマットと互換性があるため,08-00以降のフォーマットとして読み込まれます。
このパラメーターが自動アクション定義パラメーター以降の行に記述されている場合,JP1/IM - Viewで[アクション設定]画面が表示できなくなります。
jcamakeaコマンドを実行して自動アクションの定義ファイルの内容をチェックすることをお勧めします。
記述内容(自動アクション状態監視パラメーター)
自動アクション状態監視パラメーターに記述する項目について説明します。
- state_watch={true | false}
-
アクションの状態を監視するかどうかを指定します。
「true」または「false」のどちらかを指定します。デフォルト値は「false」です。
「true」を指定した場合,バージョン07-10以前のJP1/IM - Viewで[アクション設定]画面を表示できません。
このパラメーターは,自動アクション定義パラメーターより前に記述されている場合にだけ有効となります。
このパラメーターが自動アクション定義パラメーター以降の行に記述されている場合,JP1/IM - Viewで[アクション設定]画面が表示できなくなります。
jcamakeaコマンドを実行して自動アクションの定義ファイルの内容をチェックすることをお勧めします。
バージョン07-11以降のJP1/IM - Viewが07-11以降のJP1/IM - Manager(セントラルコンソール)に接続している場合,アクションの状態を監視する・しないにかかわらず,自動アクション状態監視パラメーターは自動アクション定義ファイルに出力されます。
記述内容(自動アクション定義パラメーター)
自動アクション定義パラメーターに記述する各項目について説明します。なお,JP1イベントについては,「3. JP1イベント」を参照してください。また,定義中に指定する正規表現と変数については,後述します。
- イベント監視条件
-
自動アクション定義パラメーターの中で,実行条件として記述する項目を次に示します。実行条件として定義できるパラメーターの長さは1,040バイトまでです。
- {+パラメーターグループ番号|&}
-
この行の自動アクション定義パラメーターが属しているパラメーターグループの番号を,「+」に続けて1けたの数字(0〜9)で指定します。指定を省略すると「0」を仮定します。
「&」を指定すると,直前の定義行とのAND条件の指定になります。この場合,この行の自動アクション定義パラメーターが属するパラメーターグループは,直前の定義行と同じになります。
なお,パラメーターグループの数字の大小は,実行条件判定の優先順位およびアクションの実行順序とは関係ありません。
- $イベントID
-
イベントIDを「$」に続けて指定します。イベントIDの指定形式は次のとおりです。
基本部[:拡張部]
基本部および拡張部は,16進数8桁以内(0〜7fffffff)の範囲で指定します。英字は小文字だけを指定できます。
- *
-
すべてのイベントIDを対象にする場合に指定します。*を指定するとすべてのイベントをアクションの対象にするため,JP1イベントの発生頻度が大きい場合にアクションが大量に発生し,実行が遅延することがあります。*を指定する場合は,その他の条件(メッセージ,イベント基本情報,イベント詳細情報,イベント拡張情報)でイベントを絞り込んでください。
- メッセージ
-
実行条件として,JP1イベントのメッセージテキストを指定します。条件には,正規表現を使うことができます。正規表現で指定する場合は,メッセージテキストの制御コード以外の部分を記述するようにしてください。
正規表現で「/」を表す場合は,「\/」と記述してください。
- イベント基本情報
-
実行条件として,JP1イベント基本属性の情報を指定します。指定には,正規表現を使うことができます。
正規表現で「/」を表す場合は,「\/」と記述してください。正規表現の詳細については,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「付録G 正規表現」を参照してください。
イベント基本情報は,JP1イベント基本属性の情報を次のように並べた形式で渡されます。この形式にあわせて,アクションを実行する条件を指定してください。
イベントID△イベント発行元ユーザー名△イベント発行元ユーザーID△
イベント発行元グループ名△イベント発行元グループID△
イベント発行元イベントサーバ名△イベント発行元プロセスID△
イベント登録年月日△イベント登録時刻△イベント発行元ホストIPアドレス
これらのJP1イベントの基本属性に含まれる情報については,「3. JP1イベント」を参照してください。
- イベント詳細情報
-
実行条件として,JP1イベント基本属性の詳細属性の情報を指定します。
指定には,正規表現を使うことができます。
正規表現で「/」を表す場合は,「\/」と記述してください。正規表現の詳細については,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「付録G 正規表現」を参照してください。
JP1イベント基本属性の詳細属性の情報は,JP1イベントの付加的な情報で,内容や形式はJP1イベントによって異なります。なお,JP1イベントの詳細属性の情報がバイナリー形式の場合は,情報がない(NULL)として扱われます。
・備考:JP1イベント基本属性の詳細属性は,主にバージョン5以前のJP1/SES形式と互換のイベントを発行する製品が,詳細情報を記録する場合などに使われます。バージョン6以降の製品の多くは,JP1イベント拡張属性を使って詳細な情報を記録します。
- イベント拡張情報重大度
-
実行条件として,JP1イベント拡張属性の重大度を指定します。重大度は次の形式で,文字の部分を組み合わせて指定します。
「-------E」 重大度:Emergency
「------A-」 重大度:Alert
「-----C--」 重大度:Critical
「----E---」 重大度:Error
「---W----」 重大度:Warning
「--N-----」 重大度:Notice
「-I------」 重大度:Information
「D-------」 重大度:Debug
例えば,Error以上の重大度を条件として設定する場合は,/----ECAE/と指定します。
- イベント拡張情報属性名=/属性値/
-
実行条件として,JP1イベント拡張属性の属性名と属性値を組み合わせて指定します。指定には,正規表現を使うことができます。
正規表現で「/」を表す場合は,「\/」と記述してください。
属性名と属性値の組み合わせを,最大100組指定できます。
属性名は,英大文字,数字,およびアンダーバー(_)から構成される32バイトまでの名称を指定できます。属性名に「:」「=」を含むものは指定できません。属性名は,"PRODUCT_NAME","OBJECT_NAME"のように指定します。ほかの機能での設定とは異なり,属性名の先頭に"E."は付けません。
なお,この項目で重大度(項目名"SEVERITY")を指定する場合,属性値は"Emergency","Alert"などの文字列で指定します。
- アクション実行定義
-
自動アクション定義パラメーターの中で,アクション実行定義として設定する項目を次に示します。
- u=ユーザー名
-
アクションを実行するJP1ユーザー名を指定します。
ユーザー名に指定できる文字数は,1〜31バイトです。半角英数字だけを使用できます。英字は大文字・小文字を区別しません。
このパラメーターを指定しなかった場合は,自動アクションの実行環境の定義で,アクション実行標準ユーザーとして指定したJP1ユーザー名を使用します。アクション実行標準ユーザーも指定されていない場合は,jp1adminを使用します。
JP1ユーザー名は,変数を使って,受信したJP1イベントに含まれる情報により指定することもできます。
アクションを実行するとき,実行先ホストで,ここで指定したJP1ユーザーをJP1/Baseの定義に従ってOSユーザーにユーザーマッピングしてコマンドを実行します。UNIXの場合は,ユーザーマッピングしたOSユーザーのシェル環境を使用して実行されます。
アクションに「<RULE>」と指定する場合は,この項目は設定できません。
- e=環境変数ファイル名
-
アクションとして実行するコマンドの環境変数を指定した,環境変数ファイルのファイル名をフルパスで指定します。
ファイル名には,255バイトまでの文字列が指定できます。ファイル名に空白を含む場合は""で囲んで指定してください。
ファイル名は,変数を使って,受信したJP1イベントに含まれる情報により指定することもできます。例えば,ENVFILEという名称のJP1イベント拡張属性を環境変数ファイル名として使う場合は「$EV"ENVFILE"」と指定します。
なお,環境変数ファイルの形式については,マニュアル「JP1/Base 運用ガイド」を参照してください。
アクションに「<RULE>」と指定する場合は,この項目は設定できません。
- d=実行先ホスト名|グループ名
-
アクションを実行するホスト名,またはホストグループ名を指定します。ホスト名にはシステム構成の定義で管理対象ホストに設定したホスト名を指定します。ホスト名・グループ名に空白を含むものは指定できません。
このパラメーターを省略した場合,アクションは自ホスト(自動アクション定義ファイルのあるホスト)で実行されます。
ホスト名・グループ名は,変数を使って,受信したJP1イベントに含まれる情報により指定することもできます。例えば,イベント発行元のホストでアクションを実行したい場合は,「$EVHOST」と指定します。
アクションに「<RULE>」と指定する場合は,この項目は設定できません。
- dt=抑止時間
-
アクションを抑止する時間を指定します。このパラメーターで指定した時間内に発生した同一のアクション条件に対するアクションは抑止されます。このパラメーターを省略した場合,抑止は実行されません。抑止時間は,4バイトまでの数字で指定します。指定できる範囲は1〜3,600(秒)です。
このパラメーターを指定した場合,バージョン07-10以前のJP1/IM - Viewで[アクション設定]画面を表示できません。
なお,次の場合は,このパラメーターは指定できません。
・「&」を指定している場合
- rt=遅延監視時間
-
アクションの実行時間を監視する時間を指定します。このパラメーターで指定した時間が,マネージャー上のJP1/BaseにJP1イベントが到着してから,実行先ホストのコマンド制御アクション実行終了メッセージを受信するまでの時間を超過した場合,JP1イベントの発行やコマンドの実行などの方法で,アクションに遅延が発生していることを通知します。このパラメーターを省略した場合,アクションの遅延監視は実行されません。
遅延監視時間は,5バイトまでの数字で指定します。指定できる範囲は1〜86,400(秒)です。
このパラメーターを指定した場合,バージョン07-10以前のJP1/IM - Viewで[アクション設定]画面を表示できません。
- アクション
-
アクションとして実行するコマンドを指定します。
指定できるコマンドについては,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「6. 自動アクションによるコマンド実行」を参照してください。
このパラメーターを省略した場合,アクションを実行する条件が成立しても,何も実行しません。
コマンドのパラメーターに,変数を使って,受信したJP1イベントに含まれる情報により指定することもできます。
自動アクションが定義されているホストがUNIXの場合は,コマンドの環境変数に,変数を使って,受信したJP1イベントに含まれる情報により指定することもできます。この場合は「MESSAGE="$EVMSG" command arg1 arg2」のように指定します。
なお,自動アクション定義パラメーターの「:」以降は,実行するアクションを指定しますが,「u=」「e=」「d=」「dt=」「rt=」を指定すると前述のユーザー名などの項目と見なされます。「u=」などを指定した場合は,アクションの指定を省略するとエラーになります。
また,アクションとして実行できるコマンドの長さは,アクション定義で使用できる変数($EVMSG など)の変換後の情報を含めて,4,096バイトまでです。コマンドの長さが4,096バイトを超えた場合は実行状態が「実行不可」になり,コマンドは実行されません。[アクション結果詳細]画面の[メッセージ]欄には,KAVB4421-Wのメッセージが表示されます。
アクション中に,文字として認識できないコード(ASCIIコードおよび環境設定で指定したマルチバイト文字コードの文字集合に含まれない部分)が含まれた場合,実行先ホストのシェルなどの仕様で実行されない,または実行されても結果が不正になることがあります。この場合,アクションは実行失敗にならず,終了状態になります。定義ファイル中に上記の不正なコードを指定していなくても,アクション定義で使用できる変数から実行時に置き換えることでアクションに含まれる場合があります。アクション対象イベントを発行する各製品のマニュアルなどで確認の上,アクション定義で使用できる変数を指定してください。
JP1/IM - Rule Operationへのルール起動要求を設定したい場合は,「<RULE>」と固定で指定してください。「<RULE>」と指定されている場合,[実行ユーザー名][実行ホスト名][環境変数ファイル]を同時に指定できません。このときKAVB4550-Wメッセージが表示され,自動アクション定義パラメーターは標準出力に出力されません。
アクションのコマンド長に関する注意事項
アクションとして実行できるコマンドの長さは,JP1/IM,JP1/Baseを運用しているシステムによって変わります。
自動アクションの実行経路上のホスト(実行元マネージャー,実行先ホストを含む)にバージョン6,バージョン7のJP1/IM,JP1/Baseがある場合には,コマンドの長さは,最大1,024バイトに抑える必要があります。コマンド長に関する注意事項の詳細については,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「12.4.1 自動アクションを検討するときの注意事項」を参照してください。
アクション定義で使用できる変数
自動アクション定義パラメーターの定義のうち,実行するアクションの指定(:以降の指定)には,変数を使って,JP1イベントに含まれる情報を指定できます。アクション実行時に,変数がJP1イベント中の情報に変換されて実行されます。
変数を自動アクション定義パラメーターに記述する場合は,「$EVID」のような形式で指定します。
使用できる変数を次に示します。
情報の種類 |
変数名 |
内容 |
---|---|---|
JP1イベント基本属性に含まれる情報 |
EVBASE |
イベント基本情報全体 |
EVID |
イベントID(基本コード:拡張コード) |
|
EVDATE |
イベント発生日(YYYY/MM/DD) |
|
EVTIME |
イベント発生時刻(hh:mm:ss) |
|
EVPID |
イベント発行元プロセスID |
|
EVUSRID |
イベント発行元プロセスのユーザーID |
|
EVGRPID |
イベント発行元プロセスのグループID |
|
EVUSR |
イベント発行元ユーザー名 |
|
EVGRP |
イベント発行元グループ名 |
|
EVHOST |
イベント発行元ホスト名 |
|
EVIPADDR |
イベント発行元IPアドレス |
|
EVSEQNO |
イベントDB内通し番号 |
|
EVARVDATE |
イベント到着日(YYYY/MM/DD) |
|
EVARVTIME |
イベント到着時刻(hh:mm:ss) |
|
EVSRCNO |
イベント発生元のイベントDB内通し番号 |
|
EVMSG |
メッセージテキスト全体 |
|
EVDETAIL |
イベント詳細情報全体 |
|
JP1イベント拡張属性に含まれる情報 |
EVSEV |
イベント拡張情報重大度(Emergency, Alert, Critical, Error, Warning, Notice, Information, Debug) |
EV"拡張属性名" |
任意の拡張属性 |
|
その他 |
ACTHOST |
アクション実行要求元マネージャー名 |
EVENV1〜EVENV9 |
アクションの実行条件の指定で,正規表現中に"( )"を指定して切り出したデータ (マネージャーで拡張正規表現を使用している場合だけ使用できる) |
該当しない項目の変数の値はNULLになります。また,JP1イベントの種類によっては,変数自体のないものや,各属性に含まれる情報に文字として認識できないコード(ASCIIコードおよび環境設定で指定したマルチバイト文字コードの文字集合に含まれない部分)が含まれていることで,アクションが実行できない,または実行されても結果が不正になる場合があります。JP1イベント発行元製品のマニュアルなどを事前に参照し,設定してください。
変数の記述での注意点
-
変数の直後に文字を記述する場合,変数の直後に英数字および「_ 」を指定すると正しく変換されません。このような場合は,変数を{}で囲んでください。次に指定例を示します。なお,次の例では,イベントID($EVID)は100:0,拡張属性EX($EV"EX")はABCが設定されていると仮定します。
(指定例)
アクション定義 → 変換後の情報
「$EVID abc」 →「100:0 abc」
「$EVIDabc」 →「$EVIDabc」(Windowsの場合),なし(UNIXの場合)
「${EVID}abc」 →「100:0abc」
「$EVID_abc」 →「$EVID_abc」(Windowsの場合),なし(UNIXの場合)
「${EVID}_abc」→「100:0_abc」
「$EV"EX" abc」→「ABC abc」
「$EV"EX"abc」 →「ABCabc」
-
変換元の文字情報に,次に示す制御文字が含まれていた場合,その制御文字は半角スペース(0x20)に変換されて処理されます。
半角スペースに変換される制御文字:0x01〜0x1F(タブ(0x09)を除く),0x7F
例えば,$EVMSGの指定によって取得したメッセージの中に改行コード(0x0A)が含まれていた場合,改行コード(0x0A)は半角スペース(0x20)に変換されて処理されます。
(例)アクション(echo $EVMSG)を設定し,イベントのメッセージとして改行コードを含む文字列”1行目 0x0A 2行目”を受信した場合には,アクションとして実行されるコマンドは "echo 1行目△2行目"となります(△は半角スペースを表す)。
-
UNIXの場合,最終的な展開はシェルの解釈に依存します。展開後のデータに「*」など,シェルで特別な意味を持つ文字がある場合,その内容に置き換えられます。置き換えをしないようにするには,変数全体を「"」で囲み,「"$EVMSG"」のように記述してください。
-
変数で指定されたJP1イベントの情報に「"」や「'」など,コマンドで特別な意味を持つ文字がある場合,コマンドが正しく解釈されないときがあります。イベント引き継ぎ情報変換設定ファイルで文字変換することをお勧めします。イベント引き継ぎ情報変換設定ファイルの詳細については,「イベント引き継ぎ情報変換設定ファイル(event_info_replace.conf)」(2. 定義ファイル)を参照してください。
アクション定義での正規表現
自動アクションの定義で,イベント監視条件にJP1イベントの属性(メッセージテキスト・基本属性・詳細情報)を正規表現で指定する場合の指定方法について説明します。
使用できる正規表現は,OSによって異なります。Windowsの場合とUNIXの場合に分けて,使用できる正規表現を説明します。
複数のOSでアクション定義を共用する場合,正規表現の解釈が異なるので,どのOSでも使用できる表現で条件を記述するように注意してください。なお,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「付録G 正規表現」に各OS共通で使用できる正規表現を記載しています。これを参考にして使用する正規表現を決めてください。
Windows版の正規表現
Windows版では,使用できる正規表現をJP1独自の正規表現,拡張正規表現のどちらかにできます。デフォルトは拡張正規表現です。JP1独自の正規表現にする場合は,「自動アクション環境定義ファイル(action.conf.update)」(2. 定義ファイル)を参照して設定してください。
JP1/IMの自動アクションでは,OSの正規表現に加えて,次の拡張記法も使えます。
- 「\/」,「\\」
-
ブラケット式中でも,それぞれただの「/」,「\」を表します。正規表現で「/」,「\」を表すときはすべてこの方法を使います。
UNIX版の正規表現
UNIX版では「拡張正規表現」を使用します。使用できる正規表現の詳細については,OS提供の「regexp(5)」を参照してください。
JP1/IMの自動アクションでは,OSの正規表現に加えて,次の拡張記法も使えます。
- 「\/」,「\\」
-
ブラケット式中でも,それぞれただの「/」,「\」を表します。正規表現で「/」,「\」を表すときはすべてこの方法を使います。
正規表現による基本属性・詳細属性の指定
イベント監視条件に,JP1イベントの基本属性・詳細情報を正規表現で指定する場合の方法について説明します。
自動アクション定義パラメーターの中では,JP1イベントの基本属性は,次の形式で表されます。
イベントID※1△イベント発行元ユーザー名△イベント発行元ユーザーID△
イベント発行元グループ名△イベント発行元グループID△
イベント発行元イベントサーバ名※2△イベント発行元プロセスID△
イベント登録年月日※3△イベント登録時刻※4△イベント発行元ホストIPアドレス
- 注※1
-
イベントIDは「基本コード:拡張コード」という形式で表されます。基本コードおよび拡張コードは,ともに8けたの16進数(A〜Fは大文字)です。IDの前の0は省略されます。拡張コードが00000000の場合は,「基本コード:0」と表されます。
- 注※2
-
イベントサーバ名とホスト名が異なる場合,イベント発行元ホスト名の取得方法が「local」に設定されていると,イベントサーバ名ではなくホスト名となります。
- 注※3
-
「YYYY/MM/DD」という形式で表されます。
- 注※4
-
イベント登録時刻は「hh:mm:ss」という形式で表されます。
JP1イベントの詳細情報は,次の形式で表されます。
情報1△情報2△情報3△…△情報n△
- 注
-
プログラムによっては,この形式でない場合や,固定長のためマルチバイト文字の1バイト目しか含まれていないなど,文字として認識できないコードが混入している場合もあります。形式については各プログラムのマニュアルを参照してください。
基本属性,詳細情報とも,情報中の各項目は,空白文字で区切られます。
該当する情報がない場合は,NULLになり,前後の区切りの空白が連続して表されます。また,最後の項目のあとには,将来の機能拡張などで情報が追加されることがあるので注意してください。
次に,基本属性および詳細情報中の各項目の指定方法を説明します。
基本属性,および詳細情報の先頭の項目を指定する場合は,先頭文字列を意味する「^」を使用します。例えば,イベントIDが00003A80のJP1イベントを指定するには,次のように指定します。
「^3A80:0△.*△.*△.*△.*△.*△.*△.*△.*△.*$」
2番目以降の項目を指定する場合は,「.* 」(任意の文字列と空白を示す)を繰り返して,不要な項目をスキップします。例えば,イベント基本属性の6番目の項目であるイベント発行ホスト名を指定する場合は,「.* 」を5回繰り返し,次のように指定します。
「^.*△.*△.*△.*△.*△host01」
次に,イベント情報の指定例を示します。
- (例1)JP1USERで始まるユーザー名のユーザーから送信されたJP1イベント
-
^.*△JP1USER[_A-Z0-9]+△.*△.*△.*△.*△.*△.*△.*△.*$
- (例2)host01〜host05で発行されたJP1イベント(拡張正規表現を使用している場合)
-
^.*△.*△.*△.*△.*△host0[1-5]△.*△.*△.*△.*$
- (例3)host02で8時0分から8時10分に登録されたJP1イベント(拡張正規表現を使用している場合)
-
^.*△.*△.*△.*△.*△host02△.*△.*△08:(10|0[0-9]).*△.*$
- (例4)詳細情報の3番目の項目が「prn」で始まるJP1イベント
-
^.*△.*△prn.*$
注 詳細情報の形式は,JP1イベントを発行するプログラムのマニュアルなどでご確認ください。
- 正規表現に関する注意事項
-
-
JP1独自正規表現(Windows)を拡張して,拡張正規表現を使用する場合には,拡張による誤動作を防ぐため,定義済みの設定を見直し,拡張正規表現用に定義し直す必要があります。
-
制御コード(改行,タブなど)は,製品やOSによって扱いが異なることがあります。このため,メッセージに対する条件を正規表現で記述する場合は,制御コード以外の部分を記述するようにしてください。
-
正規表現で,すべての文字に一致する表現の「.*」を多用すると,検索に時間が掛かることがあります。長いメッセージなどに対して「.*」を使用する場合は,必要な個所にだけ「.*」を使用するようにしてください。
また,拡張正規表現を使用できる環境で,かつ,空白以外の文字に一致させたい場合には,「.*」の代わりに「[^ ]*」が使用できます。「[^ ]*」を使用した方が検索に掛かる時間を短縮できます。
-
自動アクションの正規表現は部分一致のため,先頭および末尾に「.*」を指定した場合と,先頭および末尾に「.*」を指定しない場合は同じ条件になります。
例えば,次の例1と,例2は同じ条件になります。
(例1)「A001△:△WEBサーバ」を含む文字列の場合に一致する正規表現
.*A001△:△WEBサーバ.*
(例2)「A001△:△WEBサーバ」を含む文字列の場合に一致する正規表現
A001△:△WEBサーバ
先頭および末尾に「.*」を指定した場合,検索に時間が掛かることがあるので,先頭および末尾に「.*」は指定しないでください。
-
特殊文字である縦線「|」はOR条件を表します。このOR条件を正規表現中に使用する際は,次のことに注意してください。
OR条件の縦線「|」は正規表現の中で優先度が低いため,OR条件がかかる範囲を明示的に指定する必要があります。範囲を指定しない場合,動作しない,または誤動作する原因になることがあります。OR条件の範囲は,条件がかかる範囲を丸括弧「()」で囲むことで指定できます。イベント発行元サーバ名の条件をOR条件にするときの指定例を次に示します。
(例)gyoumuまたはhostで発行されたJP1イベント
^.*△.*△.*△.*△.*△(gyoumu|host)△.*△.*△.*△.*$
-
定義例
自動アクション定義ファイルの定義例を次に示します。なお,定義例は,正規表現の種別に拡張正規表現を指定しています。
- 定義例1:変数を使用した例1
-
変数を使用して受信したJP1イベントの情報を,アクションとして実行するコマンドの引数に指定する場合の定義例を次に示します。
-
イベント条件
イベントID(B.ID)が「00000001」
メッセージの形式が「メッセージID※△:△メッセージ本文」
注※ メッセージIDは,英字1文字と3けたの数字。
-
アクションとして実行するコマンド
alarm.bat△引数1△引数2
-
コマンドの引数に指定するJP1イベントの情報
引数1:メッセージの値(変数には,${EVMSG}を指定)
引数2:拡張属性AAAの値(変数には,${EV"AAA"}を指定)
受信したJP1イベントのメッセージ(B.MESSAGE)の値が「A001△:△WEBサーバーがダウンしました。」,拡張属性AAAの値が「kanshi」の場合,「alarm.bat△"kanshi"△"A001△:△WEBサーバーがダウンしました。"」というアクションを実行します。
-
- 定義例2:変数を使用した例2
-
変数「EVENV1」〜「EVENV9」を使用して受信したJP1イベントの情報の一部を,アクションとして実行するコマンドの引数に指定する場合の定義例を次に示します。
-
イベント条件
イベントID(B.ID)が「00000001」
メッセージの形式が「メッセージID※△:△メッセージ本文」
注※ メッセージIDは,英字1文字と3けたの数字。
-
アクションとして実行するコマンド
alarm.bat△引数1△引数2
-
コマンドの引数に指定するJP1イベントの情報
引数1:メッセージのメッセージIDの値(変数には,${EVENV1}を指定)
引数2:メッセージのメッセージ本文の値(変数には,${EVENV2}を指定)
受信したJP1イベントのメッセージ(B.MESSAGE)の値が「A001△:△WEBサーバーがダウンしました。」の場合,「alarm.bat△"A001"△"WEBサーバーがダウンしました。"」というアクションを実行します。
-
- 定義例3:イベントIDを正規表現で指定した例
-
イベント条件の属性名に「B.ID」,比較キーワードに「REGEX」を指定する場合の定義例を次に示します。
-
イベント条件
イベントIDが00000001〜00000200(16進数のA〜Fの文字は含めない)
発行元イベントサーバ名(B.SOURCESERVER)が「kanshi」
-
アクションとして実行するコマンド
alarm.bat
イベント基本情報でイベントIDを指定する場合は,イベント基本情報で指定しているイベントIDが対象となるように,eidに「*」を指定してください。
また,イベントIDの基本部と拡張部を8バイト以内の16進数で指定し,「:」で区切ってください。
-
- 定義例4:AND条件を使用した例
-
イベントAおよびイベントBを受信した場合にアクションを実行するように指定するときの定義例を次に示します。
-
イベントAの条件
イベントID(B.ID)が「00000201」
メッセージ(B.MESSAGE)が「WEBサーバーAがダウンしました。」
-
イベントBの条件
イベントID(B.ID)が「00000202」
メッセージ(B.MESSAGE)が「WEBサーバーBがダウンしました。」
-
アクションとして実行するコマンド
alarm.bat
AND条件を使用する場合は,相関イベント発行機能を使った自動アクションをお勧めします。相関イベント発行機能は,AND条件では考慮できない,JP1イベントの順序や件数を指定できます。相関イベントについては,マニュアル「JP1/Integrated Management 2 - Manager 導入・設計ガイド」の「4.3 相関イベントの発行」を参照してください。
-