JP1/Base 運用ガイド
アプリケーションプログラムのログファイルの情報をJP1イベントに変換してイベントDBに登録する流れを次の図に示します。
図1-9 アプリケーションプログラムのログファイルの変換から登録までの流れ
ログファイルトラップを使用するには,ログファイルトラップ動作定義ファイルを作成し,監視するログファイルの出力形式と,JP1イベントに変換したいログデータの条件を指定します。その後,コマンドを実行すると,ログファイルトラップ管理サービス(デーモン)を基盤としてログファイルトラップが生成され,ログファイルを監視します。監視条件に一致するログデータがあると,JP1イベントに変換してイベントDBに登録します。複数のログファイルトラップを同時に起動できるため,さまざまなログファイルを異なる条件で監視できます。また,一つのログファイルトラップで複数のログファイルを監視することもできます。
JP1イベントとして登録できるメッセージは,デフォルトでは511バイトまでです。JP1イベントに変換するメッセージが511バイトを超えた場合,以降のメッセージを切り捨てます。メッセージの長さを拡張したい場合は,jevlogstartコマンドで-mオプションに値を指定すると,1,023バイトまで登録できます。
ログファイルトラップを使用する場合は,次の条件が必要です。
- 次に示すファイルの文字コードやコマンドを実行した時のロケール情報(LANGなどの言語種別)がすべて統一されていること。
文字コード,およびロケール情報が統一されていない場合は,文字化けやログファイルトラップが生成されないなどの現象が発生することがあります。
- ログファイルトラップの対象となるログファイル
- ログファイルトラップ動作定義ファイル
- jevlogstartコマンド
- イベントサービス,およびログファイルトラップ管理サービス(デーモン)が起動していること。
Windowsの場合,イベントサービス,およびログファイルトラップ管理サービスは,システムの起動時に自動的に起動するようにデフォルトで設定されています。
UNIXの場合,それぞれサービスの起動コマンドを実行する必要があります。サービスの起動方法については「5.2 JP1/Baseを起動および終了する(UNIXの場合)」を参照してください。
- ログファイルトラップの起動と終了
- jevlogstartコマンド,およびjevlogstopコマンドを使用します。ログファイルがまだ存在しない場合でも,jevlogstartコマンドに-rオプションを指定すると,ログファイルが作成されるまでログファイルトラップを待機させられます。
- また,ログファイルトラップ起動定義ファイルを使用すると,ログファイルトラップ管理サービス(デーモン)の起動時に,自動的にログファイルトラップを起動できます。ログファイルトラップ起動定義ファイルを使用した場合のログファイルトラップの起動の流れを次に示します。
図1-10 ログファイルトラップ起動定義ファイルを使用した場合のログファイルトラップの起動の流れ
- ログファイルトラップ起動定義ファイルには,起動するログファイルトラップおよび起動オプション(jevlogstartコマンドで指定する内容)を指定します。ログファイルトラップ管理サービス(デーモン)起動時に,ログファイルトラップ起動定義ファイルが読み込まれ,起動定義ファイルに指定されているログファイルトラップが自動的に起動されます。
- なお,ログファイルトラップを個別に停止したり,個別に動作定義ファイルを再読み込みしたりする場合は,ログファイルトラップを起動したときに標準出力される識別用のID番号,またはログファイルトラップを起動したときに設定した監視名を指定してコマンドを実行してください。
ログファイルトラップで変換されたJP1イベントの属性については,「15.3(13) 動作定義ファイルのACTDEFパラメーターで指定されたイベントIDの詳細」を参照してください。
- <この項の構成>
- (1) 監視できるログファイル
- (2) 監視できるログファイル数
- (3) 監視の開始と終了
- (4) ログファイルの監視失敗時のリトライ
- (5) イベントサービスへの接続失敗時のリトライ
(1) 監視できるログファイル
ログファイルトラップは,サイズが2ギガバイトまでのログファイルを監視できます。また,さまざまな形式のログファイルを監視できます。監視対象のログファイルの形式を確認して,ログファイルトラップ動作定義ファイルにログファイルの形式を指定します。監視できるログファイルの形式を説明します。
- シーケンシャルファイル(SEQ)
一つのログファイルに追加書き込みし続けるファイル,または,ログファイルが一定の容量に達すると,別のファイル名で新たにログファイルを作成して書き込むファイルです。ログファイルトラップ動作定義ファイルには「SEQ」と指定します。シーケンシャルファイル(SEQ)の動作を次の図に示します。
図1-11 シーケンシャルファイル(SEQ)の動作
- シーケンシャルファイル(SEQ2)
ログファイルトラップ動作定義ファイルには「SEQ2」と指定します。シーケンシャルファイル(SEQ2)の動作を次の図に示します。
- Windowsの場合
同一ボリューム内でファイル名を変更したあと,変更前のファイル名と同じ名称のファイルを作成して新たにログを書き込むファイルです。
- UNIXの場合
ファイル名を変更,またはファイルをいったん削除したあと,変更/削除前のファイル名と同じ名称のファイルを作成して新たにログを書き込むファイルです。
図1-12 シーケンシャルファイル(SEQ2)の動作
- ラップアラウンドファイル(WRAP1)
ログファイルが一定の容量に達すると,ラップアラウンドして,再び先頭からデータを上書きする形式のファイルです。ログファイルトラップ動作定義ファイルには「WRAP1」と指定します。
なお,WRAP1の形式のログファイルを監視する場合,監視するファイルの容量と同じサイズの空きディスク容量が必要です。ラップアラウンドファイル(WRAP1)の動作を次の図に示します。
図1-13 ラップアラウンドファイル(WRAP1)の動作
- ラップアラウンドファイル(WRAP2)
ログファイルが一定の容量に達してラップアラウンドするとき,データを削除して再び先頭からデータを書き込む形式のファイルです。ログファイルトラップ動作定義ファイルには「WRAP2」と指定します。ラップアラウンドファイル(WRAP2)の動作を次の図に示します。
図1-14 ラップアラウンドファイル(WRAP2)の動作
- マルチプロセス対応トレースファイル(HTRACE)
Cosminexusなどの日立のミドルウェア製品が出力するログファイルの形式の一つで,複数のプロセスが一組のトレースファイルを共有するメモリマップドファイルを使用した固定サイズのファイルです。ログファイルトラップ動作定義ファイルには「HTRACE」と指定します。ログファイルの書き込み方法はWRAP1と同様で,ログファイルが一定の容量に達すると,ラップアラウンドして,再び先頭からデータを上書きします。データの書き込み時にファイルの更新日時は更新されません。監視対象のログファイルがマルチプロセス対応トレースファイルかどうかは,各製品のマニュアルを参照してください。マルチプロセス対応トレースファイル(HTRACE)の動作を次の図に示します。
図1-15 マルチプロセス対応トレースファイル(HTRACE)の動作
ログファイルトラップでは,シンボリックリンクが設定されたファイルも監視できます。ただし,リンク先の変更に対応できるログファイルの形式はSEQ2だけです。
なお,次に示すログファイルは監視できません。
- 毎回ファイルの先頭からログ情報が記録されるファイル
- ラップアラウンドファイル(WRAP1)のうち,データが書き込まれても日時が更新されないファイル,およびデータが書き込まれないのに日時が更新されるファイル
ラップアラウンドファイル(WRAP1)を監視する場合,ログファイルトラップがログファイルを読み込む際に,更新日時を参照します。このようなファイルを監視すると,ログファイルトラップが正常に動作しないことがあります。
- スペシャルファイル,デバイスファイル
ログファイル中の1行の終了文字以外でバイナリーデータを含むレコードがあるファイルです。
- ファイル名が特定できないファイル
プロセスIDなど,ファイル名にその時々に応じて値が変わるものを含んでいるファイルです。
- ネットワークファイル
他コンピュータのファイルを,ファイル共有などでアクセスした場合,ネットワークの障害や遅延の際に動作を保証できません。
- 1行だけ出力されるログファイル
ログファイルに常に1行しかログが存在しないファイルです。
- 排他されるファイル
ログファイルトラップは,ログファイルを読み込みモードで開きます。このため,Windowsではログの出力プログラムが排他に失敗し,ログが出力されないことがあります。
- JP1/Baseがサポートしていない言語で出力されるファイル
JP1/BaseがWindowsでサポートしている言語はMS932とCです。JP1/BaseがUNIXでサポートしている言語については「2.3.5(2) 言語種別の設定」を参照してください。
(2) 監視できるログファイル数
WindowsおよびUNIXで監視できるログファイル数の目安を次に示します。
- Windowsの場合
- 監視できるログファイル数の最大値は次の式に従います。
- (凡例)
- a:監視するログファイルの総数(同一ファイルでも加算する)
- b:JP1/AJSのログファイル監視ジョブで監視するログファイルの総数(同一ファイルでも加算する)
- m:jevlogstartコマンドの実行数
- n:JP1/AJSのログファイル監視ジョブの実行数
- UNIXの場合
- 一つのログファイルトラップで監視できる監視ファイルの最大数は100ですが,UNIXのシステム上で監視できる監視ファイルの最大数は,カーネルパラメーターの設定(ファイルオープン数の設定)次第となります。
(3) 監視の開始と終了
ログファイルの監視は,jevlogstartコマンドを実行してログファイルトラップが起動した時点で開始し,一定の間隔で監視を続けます。デフォルトの監視間隔は10秒です。監視間隔は,jevlogstartコマンドの-tオプションで変更できます。ログファイルの監視が終了するタイミングは,jevlogstopコマンドのオプションの指定によって異なります。コマンドの詳細については,「13. コマンド」を参照してください。
ログファイルトラップを再起動した場合,ログファイルトラップの停止後から,次に起動するまでの間に出力されたログは監視されません。
(4) ログファイルの監視失敗時のリトライ
ログファイルの更新元プログラムがログファイルを更新するタイミングと,ログファイルトラップがログファイルを監視するタイミングが競合すると,ログファイルの更新元プログラムによってログファイルに排他が掛けられ,ログファイルのオープンや読み込みに失敗する場合があります。このように,一時的に監視に失敗した場合に,監視をリトライします。
なお,一つのログファイルトラップで複数のログファイルを監視する場合,一つのログファイルの監視に失敗すると,そのログファイルに対してはリトライを行い,ほかのログファイルの監視は続行します。
リトライによって監視を回復できなかった場合は,該当のログファイルの監視を停止します。エラーメッセージで示されるログファイルに異常がないかどうかを確認してください。監視に失敗したログファイルを再度監視したい場合は,jevlogstartコマンドでログファイルトラップを新たに起動してください。
監視の開始時にログファイルをオープンできなかった場合と,監視中にログファイルの読み込みに失敗した場合のリトライの動作について次に説明します。
(a) 監視開始時にログファイルのオープンに失敗した場合
jevlogstartコマンドでログファイルトラップを起動するとき,監視対象のログファイルをオープンします。このとき,ログファイルの更新元プログラムなどによって排他が掛けられていると,ログファイルをオープンできないため監視を開始できません。このような場合,デフォルトでは1秒後に1回リトライします。リトライ間隔およびリトライ回数は,ログファイルトラップ動作定義ファイルで設定できます。
リトライによってログファイルのオープンに成功した場合は,オープンに成功した時点から監視が開始されます。
指定した回数リトライしてもログファイルをオープンできなかった場合,またはリトライ開始から3,600秒経過してもオープンできなかった場合は,エラーメッセージおよびJP1イベント(00003A20)で通知します。JP1イベントの詳細については,「15.3(4) イベントID:00003A20の詳細」を参照してください。
監視開始時に,一時的にログファイルのオープンに失敗した場合のリトライの例を次の図に示します。図の例では,リトライ間隔が1秒,リトライ回数が3回の場合の動作を示します。
図1-16 監視開始時にログファイルのオープンに失敗した場合のリトライの例
(b) 監視中にログファイルの読み込みに失敗した場合
ログファイルの監視中にログファイルの読み込みに失敗した場合は,10ミリ秒間隔で5回リトライします。5回リトライしても回復しなかった場合は,次の監視のタイミングまで待機します。次の監視タイミングでも読み込みに失敗すると,再度10ミリ秒間隔で5回リトライします。リトライ間隔とリトライ回数は固定です。
10ミリ秒間隔で5回のリトライを1セットとしてカウントし,デフォルトでは100セットまでリトライを繰り返します。何セットまでリトライを繰り返すかは,リトライを継続する回数のしきい値としてログファイルトラップ動作定義ファイルで設定できます。
指定した回数リトライが行われても回復しない場合は,該当のログファイルの監視が停止し,JP1イベント(00003A21)で通知します。JP1イベントの詳細については,「15.3(5) イベントID:00003A21の詳細」を参照してください。
監視中にログファイルの読み込みに失敗した場合のリトライの例を次の図に示します。図の例では,リトライを継続する回数のしきい値を3回に設定した場合の動作を示します。
図1-17 ログファイルの読み込みに失敗した場合のリトライの例
(5) イベントサービスへの接続失敗時のリトライ
ログファイルトラップがイベントサービスに接続できなかった場合,デフォルトでは,接続はリトライされないで,ログファイルトラップは起動に失敗または停止します。接続をリトライしたい場合は,ログファイルトラップ動作定義ファイルに,ログファイルトラップごとに設定します。指定した回数リトライが行われてもイベントサービスに接続できなかった場合,ログファイルトラップは起動に失敗,または停止します。
リトライ中に変換されたJP1イベントは,指定した件数まで保留されます。指定した件数を超過してJP1イベントが発生すると,超過したJP1イベントは消去されます。
イベントサービスへの接続に成功すると,保留された順番にJP1イベントをイベントサービスに送信します。また,イベントサービスに接続できたことをJP1イベントで通知します。JP1イベントの詳細については,「15.3(3) イベントID:00003A10の詳細」を参照してください。
All Rights Reserved. Copyright (C) 2009, 2011, Hitachi, Ltd.