JP2019086880A - ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法 - Google Patents

ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法 Download PDF

Info

Publication number
JP2019086880A
JP2019086880A JP2017212601A JP2017212601A JP2019086880A JP 2019086880 A JP2019086880 A JP 2019086880A JP 2017212601 A JP2017212601 A JP 2017212601A JP 2017212601 A JP2017212601 A JP 2017212601A JP 2019086880 A JP2019086880 A JP 2019086880A
Authority
JP
Japan
Prior art keywords
log
log file
unit
rotation
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017212601A
Other languages
English (en)
Inventor
松井 大
Masaru Matsui
大 松井
近藤 光生
Mitsuo Kondo
光生 近藤
佐藤 仁
Hitoshi Sato
仁 佐藤
田中 功
Isao Tanaka
功 田中
一輝 秋田
Kazuteru Akita
一輝 秋田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017212601A priority Critical patent/JP2019086880A/ja
Publication of JP2019086880A publication Critical patent/JP2019086880A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】調査に必要なログが記録されたファイルが消去されるのを防止する技術を提供する。【解決手段】調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに上書きで消去される退避対象ローテーションログファイルの有無を判定する。退避対象ローテーションログファイルが有ると判定した場合は、複数のローテーションログファイルの参照回数が第2の閾値以下で、かつ、採取予定時まで上書きで消去されない単位ログファイルの余裕サイズを算出する。余裕サイズが退避対象単位ログファイルのサイズ以上の場合は、複数の単位ログファイルのうち、少なくとも一部を削除し、退避対象単位ログファイルを、退避対象ローテーションログファイルから別の名前にリネームすることで退避する。【選択図】図7

Description

本発明は、ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法に関する。
従来、ソフトウェアトラブル等の際に調査が必要な情報(以下、ログとも呼ぶ)をログファイル(以下、単にファイルとも呼ぶ)に記録する記録方法としてローテーション方式が知られている。ローテーション方式では、イベント(例えば、ファイルサイズが一定サイズを超えた、又は、一定期間が経過した)の発生に応じて、予め定められた世代数(ファイル数と等しい)の範囲内でログ出力先が循環的に切り替えられる(ローテーションされる)複数のファイルが用いられる。以下の特許文献は、ログの記録について関連する。
特開平10−40140号公報 特開2008−262287号公報
しかしながら、ローテーション方式には、予め定められたサイズ・世代数よりファイルサイズ・ファイル数が大きくならないため、記憶装置の記憶容量(例えば、ディスク容量)を抑制できるという利点があるものの、ログ出力先ファイルが循環的に切り替えられる(ローテーションされる)ことに起因して、調査に必要なログが記録されたファイルが消去されてしまう(上書きされてしまう)場合があるという課題がある。
そこで、本開示の第1の側面の目的は、ログ出力先ファイルが循環的に切り替えられる(ローテーションされる)ことに起因して、調査に必要なログが記録されたファイルが消去されるのを防止することができるログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法を提供することにある。
一つの実施の形態は、情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、処理をコンピュータに実行させるログファイル制御プログラムである。
一つの実施の形態によれば、ログ出力先ファイルが循環的に切り替えられる(ローテーションされる)ことに起因して、調査に必要なログが記録されたファイルが消去されるのを防止することができるログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法を提供することができる。
情報処理システム10の構成を示す図である。 ローテーションログファイル131の例である。 監視ログファイル132の一例である。 情報処理システム10の概略処理のフローチャートである。 情報処理システム10の詳細処理のフローチャートである。 S13−2の詳細処理のフローチャートである。 ログ参照頻度テーブル234を説明する図である。 ローテーションログファイル131の例である。 業務システム1の詳細構成を示す図である。 メッセージ監視プログラム110dの詳細処理のフローチャートである。 図6に示すS20の詳細処理のフローチャートである。 ログ参照頻度テーブル234(一部抽出)の例である。 退避候補ログ状態テーブル134を説明する図である。 図6に示すS22の詳細処理のフローチャートである。 削除候補ログ状態テーブル135の例である。 図6に示すS24の詳細処理のフローチャートである。 動作設定情報の一例である。 図6に示すS26の詳細処理のフローチャートである。 採取監視プログラムの詳細処理のフローチャートである。 ログ参照頻度管理装置2の構成を示す図である。 ログ参照頻度テーブル作成プログラム210bの詳細処理のフローチャートである。 ログ参照頻度テーブル作成プログラム210bの詳細処理のフローチャートである。 ログ参照頻度テーブル234の例である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 ログ参照頻度テーブル作成処理における各テーブルの状態遷移を表す図である。 変形例について説明するための図である。
[第1の実施の形態の概略]
図1は、情報処理システム10の構成を示す図である。図1に示す情報処理システム10は、実施の形態のログファイル制御プログラム、ログファイル制御装置及びログファイル制御方法が適用された業務システム1と、ログ採取端末11と、ログ参照頻度管理装置2と、を有する。業務システム1、ログ採取端末11及びログ参照頻度管理装置2は、例えば、サーバコンピュータで構成され、インターネット等のネットワークNWを介して相互に通信する。
業務システム1は、ハードウェアであるCPU101(Central Processing Unit。以下、プロセッサ101と呼ぶ)、メインメモリ102、大容量メモリであるストレージ104等を有する。プロセッサ101は、ストレージ104からメインメモリ102に展開された各種プログラムを実行することで様々な処理を行う。
ストレージ104には、業務用アプリケーションプログラム110b、ログファイル制御プログラム110c、メッセージ監視プログラム110d、ローテーションログミドルウエア110f、監視ミドルウエア110g等の各種プログラムが記憶されている。また、ストレージ104には、ローテーションログファイル131、監視ログファイル132が記憶されている。また、ストレージ104には、ログ参照頻度管理装置2によって配信されたログ参照頻度テーブル234、ログ採取日の計算等に用いられる想定採取日数136等が記憶されている。
業務システム1は、プロセッサ101が業務用アプリケーションプログラム110bを実行することで、利用者に対して所定サービスを提供するサービス提供装置として動作する。
また、業務システム1は、プロセッサ101がローテーションログミドルウエア110fを実行することで、業務用アプリケーションプログラム110bの動作中に発生する様々な調査対象情報を出力してローテーションログファイル131に書き込む。ローテーションログミドルウエア110fは、業務用アプリケーションプログラム110bに含まれていてもよいし、他のプログラム(例えば、ミドルウエア)に含まれていてもよい。
また、業務システム1は、プロセッサ101が監視ログミドルウエア110gを実行することで、業務用アプリケーションプログラム110bの実行中に発生する様々な監視対象情報を出力して監視ログファイル132に書き込む。監視ログミドルウエア110gは、業務用アプリケーションプログラム110bに含まれていてもよいし、他のプログラム(例えば、ミドルウエア)に含まれていてもよい。
なお、ローテーションログミドルウエア110fと監視ログミドルウエア110gは、一つのプログラム(例えば、業務用アプリケーションプログラム)に含まれる場合もあるし、ローテーションログミドルウエア110fがあるプログラム(例えば、業務用アプリケーションプログラム)に含まれ、監視ログミドルウエア110gが他のプログラム(例えば、ミドルウエア)に含まれる場合もある。
また、業務システム1は、プロセッサ101がログファイル制御プログラム110cを実行することで、後述の削除・退避処理(図5、図6参照)を実行する。このように、業務システム1は、プロセッサ101がログファイル制御プログラム110cを実行することで、ログファイル制御装置1aとして動作する。
ローテーションログミドルウエア110fによってローテーションログファイル131に書き込まれた調査対象情報(以下、ログとも呼ぶ)は、トラブル事象の発生時に原因調査の対象になる情報のことで、例えば、ウェブの状態ログやその他の通信のトレースログ等のログ情報のことである。トラブル事象とは、所定のエラー、所定の警告又は所定の情報が業務システム1から出力されることである。
図2は、ローテーションログファイル131の例である。図2には、4つのローテーションログファイル131A〜131Dが示されている。以下、ローテーションログファイル131AのことをローテーションログファイルA又はAログとも称する。ローテーションログファイル131B〜131Dについても同様である。なお、ローテーションログファイル131は、4つに限らず、2つ以上、すなわち、複数あればよい。以下、ローテーションログファイル131A〜131Dを特に区別しない場合、ローテーションログファイル131と記載する。
ローテーションログファイル131は、循環して調査対象情報が書き込まれるように対応づけられた複数の単位ログファイルを有する。例えば、図2(a)に示すローテーションログファイル131Aは、4つの単位ログファイルA1〜A4を有する。同様に、図2(b)〜図2(d)に示すローテーションログファイル131B〜131Dも複数の単位ログファイルB1〜B4、C1〜C6、D1〜D5を有する。
ローテーションログファイル131を構成する単位ログファイルの数(世代数)及びそのファイルサイズは、例えば、代表的なトラブル事象が通常の頻度で発生した場合の調査対象情報の出力量であるログ出力量から想定される1日のログ出力量と、業務上調査対象情報であるログを保持する必要のある日数(ログを採取する間隔)と、を考慮して設計される。この観点から、例えば、図2(a)に示すローテーションログファイル131Aは、4つの単位ログファイルで構成されている。他のローテーションログファイル131B〜131D(図2(b)〜図2(d)参照)も同様の観点からそれぞれ4つ、6つ、5つの単位ログファイルで構成されている。なお、各々の単位ログファイルのファイルサイズは同一であってもよいし、異なっていてもよい。ストレージ104の容量は、以上のように設計された単位ログファイルの数(世代数)及びそのファイルサイズを考慮して設計される。
プロセッサ101は、ローテーションログミドルウエア110fを実行することで、調査対象情報を出力してローテーションログファイル131を構成する複数の単位ログファイルにローテーション方式で書き込む。ローテーション方式では、書き込まれたログが単位ログファイルの一定サイズ(上限)に達すると、ログの書き込み先の単位ログファイルを切り替え、次の単位ログファイルにログが書き込まれ、全単位ログファイルに書き込まれると、元の単位ログファイルにログが上書きされる。
ローテーション方式について図2(a)を例に説明すると、今、単位ログファイルA3にログが書き込まれ、書き込まれたログが一定サイズに達すると、次の単位ログファイルA4が作成され、作成された単位ログファイルA4にログが書き込まれる。次に、単位ログファイルA4に書き込まれたログが一定サイズに達すると、次の単位ログファイルA1が作成され、作成された単位ログファイルA1にログが書き込まれる。以後、同様の処理が繰り返される。そして、最後の単位ログファイルA2に書き込まれたログが一定サイズに達すると、元の単位ログファイルA3が削除され、新しい単位ログファイルA3が作成され、作成された単位ログファイルA3にログが書き込まれる。次に、単位ログファイルA3に書き込まれたログが一定サイズに達すると、元の単位ログファイルA4が削除され、新しい単位ログファイルA4が作成され、作成された単位ログファイルA4にログが書き込まれる。以後同様の処理が繰り返される。
ローテーションログファイル131は、ストレージ104を関連づけることで単位ログファイルが作成され、その関連づけを削除することで単位ログファイルが削除される。
本実施形態では、上記のように元の単位ログファイルが削除され、新しい単位ログファイルが作成され、その結果、元の単位ログファイルのログが失われることを上書きと呼ぶ。
図3は、監視ログファイル132の一例である。監視ログファイル132は、例えば、Linux(登録商標)において用いられるsyslogである。プロセッサ101は、監視ログミドルウエア110gを実行することで、メッセージを含む監視対象情報を出力して監視ログファイル132に書き込む。図3中の「Feb 13 16:34:50・・・84 [XXXXWeb05XXXX]」が監視対象情報の一部の例である。図3中、「ERROR…Address already in use: make_sock: could not bind to address」の部分がメッセージ(例えば、後述のXX Error)の一例である。監視ログファイル132に書き込まれるメッセージは、1つに限らず、複数の場合もある(例えば、後述のXX Error、YY Error)。
図4は、情報処理システム10の概略処理のフローチャートである。まず、プロセッサ101は、監視ログミドルウエア110gを実行することで、業務用アプリケーションプログラム110bの実行中に発生する様々な監視対象情報を出力して監視ログファイル132に書き込む(S10)。次に、プロセッサ101は、ローテーションログミドルウエア110fを実行することで、業務用アプリケーションプログラム110bの動作中に発生する様々な調査対象情報を出力してローテーションログファイル131に書き込む(S12)。S10、S12は、採取予定日まで繰り返し実行される。
そして、採取予定日が到来すると(S14:YES)、ログ採取端末11は、業務システム1にアクセスし、ローテーションログファイル131内のログを採取する(S16)。採取は、自動で又は後述のように運用管理者による操作をトリガにして行われる。
採取予定日とは、ログを採取する予定の日である。採取予定日は、ストレージ104に記憶された想定採取日数136(例えば、7日)に基づいて算出される。想定採取日数136は、採取予定日が、ログの採取に伴うファイル移動のためにI/O負荷が高くなっても業務(業務システム1)に影響を及ぼす可能性が低い日(例えば、業務を行わない日曜日)となるように考慮して定められる。
採取されるログは、単位ログファイル、例えば、トラブル事象発生時の調査対象情報が書き込まれた単位ログファイルやその1又は複数世代前の単位ログファイル内のログである。採取とは、ログをストレージ104から読み出して別のストレージ、例えば、ログ採取端末11の採取ログ格納部11aへコピーすることである。また、採取とは、ログをストレージ104内のあるファイルシステムから読み出して同一のストレージ104内の別のファイルシステムへコピーすることであってもよい。採取は、コピー後、元のログを削除する処理を含んでいてもよい。
例えば、ログ採取端末11は、ローテーションログファイル131を構成する複数の単位ログファイルのうち、トラブル事象発生時のログが書き込まれた単位ログファイル、さらに、必要に応じてその1又は複数世代前の単位ログファイルを採取する。調査者は、採取されたログに基づき、発生したトラブル事象の原因を調査する。
以上のように、単位ログファイルの数(世代数)及びそのファイルサイズは、代表的なトラブル事象が通常の頻度で発生した場合の調査対象情報の出力量であるログ出力量から想定される1日のログ出力量と、業務上調査対象情報であるログを保持する必要のある日数と、を考慮して設計される。そして、ストレージ104の容量は、このように設計された単位ログファイルの数(世代数)及びそのファイルサイズを考慮して設計される。そのため、調査対象情報の出力量が想定の範囲内である限り、調査対象情報がローテーション方式で循環的に書き込まれても、採取予定日までの間に、トラブル事象発生時の調査対象情報が書き込まれた単位ログファイル(以下、最新単位ログファイルとも呼ぶ)が新しい単位ログファイルで上書きされることはない。図2及び図8中の単位ログファイルA3、B3、C3、D3が最新単位ログファイルの例である。最新とは、トラブル事象発生時における最新のことで、図2及び図8中の「最新」はこのことを表している。図8は、ローテーションログファイル131の例である。
しかしながら、業務システム1の環境や運用状況によって(例えば、トラブル事象に誘発されて)調査対象情報の出力量が想定以上となる場合がある。この場合、想定以上の調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に、最新単位ログファイルが新しい単位ログファイルで上書きされて失われてしまうことがある。その結果、最新単位ログファイルを、採取予定日に採取することができず、発生したトラブル事象の原因を調査することができないという問題がある。
図5は、情報処理システム10の詳細処理のフローチャートである。図5では、図4のフローチャートにS13−1、S13−2の処理が追加されている。それ以外、図4に示す処理と同様である。以下、図4との相違点を中心に説明する。
プロセッサ101は、監視ログミドルウエア110gを実行することで、監視対象情報を監視ログファイル132に書き込む(S10)。次に、プロセッサ101は、ローテーションログミドルウエア110fを実行することで、調査対象情報をローテーションログファイル131に書き込む(S12)。さらに、プロセッサ101は、メッセージ監視プログラム110dを実行することで、監視ログファイル132を参照してメッセージ(トラブル事象)を検知したか否かを判定する(S13−1)。
プロセッサ101は、メッセージを検知した場合(S13−1:YES)、ログファイル制御プログラム110cを実行することで、削除・退避処理(S13−2)を実行する。つまり、メッセージ検知時、採取予定日までの間に、メッセージ検知時(トラブル事象発生時)の調査対象情報が書き込まれた単位ログファイルが新しい単位ログファイルで上書きされないように、最新単位ログファイル(メッセージ検知時のログが書き込まれた単位ログファイル)をリネームすることで退避する。なお、最新単位ログファイルに加えて、その最新単位ログファイルの1又は複数世代前の単位ログファイルをリネームする場合もある。
図6は、S13−2の詳細処理のフローチャートである。
以下の処理は、プロセッサ101が、ログファイル制御プログラム110cを実行することで行う。
まず、プロセッサ101は、複数のローテーションログファイル131A〜131Dのうち、次の2つの条件を満たすローテーションログファイル(以下、退避対象ローテーションログファイルと呼ぶ)を判定する退避対象ローテーションログファイル判定処理を実行する(S20)。
1つめの条件は、S13−1で検知されたメッセージ(トラブル事象)の原因調査のために過去に参照された回数(以下、参照回数と呼ぶ)が第1の閾値以上のローテーションログファイルである。参照回数は、メッセージの識別情報とそのメッセージの原因調査のために過去に参照されたローテーションログファイルの識別情報とを対応づけたログ参照頻度テーブル234から抽出される。ログ参照頻度テーブル234は、ログ参照頻度管理装置2が業務システム1に対して配信したものであり、ストレージ104に記憶されている。ログ参照頻度管理装置2の詳細は、後述する。
図7は、ログ参照頻度テーブル234を説明する図である。図7に示すログ参照頻度テーブル234は、ログ参照頻度テーブル234に含まれる各情報を識別する「項番」と、メッセージの識別情報が設定される「メッセージ」と、「メッセージ」の原因調査のために過去に参照されたローテーションログファイルの識別情報が設定される「ログ名」と、「メッセージ(トラブル事象)」の原因調査のために過去に参照された「ログ名」の参照回数が設定される「参照回数」と、「メッセージ(トラブル事象)」の原因調査のために過去に参照された「ログ名」の世代数が設定される「参照世代数」と、を項目として有する。なお、ログ参照頻度テーブル234は、ログ参照頻度管理装置2が自動的に作成してもよいし、サポート員等が各項目を手入力することで作成してもよい。なお、図7に示すログ参照頻度テーブル234は、説明を簡単にするため、「参照回数」が「0」、「8」、「52」、「64」の4行のみを示しているが、実際には、項番5以上の行を含んでいる。
2つめの条件は、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれており、かつ、調査対象情報がローテーション方式で書き込まれることによって採取予定日までに新しい単位ログファイルで上書きされる単位ログファイル(以下、退避対象単位ログファイルとも呼ぶ)を含むローテーションログファイルである。
次に、図8を参照しながら、上記2つの条件を満たすローテーションログファイル、すなわち、退避対象ローテーションログファイルを判定する具体例を説明する。
1つめの条件を満たすか否かは、次のようにして判定される。
以下、S13−1でメッセージ「XX Error」が検知され、第1の閾値として52未満の数(例えば、50)が設定され、図8に示すローテーションログファイル131A〜131D及び図7に示すログ参照頻度テーブル234がストレージ104に記憶されているものとして説明を行う。
プロセッサ101は、ログファイル制御プログラム110cを実行することで、ログ参照頻度テーブル234を参照し、S13−1で検知されたメッセージ「XX Error」の原因調査のために過去に参照されたローテーションログファイル131を判定し、その参照回数が第1の閾値以上か否かを判定する。
図7を参照すると、メッセージ「XX Error」が対応づけられた「ログ名」、すなわち、メッセージ「XX Error」の原因調査のために過去に参照されたローテーションログファイル131は、Aログ及びBログ、すなわち、ローテーションログファイル131A、131Bの2つであることが分かる。そのうち、参照回数が第1の閾値以上であるのは、Aログ及びBログ、すなわち、ローテーションログファイル131A及び131Bである。この場合、プロセッサ101は、1つめの条件を満たすのはローテーションログファイル131A及び131Bであると判定する。
2つめの条件を満たすか否かは、次のようにして判定される。
プロセッサ101は、ログファイル制御プログラム110cを実行することで、ローテーションログファイル131に対する調査対象情報の出力速度であるログ出力速度を測定する。また、プロセッサ101は、ログファイル制御プログラム110cを実行することで、測定したログ出力速度、単位ログファイルの数及びそのファイルサイズに基づき、最新単位ログファイルが上書きされるまでの上書き予測日数を算出する。さらに、プロセッサ101は、ログファイル制御プログラム110cを実行することで、算出した上書き予測日数と想定採取日数136とを比較する。そこで、比較の結果、例えば、算出した上書き予測日数が想定採取日数136より短い場合、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた最新単位ログファイルが、採取予定日までに新しい単位ログファイルで上書きされる。プロセッサ101は、上書きされる最新単位ログファイルを退避対象単位ログファイルと判定する。ログ出力速度の測定の仕方、上書き予測日数の算出の仕方は、後述する。
以下、想定採取日数136として7日が設定されており、ローテーションログファイル131Aの上書き予測日数が14日、ローテーションログファイル131Bの上書き予測日数が2日、ローテーションログファイル131Cの上書き予測日数が20日、ローテーションログファイル131Dの上書き予測日数が14日と算出されたものとして説明を行う。また、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた最新単位ログファイルが、単位ログファイルA3、B3、C3、D3であるものとして説明を行う。
この場合、上書き予測日数が想定採取日数136より小さいのはローテーションログファイル131Bのみであり、単位ログファイルB3が、採取予定日までに新しい単位ログファイルで上書きされることが分かる。
この場合、プロセッサ101は、2つめの条件を満たすのは採取予定日までに新しい単位ログファイルで上書きされる単位ログファイルB3を含むローテーションログファイル131Bのみであると判定する。
以上のように、上記2つの条件を満たすのはローテーションログファイル131Bのみであるため、この例では、プロセッサ101は、ローテーションログファイル131Bが退避対象ローテーションログファイルであると判定する。
ここで、ログ参照頻度テーブル234を参照すると、Bログ、すなわち、ローテーションログファイル131Bに対応付けられた「参照世代数」に「1」が設定されている。これは、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた単位ログファイルB3に加えて、その1世代前の単位ログファイルB2も退避対象単位ログファイルとなることを表す。なお、「参照世代数」に「2」が設定されている場合、単位ログファイルB3に加えて、その2世代前の単位ログファイルB2、B1も退避対象単位ログファイルとなることを表す。また、ローテーションログファイル131Bに対応付けられた「参照世代数」に「0」が設定されている場合、単位ログファイルB3のみが退避対象単位ログファイルとなることを表す。なお、ストレージ104に固定値N(Nは、0以上の整数)を記憶しておき、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた単位ログファイルB3に加えて、そのN世代前の単位ログファイルも退避対象単位ログファイルとなるようにしてもよい。
以下、退避対象単位ログファイルが単位ログファイルB3、B2であるものとして説明を行う。
図8(b)に示すように、退避対象単位ログファイルB2、B3は、リネームすることで退避される。以下、リネーム後の退避対象単位ログファイルのことを、退避ログファイルB2´、B3´と呼ぶ。
ここで、例えば、退避対象単位ログファイルB2、B3をリネームすると、リネーム前の退避対象単位ログファイルB2、B3はローテーションログファイル131Bとの関連づけが削除された状態となる。図8(b)中の点線の四角Sは、この状態を表す。しかし、想定以上の調査対象情報がローテーション方式で書き込まれるため、採取予定日までの間に単位ログファイルB2、B3が新たに作成される。その結果、リネーム後の退避ログファイルB2´、B3´(ファイルサイズ)は、ストレージ104の容量の設計の際に考慮されていない余分なファイル(ファイルサイズ)となる。この余分なファイルを考慮してストレージ104の容量を設計することも考えられるが、このようにすると、ストレージ104の容量を大容量にしなければならないという問題がある。
そこで、本実施形態では、ストレージ104の容量を大容量にすることなく、採取予定日までの間、リネーム対象の退避対象単位ログファイルB2、B3のファイルサイズの合計以上の空き容量をストレージ104に確保するために、プロセッサ101は、以下の処理(図6に示すS22、S24)を実行する。
まず、プロセッサ101は、複数のローテーションログファイル131A〜131Dのうち、次の2つの条件を満たすローテーションログファイル(以下、削除対象ローテーションログファイルと呼ぶ)を判定する削除対象ローテーションログファイル判定処理を実行する(S22)。
1つめの条件は、S13−1で検知されたメッセージ(トラブル事象)の原因調査のために過去に参照された参照回数が第2の閾値以下のローテーションログファイルである。
2つめの条件は、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれており、かつ、調査対象情報がローテーション方式で書き込まれることによって採取予定日までに新しい単位ログファイルで上書きされない単位ログファイルを含むローテーションログファイルである。
次に、図8を参照しながら、上記2つの条件を満たすローテーションログファイル、すなわち、削除対象ローテーションログファイルを判定する具体例を説明する。
1つめの条件を満たすか否かは、次のようにして判定される。
以下、S13−1でメッセージ「XX Error」が検知され、第2の閾値として8と52の間の数(例えば、10)が設定され、図8に示すローテーションログファイル131A〜131D及び図7に示すログ参照頻度テーブル234がストレージ104に記憶されているものとして説明を行う。
プロセッサ101は、ログファイル制御プログラム110cを実行することで、ログ参照頻度テーブル234を参照し、S13−1で検知されたメッセージ「XX Error」が対応づけられたローテーションログファイル131以外のローテーションログファイル131を判定し、その参照回数が第2の閾値以下か否かを判定する。
図7を参照すると、メッセージ「XX Error」が対応づけられたローテーションログファイル131(Aログ、Bログ)以外のローテーションログファイル131は、Cログ及びDログ、すなわち、ローテーションログファイル131C、131Dの2つであることが分かる。そのうち、参照回数が第2の閾値以下であるのは、Cログ及びDログ、すなわち、ローテーションログファイル131C、131Dの2つである。
この場合、プロセッサ101は、1つめの条件を満たすのはローテーションログファイル131C、131Dの2つであると判定する。
2つめの条件を満たすか否かは、次のようにして判定される。
プロセッサ101は、ログファイル制御プログラム110cを実行することで、ローテーションログファイル131に対する調査対象情報の出力速度であるログ出力速度を測定し、測定したログ出力速度、単位ログファイルの数及びそのファイルサイズに基づき、上書き予測日数を算出し、さらに、算出した上書き予測日数と想定採取日数136とを比較する。そして、比較の結果、例えば、算出した上書き予測日数が想定採取日数136より長い場合、プロセッサ101は、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた単位ログファイルが、採取予定日までに新しい単位ログファイルで上書きされないと判定する。
以下、想定採取日数136として7日が設定されており、ローテーションログファイル131Aの上書き予測日数が14日、ローテーションログファイル131Bの上書き予測日数が2日、ローテーションログファイル131Cの上書き予測日数が20日、ローテーションログファイル131Dの上書き予測日数が14日と算出されたものとして説明を行う。また、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた最新単位ログファイルが、単位ログファイルA3、B3、C3、D3であるものとして説明を行う。
この場合、上書き予測日数が想定採取日数136より長いのはAログ、Cログ、Dログ、すなわち、ローテーションログファイル131A、131C、131Dであり、最新単位ログファイルA3、C3、D3が、採取予定日までに新しい単位ログファイルで上書きされないことが分かる。
この場合、プロセッサ101は、2つめの条件を満たすのはローテーションログファイル131A、131C、131Dであると判定する。
以上のように、ローテーションログファイル131Aは1つめの条件を満たさず、上記2つの条件を満たすのはローテーションログファイル131C、131Dであるため、この例では、プロセッサ101は、ローテーションログファイル131C、131Dが削除対象ローテーションログファイルであると判定する。
次に、プロセッサ101は、ログファイル制御プログラム110cを実行することで、リネーム対象の退避対象単位ログファイルB2、B3のファイルサイズの合計以上の空き容量をストレージ104に確保するために、削除対象ローテーションログファイル131C、131Dが持つ余裕サイズを算出する。
図8(c)及び図8(d)を参照しながら、余裕サイズについて説明する。
例えば、図8(c)に示す削除対象ローテーションログファイルCにおいては、複数の単位ログファイルC1〜C6のうち、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた単位ログファイルC3以外の単位ログファイルC1〜C2、C4〜C6を削除したとする。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルC4、C5、C6、C1が新たに作成される。一方、一部の単位ログファイルC1(右半分)、C2には、採取予定日まで調査対象情報が書き込まれない。図8(c)中の縦の点線Lは、採取予定日までに、その点線位置まで調査対象情報が書き込まれることを表す。この採取予定日まで調査対象情報が書き込まれない単位ログファイルC1(右半分)、C2のサイズが余裕サイズである。
同様に、図8(d)に示す削除対象ローテーションログファイルDにおいては、複数の単位ログファイルD1〜D5のうち、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた単位ログファイルD3以外の単位ログファイルD1〜D2、D4〜C5を削除したとする。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルD4、D5、D1、D2が新たに作成される。一方、一部の単位ログファイルD2(右半分)には、採取予定日まで調査対象情報が書き込まれない。図8(d)中の縦の点線Lは、採取予定日までに、その点線位置まで調査対象情報が書き込まれることを表す。この採取予定日まで調査対象情報が書き込まれない単位ログファイルD2(右半分)のサイズが余裕サイズである。
余裕サイズ(合計)は、採取予定日におけるストレージ104の空き容量を表す。なお、余裕サイズの算出方法の詳細は、後述する。
次に、プロセッサ101は、ログファイル制御プログラム110cを実行することで、上記のように算出された余裕サイズの合計(つまり、採取予定日におけるストレージ104の空き容量)が退避対象単位ログファイルB2、B3のファイルサイズの合計以上か否かを判定する。
プロセッサ101は、合計以上の場合、つまり、採取予定日までの間、リネーム対象の退避対象単位ログファイルB2、B3のファイルサイズの合計以上の空き容量がストレージ104に確保される場合、削除対象ローテーションログファイルを構成する複数の単位ログファイルのうち、少なくとも一部(退避対象単位ログファイルB2、B3分の単位ログファイル)を削除する単位ログファイル削除処理を実行する(S24)。
例えば、プロセッサ101は、削除対象ローテーションログファイルCを構成する複数の単位ログファイルC1〜C6のうち、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた最新単位ログファイルC3以外の単位ログファイルC1〜C2、C4〜C6を削除する処理を行う。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルC4、C5、C6、C1が新たに作成されるが、単位ログファイルC1(右半分)、C2は、調査対象情報が書き込まれない余裕サイズ(つまり、採取予定日におけるストレージ104の空き容量を表す)となる。
同様に、削除対象ローテーションログファイルDを構成する複数の単位ログファイルD1〜D5のうち、S13−1で検知されたメッセージ(トラブル事象)発生時の調査対象情報が書き込まれた最新単位ログファイルD3以外の単位ログファイルD1〜D2、D4〜C5を削除する。この場合、調査対象情報がローテーション方式で書き込まれることによって採取予定日までの間に単位ログファイルD4、D5、D1、D2が新たに作成されるが、単位ログファイルD2(右半分)は、調査対象情報が書き込まれない余裕サイズ(つまり、採取予定日におけるストレージ104の空き容量を表す)となる。
以上のように、削除対象単位ログファイルB2、B3分の単位ログファイルを削除(関連づけを削除)して解放する。これにより、ストレージ104の容量を大容量にすることなく、採取予定日までの間、リネーム対象の退避対象単位ログファイルB2、B3のファイルサイズの合計以上の空き容量をストレージ104に確保することができる。
最新単位ログファイルC3、D3と、次回採取予定日に書き込まれる単位ログファイルC1、D1の間の単位ログファイルC2、D2のうち、退避対象単位ログファイルB2、B3のファイルサイズの合計分の単位ログファイルのみを削除してもよい。
この単位ログファイルC2、D2には、次の採取予定日まで削除され上書きされることはないので、退避対象ローテーションログファイル131Bの退避対象単位ログファイルB2、B3の作成のために使用してもよいからである。また、C4〜C6、C1は、削除されずに、別のトラブル事象発生に伴い、調査対象ログとして利用可能になる。
次に、プロセッサ101は、退避対象単位ログファイルB2、B3を退避対象ローテーションログファイルから他の名前にリネームする。つまり、退避対象ローテーションログファイルとの関連づけを削除して、他の名前のファイルとの関連づけに変更するリネームを行う退避対象単位ログファイル退避処理を実行する(S26)。リネームは、例えば、リネーム前のファイル名を一定の規則で変更することで行ってもよいし、リネーム前のファイル名に一定の規則で文字列等を付加することで行ってもよいし、その他の手法で行ってもよい。
このように、退避対象単位ログファイルB2、B3の退避をリネームすることで行うため、退避対象単位ログファイルB2、B3の退避をコピーすることで行う場合と比べ、I/O負荷が高くなるのを防止することができる。
リネーム後、退避対象ローテーションログファイルが、解放された単位ファイルと関連づけて、リネームした単位ログファイルを穴埋めして、ローテーションログファイルの新しい単位ログファイルとして作成する。この時、サイズとしては、削除対象ローテーションログファイルの削除された単位ログファイルのサイズが利用される。
次に、図5に戻り、採取予定日が到来すると(S14:YES)、ログ採取端末11は、業務システム1にアクセスし、ログ(例えば、リネーム後の単位ログファイルB2、B3。つまり、退避ログファイルB2´、B3´)を採取する(S16)。採取は、自動で又は後述のように運用管理者による操作をトリガにして行われる。調査者は、採取されたログに基づき、発生したトラブル事象の原因を調査する。
以上のように、本実施形態によれば、ログ出力先ファイルが循環的に切り替えられる(ローテーションされる)ことに起因して、調査に必要なログが記録されたファイル(例えば、リネーム後の単位ログファイルB2、B3。つまり、退避ログファイルB2´、B3´)が消去されるのを防止することができる。
また、本実施形態によれば、業務システム1の環境や運用状況によって(例えば、トラブル事象に誘発されて)調査対象情報の出力量が想定以上となったとしても、調査に必要な単位ログファイル(リネーム後の単位ログファイル。つまり、退避ログファイルB2´、B3´)を、採取予定日に採取することができる。
[第1の実施の形態の詳細]
図9は、業務システム1の詳細構成を示す図である。図9に示すように、業務システム1は、プロセッサ101と、主記憶装置であるメインメモリ102と、NIC(Network Interface Card)103と、バス105と、補助記憶装置であるストレージ104(例えば、ハードディスク装置)と、を有する。ストレージ104内には、OS(Operating System)110a、OS110a上で実行されるプログラム、例えば、業務用アプリケーションプログラム110b、ログファイル制御プログラム110c、メッセージ監視プログラム110d、採取監視プログラム110e、調査対象情報をローテーションログファイル131に書き込むローテーションログミドルウエア110f、監視対象情報を監視ログファイル132に書き込む監視ログミドルウエア110gが記憶されている。これらのプログラムは、メモリ102に展開されプロセッサ101により実行される。以下、ローテーションログミドルウエア110fが業務用アプリケーションプログラム110bに含まれ、監視ログミドルウエア110gがOS110aに含まれているものとして説明する。
また、ストレージ104内には、ローテーションログファイル131、監視ログファイル132、ログ参照頻度テーブル234、退避候補ログ状態テーブル134、削除候補ログ状態テーブル135、想定採取日数136、動作設定情報137が記憶されている。
[メッセージ監視プログラム110d]
図10は、メッセージ監視プログラム110dの詳細処理のフローチャートである。
以下の処理は、プロセッサ101が、メッセージ監視プログラム110dを実行することで行う。
プロセッサ101は、監視ログファイル132を参照してメッセージ(トラブル事象)を検知したか否かを判定する(S30)。その結果、メッセージを検知した場合(S30:YES)、プロセッサ101は、ログ参照頻度テーブル234を参照して、検知したメッセージが設定されているか否かを判定する(S32)。
プロセッサ101は、検知したメッセージ(例えば、XX Error)が設定されていると判定した場合(S32:YES)、ログファイル制御プログラム110cを実行することで、退避・削除処理(図5に示すS13−2及び図6参照)を実行する。
次に、プロセッサ101は、停止指示を受信したか否かを判定する(S34)。
その結果、受信したと判定した場合(S34:YES)、プロセッサ101は、処理を終了する。停止指示は、例えば、業務システム1に対する修正適用等のために業務システム1を停止する必要がある場合、システム管理者がログ採取端末11等から入力する。一方、受信しないと判定した場合(S34:NO)、プロセッサ101は、S30〜S34の処理を繰り返し実行する。
[S20の詳細処理]
図11は、図6に示すS20の詳細処理のフローチャートである。図12は、ログ参照頻度テーブル234(一部抽出)の例である。図13は、退避候補ログ状態テーブル134の例である。以下の処理は、プロセッサ101が、ログファイル制御プログラム110cを実行することで行う。
以下、S30でメッセージ(XX Error)が検知され、S30でメッセージ(XX Error)が検知された時(トラブル事象発生時)の調査対象情報が書き込まれた最新単位ログファイルが図8に示す単位ログファイルA3、B3、C3、D3であるものとして説明を行う。
まず、プロセッサ101は、図7に示すログ参照頻度テーブル234を参照して、S30で検知したメッセージ(XX Error)が設定されている行(ここでは、項番1、2の2行)を抽出する(S40)。次に、プロセッサ101は、抽出した行を参照回数の多い順にソートする(S41)。次に、プロセッサ101は、ソートした行から参照回数が第1閾値以上の行を抽出する(S42)。ここでは、図12(a)に示す2行が抽出されたものとする。ここでは、説明を分かりやすくするために、1から始まるように項番をふり直すものとする。
次に、プロセッサ101は、S42で抽出した行(項番)を示すN1に1を設定する(S43)。
次に、プロセッサ101は、S42で抽出した行(項番)を参照して、項番N1(ここでは、N1=1)の行が存在するか否かを判定する(S44)。ここでは、図12(a)に示すように、項番N1(ここでは、N1=1)の行が存在するため、プロセッサ101は、項番N1の行が存在すると判定する(S44:YES)。
次に、プロセッサ101は、項番N1(ここでは、N1=1)の行から、「ログ名」(ここでは、Aログ)を抽出する(S45)。
次に、プロセッサ101は、S45で抽出した「ログ名」(ここでは、Aログ)に対する調査対象情報の出力速度であるログ出力速度を測定し、最新単位ログファイルA3が上書きされるまでの上書き予測日数を算出する(S46)。
[ログ出力速度の測定方法]
以下、一例として、Aログ、すなわち、ローテーションログファイル131Aに対するログ出力速度の測定方法を説明する。
ローテーションログファイル131Aに対するログ出力速度Vup(更新速度)は、次の式1で算出することができる。
Vup=Sn/(Dn-Dp) ・・・(式1)
但し、Snは、最新単位ログファイルA3のファイルサイズである。Dnは、最新単位ログファイルA3の更新日時である。Dpは、最新単位ログファイルA3の一つ前の単位ログファイルA2の更新日時である。なお、日数を問題とするため、単位はByte/dayに調整する。
また、ログ出力速度Vup(更新速度)は、次の式2で算出することもできる。
Vup=(S2-S1)/Time ・・・(式2)
但し、S1は、最初に測定した最新単位ログファイルA2のファイルサイズである。S2は、時間Time後に測定した最新単位ログファイルA3のファイルサイズである。なお、日数を問題とするため、単位はByte/dayに調整する。
[上書き予測日数の算出方法]
以下、一例として、Aログ、すなわち、ローテーションログファイル131Aの最新単位ログファイルA3が上書きされるまでの上書き予測日数の算出方法を説明する。
まず、ローテーションログファイル131Aを構成する1つの単位ログファイルに書き込まれる調査対象情報(ログ)が一定サイズ(上限)に達するまで何日かかるかを、次の式3で計算する。
D1=Smax/Vup ・・・(式3)
但し、Smaxは、ローテーションログファイル131Aを構成する単位ログファイルの最大サイズである。Smaxは、ローテーションログファイル設計時に決定されて予めストレージ104に記憶されている。
次に、上書き予測日数を、次の式4で計算する。
Dnup=(Gmax-X)*D1+(Smax-Sn)/Vup ・・・(式4)
但し、Gmaxは、予め定められた世代数である。この例では、ローテーションログファイル131Aは4つの単位ログファイルA1〜A4を有するため、Gmaxは4である。Xは、退避対象ファイルの数である。この例では、ローテーションログファイル131A、すなわち、ログ名(Aログ)が対応づけられた図7に示すログ参照頻度テーブル234中の「参照世代数」が「2」であるため、Xは2である。なお、これに限らず、Xはストレージ104に記憶された固定値を用いてもよい。
D1は、Smax/Vupである。Smaxは、ローテーションログファイル131Aを構成する単位ログファイルA1〜A4の最大サイズである。Snは、最新単位ログファイルA3のファイルサイズである。Vupは、上記式1又は式2で算出したローテーションログファイル131Aに対するログ出力速度である。
次に、プロセッサ101は、算出した上書き予測日数、退避サイズ等を退避候補ログ状態テーブル134に設定する(S47)。
図13は、退避候補ログ状態テーブル134を説明する図である。図13に示す退避候補ログ状態テーブル134は、「ログ名」と、「上書き予測日数」と、「退避サイズ」と、「候補フラグ」と、「合計」と、を項目として有する。
「ログ名」には、S45で抽出したログ名が設定される。「上書き予測日数」には、S46で算出した上書き予測日数が設定される。「退避サイズ」には、S30でメッセージが検知された時(トラブル事象発生時)の調査対象情報が書き込まれた最新単位ログファイルのファイルサイズと、S45で抽出したログ名が対応づけられた図7に示すログ参照頻度テーブル234中の「参照世代数」分の単位ログファイルのファイルサイズと、の合計ファイルサイズが設定される。「候補フラグ」には、「ログ名」が退避対象ローテーションログファイルであることを示す「1」又は「ログ名」が退避対象ローテーションログファイルでないことを示す「0」が設定される。「合計」には、「候補フラグ」に「1」が設定されている「退避サイズ」の合計が設定される。
具体的には、プロセッサ101は、図13(a)に示すように、退避候補ログ状態テーブル134の「ログ名」にS45で抽出したログ名(ここでは、Aログ)を設定する。また、プロセッサ101は、「上書き予測日数」にS46で算出した上書き予測日数(ここでは、14日)を設定する。また、プロセッサ101は、「退避サイズ」にS30でメッセージが検知された時(トラブル事象発生時)の調査対象情報が書き込まれた最新単位ログファイル(ここでは最新単位ログファイルA3)のファイルサイズと、S45で抽出したログ名(ここではAログ)が対応づけられた図7に示すログ参照頻度テーブル234中の「参照世代数」(ここでは2)分の単位ログファイル(ここでは単位ログファイルA2、A1)のファイルサイズと、の合計ファイルサイズ(ここでは10MB)を設定する。そして、プロセッサ101は、「候補フラグ」に「0」を設定する。
なお、退避サイズは、ローテーションログファイル131を構成する各々の単位ログファイルの最大サイズと退避ファイル数とを乗算することで求めることができる。
次に、プロセッサ101は、N1に1を加算する(S48)。
次に、S44に戻り、プロセッサ101は、S42で抽出した行(項番)を参照して、項番N1(ここでは、N1=2)の行が存在するか否かを判定する(S44)。ここでは、図12(a)に示すように、項番N1(ここでは、N1=2)の行が存在するため、プロセッサ101は、項番N1の行が存在すると判定する(S44:YES)。
次に、プロセッサ101は、項番N1(ここでは、N1=2)の行から、「ログ名」(ここでは、Bログ)を抽出する(S45)。
次に、プロセッサ101は、S45で抽出した「ログ名」(ここでは、Bログ)に対する調査対象情報の出力速度であるログ出力速度を上記式1又は式2で測定し、最新単位ログファイル(ここでは、単位ログファイルB3)が上書きされるまでの上書き予測日数を上記式4で算出する(S46)。
次に、プロセッサ101は、算出した上書き予測日数、退避サイズ等を退避候補ログ状態テーブル134に設定する(S47)。
具体的には、プロセッサ101は、図13(b)に示すように、退避候補ログ状態テーブル134の「ログ名」にS45で抽出したログ名(ここでは、Bログ)を設定する。また、プロセッサ101は、「上書き予測日数」にS46で算出した上書き予測日数(ここでは、2日)を設定する。また、プロセッサ101は、「退避サイズ」にS30でメッセージが検知された時(トラブル事象発生時)の調査対象情報が書き込まれた最新単位ログファイル(ここでは最新単位ログファイルB3)のファイルサイズと、S45で抽出したログ名(ここではBログ)が対応づけられた図7に示すログ参照頻度テーブル234中の「参照世代数」(ここでは1)分の単位ログファイル(ここでは単位ログファイルB2)のファイルサイズと、の合計ファイルサイズ(ここでは20MB)を設定する。そして、プロセッサ101は、「候補フラグ」に「0」を設定する。
次に、プロセッサ101は、N1に1を加算する(S48)。
次に、S44に戻り、プロセッサ101は、S42で抽出した行(項番)を参照して、項番N1(ここでは、N1=3)の行が存在するか否かを判定する(S44)。ここでは、図12(a)に示すように、項番N1(ここでは、N1=3)の行が存在しないため、プロセッサ101は、項番N1の行が存在しないと判定し(S44:NO)、S49の処理を実行する。
すなわち、プロセッサ101は、図13(c)に示すように、退避候補ログ状態テーブル134中の「上書き予測日数」が、想定採取日数136(例えば、7日)より短い「ログ名」(ここでは、Bログ)を判定する。
そして、プロセッサ101は、想定採取日数136(例えば、7日)より短いと判定した「ログ名」(ここではBログ)の「候補フラグ」に、その「ログ名」(ここではBログ)が退避対象ローテーションログファイルであることを示す「1」を設定する(S49)。この場合、「候補フラグ」に「1」が設定されたログ名(ここではBログ)の最新単位ログファイルB3及びそのログ名(ここではBログ)が対応づけられたログ参照頻度テーブル234中の「参照世代数」(ここでは1)分の単位ログファイルB2が、退避対象単位ログファイルであることを表す。
次に、プロセッサ101は、「候補フラグ」に「1」が設定されている「退避サイズ」の合計を算出して、図13(c)に示すように、退避候補ログ状態テーブル134の「合計」に設定する(S50)。
なお、例えば、S50において、退避候補ログ状態テーブル134に「1」が設定された「候補フラグ」が存在しない場合、退避・削除処理(S13−2)を終了してもよい。
[S22の詳細処理]
図14は、図6に示すS22の詳細処理のフローチャートである。図15は、削除候補ログ状態テーブル135の例である。以下の処理は、プロセッサ101が、ログファイル制御プログラム110cを実行することで行う。
まず、プロセッサ101は、削除候補ログ状態テーブル135の「合計サイズ」に「0」を設定する(S60)。
次に、プロセッサ101は、図7に示すログ参照頻度テーブル234を参照して、S30で検知した「メッセージ」(XX Error)が設定されている行(ここでは、項番1、2の2行)以外の行(ここでは、項番3、4の2行)を抽出する(S61)。次に、プロセッサ101は、抽出した行を参照回数の少ない順にソートする(S62)。次に、プロセッサ101は、ソートした行から参照回数が第2閾値以下の行を抽出する(S63)。ここでは、図12(b)に示す2行が抽出されたものとする。ここでは、説明を分かりやすくするために、1から始まるように項番をふり直すものとする。
次に、プロセッサ101は、S63で抽出した行(項番)を示すN2に1を設定する(S64)。
次に、プロセッサ101は、S63で抽出した行(項番)を参照して、項番N2(ここでは、N2=1)の行が存在するか否かを判定する(S65)。ここでは、図12(b)に示すように、項番N2(ここでは、N2=1)の行が存在するため、プロセッサ101は、項番N2の行が存在すると判定する(S65:YES)。
次に、プロセッサ101は、項番N2(ここでは、N2=1)の行から、「ログ名」(ここでは、Dログ)を抽出する(S66)。
次に、プロセッサ101は、S66で抽出した「ログ名」(ここでは、Dログ)に対する調査対象情報の出力速度であるログ出力速度を上記式1又は式2で測定し、最新単位ログファイル(ここでは、単位ログファイルD3)が上書きされるまでの上書き予測日数を上記式4で算出する(S67)。
次に、プロセッサ101は、算出した上書き予測日数等を削除候補ログ状態テーブル135に設定する(S68)。
図15は、削除候補ログ状態テーブル135を説明する図である。図15に示す削除候補ログ状態テーブル135は、「ログ名」と、「上書き予測日数」と、「余裕サイズ」と、「候補フラグ」と、「合計」と、を項目として有する。
「ログ名」には、S66で抽出したログ名が設定される。「上書き予測日数」には、S67で算出した上書き予測日数が設定される。「余裕サイズ」には、S71で算出した余裕サイズが設定される。「候補フラグ」には、「ログ名」が削除対象ローテーションログファイルであることを示す「1」又は「ログ名」が削除対象ローテーションログファイルでないことを示す「0」が設定される。「合計」には、「余裕サイズ」の合計が設定される。
具体的には、プロセッサ101は、図15(a)に示すように、削除候補ログ状態テーブル135の「ログ名」にS66で抽出したログ名(ここでは、Dログ)を設定する。また、プロセッサ101は、「上書き予測日数」にS67で算出した上書き予測日数(ここでは、14日)を設定する。また、プロセッサ101は、「余裕サイズ」に「0」を設定する。そして、プロセッサ101は、「候補フラグ」に「0」を設定する。
次に、プロセッサ101は、N2に1を加算する(S69)。
次に、S65に戻り、プロセッサ101は、S63で抽出した行(項番)を参照して、項番N2(ここでは、N2=2)の行が存在するか否かを判定する(S65)。ここでは、図12(b)に示すように、項番N2(ここでは、N2=2)の行が存在するため、プロセッサ101は、項番N2の行が存在すると判定する(S65:YES)。
次に、プロセッサ101は、項番N2(ここでは、N2=2)の行から、「ログ名」(ここでは、Cログ)を抽出する(S66)。
次に、プロセッサ101は、S66で抽出した「ログ名」(ここでは、Cログ)に対する調査対象情報の出力速度であるログ出力速度を上記式1又は式2で測定し、最新単位ログファイル(ここでは、単位ログファイルC3)が上書きされるまでの上書き予測日数を上記式4で算出する(S67)。
次に、プロセッサ101は、算出した上書き予測日数等を削除候補ログ状態テーブル135に設定する(S68)。
具体的には、プロセッサ101は、図15(b)に示すように、削除候補ログ状態テーブル135の「ログ名」にS66で抽出したログ名(ここでは、Cログ)を設定する。また、プロセッサ101は、「上書き予測日数」にS67で算出した上書き予測日数(ここでは、20日)を設定する。また、プロセッサ101は、「余裕サイズ」に「0」を設定する。そして、プロセッサ101は、「候補フラグ」に「0」を設定する。
次に、プロセッサ101は、N2に1を加算する(S69)。
次に、S65に戻り、プロセッサ101は、S63で抽出した行(項番)を参照して、項番N2(ここでは、N2=3)の行が存在するか否かを判定する(S65)。ここでは、図12(b)に示すように、項番N2(ここでは、N2=3)の行が存在しないため、プロセッサ101は、項番N2の行が存在しないと判定し(S65:NO)、S70の処理を実行する。
すなわち、プロセッサ101は、図15(c)に示すように、削除候補ログ状態テーブル135中の「上書き予測日数」が、想定採取日数136(例えば、7日)より長い「ログ名」(ここでは、Dログ、Cログ)を判定する。
そして、プロセッサ101は、想定採取日数136(例えば、7日)より長いと判定した「ログ名」(ここではCログ、Dログ)の「候補フラグ」に、その「ログ名」(ここではCログ、Dログ)が削除対象ローテーションログファイルであることを示す「1」を設定する(S70)。
次に、プロセッサ101は、「候補フラグ」が「1」の「ログ名」(ここでは、Dログ、Cログ)の余裕サイズを算出し、図15(c)に示すように、算出した余裕サイズを、削除候補ログ状態テーブル135の「余裕サイズ」に設定し、その余裕サイズの合計を算出して「合計」に加算する(S71)。
[余裕サイズの算出手法]
以下、一例として、Cログ、すなわち、ローテーションログファイル131Cの余裕サイズの算出方法を説明する。
まず、最新単位ログファイルC3の上書きまでの日数猶予Dtを、次の式5で計算する。
Dt = Dnup-Do ・・・(式5)
但し、Dnupはローテーションログファイル131Cの最新単位ログファイルC3が上書きされるまでの上書き予測日数で、上記式4で算出できる。なお、上記式4のXには、削除時に残すファイル数を設定する。図8(C)の例では、Xは1である。Doは想定採取日数136である。
次に、余裕サイズStを、次の式6で計算する。
St = Vup*Dt ・・・(式6)
但し、Vupは上記式1又は式2で算出したローテーションログファイル131Cに対するログ出力速度である。
以上のようにしてローテーションログファイル131Cの余裕サイズを算出することができる。同様に、ローテーションログファイル131Dの余裕サイズも算出することができる。
[S24の詳細処理]
図16は、図6に示すS24の詳細処理のフローチャートである。以下の処理は、プロセッサ101が、ログファイル制御プログラム110cを実行することで行う。
まず、プロセッサ101は、削除候補ログ状態テーブル135の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル134の「退避サイズ」の合計以上か否かを判定する(S80)。
その結果、削除候補ログ状態テーブル135の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル134の「退避サイズ」の合計以上の場合(S80:YES)、プロセッサ101は、S70で判定された削除対象ローテーションログファイル131C、131Dを構成する複数の単位ログファイルのうち、少なくとも一部を削除する(S81)。例えば、プロセッサ101は、削除対象ローテーションログファイルC、Dを構成する複数の単位ログファイルC1〜C6、D1〜D5のうち、最新単位ログファイルC3、D3以外の単位ログファイルC1〜C2、C4〜C6、D1〜D2、D4〜C5を削除する。
一方、削除候補ログ状態テーブル135の「余裕サイズ」の「合計」が、退避候補ログ状態テーブル134の「退避サイズ」の合計以上でない場合(S80:NO)、プロセッサ101は、動作設定情報137を参照して(S82)、動作設定情報137に設定された動作を行う。
図17は、動作設定情報の一例である。動作設定情報137は、例えば、configファイル等の形式でストレージ104に記憶されている。
動作設定情報137には、「可能な範囲で削除して退避:deletesave」、「削除せず退避のみ:saveonly」、「削除も退避も実施せず:none」のいずれかを設定することができる。図17に示す動作設定情報137は、「削除せず退避のみ:saveonly」が設定されていることを表す。
図16に戻り、動作設定情報137を参照した結果、動作設定情報137に「可能な範囲で削除を実施して退避」が設定されている場合(S83:YES)、プロセッサ101は、採取監視プログラム110eに対して削除が不十分であることを通知する(S84)。そして、プロセッサ101は、削除候補がある場合(S85:NO)、すなわち、削除候補ログ状態テーブル135を参照して、「候補フラグ」に「1」が設定された「ログ名」が存在する場合、「候補フラグ」に「1」が設定された「ログ名」のローテーションログファイルを削除する(S81)。一方、プロセッサ101は、削除候補がない場合(S85:YES)、すなわち、「候補フラグ」に「1」が設定された「ログ名」が存在しない場合、処理を終了する。
一方、S82で動作設定情報137を参照した結果、動作設定情報137に「削除せずに退避のみ実施」が設定されている場合(S83:NO、S86:YES)、プロセッサ101は、採取監視プログラム110eに対して削除を実施しなかったことを通知する(S87)。
一方、S82で動作設定情報137を参照した結果、動作設定情報137に「削除も退避も実施せず」が設定されている場合(S83:NO、S86:NO)、プロセッサ101は、退避候補ログ状態テーブル134に設定されている退避候補の内容を削除する(S88)。そして、プロセッサ101は、採取監視プログラム110eに対して削除も退避も実施しなかったことを通知する(S89)。
[S26の詳細処理]
図18は、図6に示すS26の詳細処理のフローチャートである。以下の処理は、プロセッサ101が、ログファイル制御プログラム110cを実行することで行う。
まず、プロセッサ101は、退避候補(退避対象ローテーションログファイル131)が存在するか否かを判定する(S90)。具体的には、プロセッサ101は、退避候補ログ状態テーブル134を参照して、「候補フラグ」に「1」が設定されている「ログ名」が存在するか否かを判定する。
ここでは、図13(c)に示す退避候補ログ状態テーブル134を参照すると、退避候補ログ状態テーブル134の「候補フラグ」に「1」が設定されており、退避候補(退避対象ローテーションログファイル131B)が存在するため(S90:YES)、プロセッサ101は、退避候補(退避対象ローテーションログファイル131B)の退避対象単位ログファイルB3、B2に調査対象情報(ログ)を出力中か否かを判定する(S91)。
プロセッサ101は、退避候補(退避対象ローテーションログファイル131B)の退避対象単位ログファイルB3、B2へのログ出力が終了するまで待機する(S91:YES)。
そして、退避候補(退避対象ローテーションログファイル131B)の退避対象単位ログファイルB3、B2へのログ出力が終了した場合(S91:NO)、プロセッサ101は、退避候補(退避対象ローテーションログファイル131B)の退避対象単位ログファイルB3、B2を退避する(S92)。具体的には、プロセッサ101は、退避対象単位ログファイルB3、B2を退避対象ローテーションログファイルから別の名前にリネームすることで退避する。
次に、プロセッサ101は、採取監視プログラム110eに対して退避したファイル名を通知する(S93)。
[採取監視プログラム]
図19は、採取監視プログラム110eの詳細処理のフローチャートである。以下の処理は、プロセッサ101が、採取監視プログラム110eを実行することで行う。
プロセッサ101は、ログファイル制御プログラム110cからの通知(S84、S87、S89)又はログ採取端末11からの通知を受信するまで待機し(S100:NO)、通知を受信すると(S100;YES)、受信した通知に応じた処理を実行する。
具体的には、S100で受信した通知がログファイル制御プログラム110cからの通知の場合(S101:YES)、プロセッサ101は、ログ採取端末11にアクセスして、受信した通知をログ採取端末11のディスプレイ(図示せず)に表示する(S106)。
そして、ログが採取済みの場合(S107:YES)、ステップ100に戻って通知を受信するまで待機する(S100:NO)。
一方、ログが採取済みでない場合(S107:NO)、プロセッサ101は、ログ採取端末11にアクセスしてログ採取を促すメッセージを、ログ採取端末11のディスプレイ(図示せず)に表示する。これとともに、同じ内容のメールを所定メールアドレス宛に送付する(S108)。その後、ステップ100に戻って通知を受信するまで待機する(S100:NO)。
ログ採取端末11に表示されたログ採取を促すメッセージ又は所定メールアドレス宛に送付されたメール内容を確認したシステム管理者等が、ログ採取端末11からログ採取依頼を入力し、採取監視プログラム110eがそのログ採取依頼を受信した場合(S100:YES、S101:NO、S102:YES)、プロセッサ101は、ログを採取する(S103)。例えば、S92でリネームすることで退避された退避ログファイルB2´、B3´を採取ログ格納部11aへコピーする。その後、プロセッサ101は、退避ログファイルB2´、B3´を削除する(S104)。そして、プロセッサ101は、ログ採取の完了と退避ログファイルB2´、B3´の削除を、ログ採取端末11のディスプレイ(図示せず)に表示する(S105)。
以上のように、本実施形態によれば、ログ出力先ファイルが循環的に切り替えられる(ローテーションされる)ことに起因して、調査に必要なログが記録されたファイル(例えば、リネーム後の単位ログファイルB2、B3。つまり、退避ログファイルB2´、B3´)が消去されるのを防止することができる。
また、本実施形態によれば、業務システム1の環境や運用状況によって(例えば、トラブル事象に誘発されて)調査対象情報の出力量が想定以上となったとしても、調査に必要な単位ログファイル(リネーム後の単位ログファイル。つまり、退避ログファイルB2´、B3´)を、採取予定日に採取することができる。
図20は、ログ参照頻度管理装置2の構成を示す図である。図20に示すように、ログ参照頻度管理装置2は、プロセッサ201と、主記憶装置であるメインメモリ202と、NIC(Network Interface Card)203と、バス205と、補助記憶装置であるストレージ204(例えば、ハードディスク装置)と、を有する。ストレージ204内には、OS(Operating System)210a、OS210a上で実行されるプログラム、例えば、ログ参照頻度テーブル作成プログラム210bが記憶されている。これらのプログラムは、メモリ202に展開されプロセッサ201により実行される。ログ参照頻度管理装置2は、プロセッサ201がログ参照頻度テーブル作成プログラム210bを実行することで、ログ参照頻度テーブル234を作成するログ参照頻度テーブル作成装置として動作する。
また、ストレージ204内には、ログ一覧231、トラブル事例232、ログ参照頻度テーブル234が記憶されている。
[ログ参照頻度テーブル作成プログラム210b]
図21、図22は、ログ参照頻度テーブル作成プログラム210bの詳細処理のフローチャートである。
以下の処理は、プロセッサ201が、ログ参照頻度テーブル作成プログラム210bを実行することで行う。図23は、ログ参照頻度テーブル234の例である。図24〜図35は、ログ参照頻度テーブル作成過程における各テーブルの状態遷移を表す図である。以下、説明を簡単にするため、図23に示すログ参照頻度テーブル234を作成する例について説明する。図21、図22に示す処理は、例えば、定期的に(例えば、週一回、月一回)実行される。
まず、プロセッサ201は、ログ一覧231の行(項番)を示すN3に1を設定する(S110)。
図24には、ログ一覧231の一例が示されている。図24に示すログ一覧231は、ログ一覧231に含まれる各情報を識別する「項番」と、ローテーションログファイルの識別情報が設定される「ログ名」と、を項目として有する。ログ一覧231の各項目は、例えば、サポート員等によって手入力される。ログ一覧231に設定される「ログ名」は、時間の経過とともに増減し得る。
次に、プロセッサ201は、ログ一覧231を参照して、項番N3(ここでは、N3=1)の行が存在するか否かを判定する(S111)。
ここでは、図24に示すように、項番N3(ここでは、N3=1)の行が存在するため、プロセッサ201は、項番N3の行が存在すると判定する(S111:YES)。
次に、プロセッサ201は、トラブル事例232を参照して、第1検索条件を満たす行が存在する場合(S112:YES)、トラブル事例232から、第1検索条件を満たす行を1件抽出する(S113)。
図24には、トラブル事例232の一例が示されている。図24に示すトラブル事例232は、トラブル事例232に含まれる各情報を識別する「項番」と、メッセージの識別情報が設定される「メッセージ」と、「メッセージ」の原因調査のために過去に参照されたローテーションログファイルの識別情報が設定される「参照ログ名」と、「メッセージ(トラブル事象)」の原因調査のために過去に参照された「ログ名」の世代数が設定される「参照世代数」と、「メッセージ」が解決したか否かが設定される「状況」と、「項番」の行がS113で抽出済みか否かが設定される「抽出済フラグ」と、を項目として有する。トラブル事例232の各項目は、例えば、サポート員等によって手入力される。サポート員等は、トラブル事象が発生する都度、必要な項目をトラブル事例232に設定する。
第1検索条件は、トラブル事例232の「参照ログ名」が項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)で、「抽出済みフラグ」が未抽出であることを表す「0」で、「状況」が「クローズ済」であるという条件である。
ここでは、プロセッサ201は、図24に「抽出」で示すように、第1検索条件を満たす行として、トラブル事例232から項番1の行を抽出する(S113)。なお、第1検索条件を満たす行が複数抽出された場合、プロセッサ201は、例えば、項番の最も若い行を1件抽出する。
次に、プロセッサ201は、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されているか否かを判定する(S114)。
ここでは、図24に示すように、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されていない(S114:NO)。
そのため、プロセッサ201は、図25に「設定」で示すように、ログ参照頻度テーブル234の「メッセージ」、「ログ名」、「参照世代数」に、それぞれ、S113で抽出された行中の「メッセージ」(ここでは、XX Error)、「参照ログ名」(ここでは、Aログ)、参照世代数「2」を設定する(S115)。そして、ログ参照頻度テーブル234の「参照回数」に、「メッセージ」(ここでは、XX Error)を含む行の抽出回数「1」を設定する。
次に、プロセッサ201は、ログ参照頻度テーブル234から第2検索条件を満たす行を検索し、検索できれば、その行を削除する(S116)。第2検索条件は、ログ参照頻度テーブル234の「ログ名」が項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)で、「メッセージ」が「−」(メッセージが何も設定されていないことを示す)で、「参照回数」が「0」であるという条件である。
次に、プロセッサ201は、図26に示すように、S113で抽出した行(項番1)の「抽出済フラグ」に「1」を設定する(S117)。
次に、S112に戻り、プロセッサ201は、トラブル事例232を参照して、第1検索条件を満たす行が存在する場合(S112:YES)、トラブル事例232から、第1検索条件を満たす行を1件抽出する(S113)。
ここでは、プロセッサ201は、図26に「抽出」で示すように、第1検索条件を満たす行として、トラブル事例232から項番4の行を抽出する(S113)。なお、第1検索条件を満たす情報が複数件抽出された場合、プロセッサ201は、例えば、項番の最も若いものを1件抽出する。
次に、プロセッサ201は、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されているか否かを判定する(S114)。
ここでは、図26に示すように、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されている(S114:YES)。
そのため、プロセッサ201は、図27に示すように、ログ参照頻度テーブル234の項番1の「参照回数」に「1」を加算する(S118)。
次に、プロセッサ201は、図28に示すように、S113でトラブル事例から抽出した項番4の行中の「抽出済フラグ」に「1」を設定する(S117)。
プロセッサ201は、トラブル事例232に第1検索条件を満たす行が存在しなくなるまで(S112:NO)、上記S112〜S118の処理を繰り返し実行する。
そして、トラブル事例232に第1検索条件を満たす情報が存在しなくなった場合(S112:NO)、S119の処理を実行する。
すなわち、プロセッサ201は、ログ参照頻度テーブル234に、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)が設定されているか否かを判定する(S119)。
ここでは、図28に示すように、ログ参照頻度テーブル234に、項番N3(ここでは、N3=1)の「ログ名」(ここでは、Aログ)が設定されているため(S119:YES)、プロセッサ201は、N3に1を加算する(S120)。
次に、S111に戻り、プロセッサ201は、ログ一覧231を参照して、項番N3(ここでは、N3=2)の行が存在するか否かを判定する(S111)。
ここでは、図29に示すように、項番N3(ここでは、N3=2)の行が存在するため、プロセッサ201は、項番N3の行が存在すると判定する(S111:YES)。
次に、プロセッサ201は、トラブル事例232を参照して、第1検索条件を満たす行が存在する場合(S112:YES)、トラブル事例232から、第1検索条件を満たす行を1件抽出する(S113)。
第1検索条件は、トラブル事例232の「参照ログ名」が項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)で、「抽出済みフラグ」が未抽出であることを表す「0」で、「状況」が「クローズ済」であるという条件である。
ここでは、プロセッサ201は、図29に「抽出」で示すように、第1検索条件を満たす行として、トラブル事例232から項番2の行を抽出する(S113)。なお、第1検索条件を満たす行が複数抽出された場合、プロセッサ201は、例えば、項番の最も若い行を1件抽出する。
次に、プロセッサ201は、項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されているか否かを判定する(S114)。
ここでは、図29に示すように、項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)とS113で抽出された行中の「メッセージ」(ここでは、XX Error)との組み合わせが、ログ参照頻度テーブル234に設定されていない(S114:NO)。
そのため、プロセッサ201は、図30に「設定」で示すように、ログ参照頻度テーブル234の「メッセージ」、「ログ名」、「参照世代数」に、それぞれ、S113で抽出された行中の「メッセージ」(ここでは、XX Error)、「参照ログ名」(ここでは、Bログ)、参照世代数「1」を設定する(S115)。そして、ログ参照頻度テーブル234の「参照回数」に、「メッセージ」(ここでは、XX Error)を含む行の抽出回数「1」を設定する。
次に、プロセッサ201は、ログ参照頻度テーブル234から第2検索条件を満たす行を検索し、検索できれば、その行を削除する(S116)。第2検索条件は、ログ参照頻度テーブル234の「ログ名」が項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)で、「メッセージ」が「−」(メッセージが何も設定されていないことを示す)で、「参照回数」が「0」であるという条件である。
次に、プロセッサ201は、図31に示すように、S113で抽出した行(項番2)の「抽出済フラグ」に「1」を設定する(S117)。
プロセッサ201は、トラブル事例232に第1検索条件を満たす行が存在しなくなるまで(S112:NO)、上記S112〜S118の処理を繰り返し実行する。
そして、トラブル事例232に第1検索条件を満たす情報が存在しなくなった場合(S112:NO)、S119の処理を実行する。
すなわち、プロセッサ201は、ログ参照頻度テーブル234に、項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)が設定されているか否かを判定する(S119)。
ここでは、図31に示すように、ログ参照頻度テーブル234に、項番N3(ここでは、N3=2)の「ログ名」(ここでは、Bログ)が設定されているため(S119:YES)、プロセッサ201は、N3に1を加算する(S120)。
次に、S111に戻り、プロセッサ201は、ログ一覧231を参照して、項番N3(ここでは、N3=3)の行が存在するか否かを判定する(S111)。
ここでは、図32に示すように、項番N3(ここでは、N3=3)の行が存在するため、プロセッサ201は、項番N3の行が存在すると判定する(S111:YES)。
次に、プロセッサ201は、トラブル事例232を参照して、第1検索条件を満たす行が存在する場合(S112:YES)、トラブル事例232から、第1検索条件を満たす行を1件抽出する(S113)。
第1検索条件は、トラブル事例232の「参照ログ名」が項番N3(ここでは、N3=3)の「ログ名」(ここでは、Cログ)で、「抽出済みフラグ」が未抽出であることを表す「0」で、「状況」が「クローズ済」であるという条件である。
ここでは、第1検索条件を満たす行は存在しないため(S112:NO)、プロセッサ201は、S119の処理を実行する。
すなわち、プロセッサ201は、ログ参照頻度テーブル234に、項番N3(ここでは、N3=3)の「ログ名」(ここでは、Cログ)が設定されているか否かを判定する(S119)。
ここでは、図32に示すように、ログ参照頻度テーブル234に、項番N3(ここでは、N3=3)の「ログ名」(ここでは、Cログ)が設定されていないため(S119:NO)、プロセッサ201は、図33に示すように、ログ参照頻度テーブル234の「メッセージ」に「−」を設定し、「ログ名」に項番N3(ここでは、N3=3)の「ログ名」(ここでは、Cログ)を設定し、「参照回数」に「0」を設定し、「参照世代数」に「−」を設定する(S121)。
次に、プロセッサ201は、N3に1を加算する(S120)。
次に、S111に戻り、プロセッサ201は、ログ一覧231を参照して、項番N3(ここでは、N3=4)の行が存在するかを判定する(S111)。
ここでは、図34に示すように、項番N3(ここでは、N3=4)の行が存在するため、プロセッサ201は、項番N3の行が存在すると判定する(S111:YES)。
次に、プロセッサ201は、トラブル事例232を参照して、第1検索条件を満たす行が存在する場合(S112:YES)、トラブル事例232から、第1検索条件を満たす行を1件抽出する(S113)。
第1検索条件は、トラブル事例232の「参照ログ名」が項番N3(ここでは、N3=4)の「ログ名」(ここでは、Dログ)で、「抽出済みフラグ」が未抽出であることを表す「0」で、「状況」が「クローズ済」であるという条件である。
ここでは、第1検索条件を満たす情報は存在しないため(S112:NO)、プロセッサ201は、S119の処理を実行する。
すなわち、プロセッサ201は、ログ参照頻度テーブル234に、項番N3(ここでは、N3=4)の「ログ名」(ここでは、Dログ)が設定されているか否かを判定する(S119)。
ここでは、図34に示すように、ログ参照頻度テーブル234に、ログ一覧231の項番N3(ここでは、N3=4)の「ログ名」(ここでは、Dログ)が設定されていないため(S119:NO)、プロセッサ201は、図35に示すように、ログ参照頻度テーブル234の「メッセージ」に「−」を設定し、「ログ名」にログ一覧231の項番N3(ここでは、N3=4)の「ログ名」(ここでは、Dログ)を設定し、「参照回数」に「0」を設定し、「参照世代数」に「−」を設定する(S121)。
次に、プロセッサ201は、N3に1を加算する(S120)。
次に、S111に戻り、プロセッサ201は、ログ一覧231の項番N3(ここでは、N3=5)の「ログ名」が存在するか否かを判定する(S111)が、図35に示すように、ログ一覧231の項番N3(ここでは、N3=5)の「ログ名」が存在しない(S111:NO)ため、プロセッサ201は、処理を終了する。
ログ参照頻度管理装置2は、上記のように作成したログ参照頻度テーブル234は、所定タイミング(例えば、週に一回)で、上記のようにして作成されたログ参照頻度テーブル234を業務システム1に対して配信する。業務システム1は、配信されたログ参照頻度テーブル234をストレージ104に記憶する。
次に、変形例について説明する。
図36は、変形例について説明するための図である。
上記実施形態では、一つのファイルシステムを用い、一つのファイルシステムにローテーションログファイル131として、例えば、4つのローテーションログファイル(Aログ、Bログ、Cログ、Dログ)を記憶した例(図1、図2参照)について説明したが、これに限らない。
例えば、複数のファイルシステムを用い、各ファイルシステムにローテーションログファイル131を記憶してもよい。例えば、図36に示すように、ファイルシステムEにローテーションログファイル131として、例えば、4つのローテーションログファイル(Aログ、Bログ、Cログ、Dログ)を記憶し、ファイルシステムFにローテーションログファイル131として、例えば、3つのローテーションログファイル(Gログ、Hログ、Iログ)を記憶してもよい。
この場合、ファイルシステムごとに、図5に示す削除・退避処理を実行し、退避候補ログ状態テーブル134と削除候補ログ状態テーブル135をファイルシステムごとに作成し、ファイルの退避、削除を実行することで、上記実施形態と同様の効果を奏することができる。
以上の実施の形態をまとめると、以下の付記の通りである。
(付記1)
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、
処理をコンピュータに実行させるログファイル制御プログラム。
(付記2)
付記1において、
前記ローテーションログファイルは、書き込まれた調査対象情報が前記単位ログファイルのサイズに達すると、調査対象情報の書き込み先の単位ログファイルが次の単位ログファイルに切り替えられ、前記複数の単位ログファイルを循環して切り替えられるログファイル制御プログラム。
(付記3)
付記1又は2において、
前記退避対象単位ログファイルの上書きされるまでの上書き予測時間は、想定採取時までの時間より短いログファイル制御プログラム。
(付記4)
付記3において、
前記上書き予測時間Dnupは、次の式
Dnup=(Gmax-X)*Smax/Vup +(Smax-Sn)/Vup
(Gmaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの数、Xは、退避される単位ログファイルの数、Smaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの最大サイズ、Snは、前記退避対象単位ログファイルのファイルサイズ、Vupは、前記退避対象ローテーションログファイルに対する調査対象情報の出力速度である)
で表されるログファイル制御プログラム。
(付記5)
付記4において、
前記余裕サイズStは、次の式
St=Vup*(Dnup-Do)
(Doは、前記想定採取時までの時間である)
で表されるログファイル制御プログラム。
(付記6)
付記1において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも前記退避対象単位ログファイル分の単位ログファイルを削除するログファイル制御プログラム。
(付記7)
付記6において、
前記少なくとも一部を削除する処理では、
前記余裕サイズのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイルから所定世代前の単位ログファイルを削除するログファイル制御プログラム。
(付記8)
付記1において、
前記少なくとも一部を削除する処理では、
前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイル以外の単位ログファイルを削除するログファイル制御プログラム。
(付記9)
付記1から7のいずれかにおいて、
前記リネームすることで退避する処理は、前記退避対象単位ログファイルに加え、該退避対象単位ログファイルから所定世代前の単位ログファイルをリネームすることで退避するログファイル制御プログラム。
(付記10)
メモリと、
前記メモリに接続されたプロセッサとを有し、
前記プロセッサは、
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御装置。
(付記11)
情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御方法。
1:業務システム、1a:ログファイル制御装置、2:ログ参照頻度管理装置、11:ログ採取端末

Claims (9)

  1. 情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
    前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
    前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
    前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、
    処理をコンピュータに実行させるログファイル制御プログラム。
  2. 請求項1において、
    前記退避対象単位ログファイルの上書きされるまでの上書き予測時間は、想定採取時までの時間より短いログファイル制御プログラム。
  3. 請求項2において、
    前記上書き予測時間Dnupは、次の式
    Dnup=(Gmax-X)*Smax/Vup +(Smax-Sn)/Vup
    (Gmaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの数、Xは、退避される単位ログファイルの数、Smaxは、前記退避対象ローテーションログファイルを構成する単位ログファイルの最大サイズ、Snは、前記退避対象単位ログファイルのファイルサイズ、Vupは、前記退避対象ローテーションログファイルに対する調査対象情報の出力速度である)
    で表されるログファイル制御プログラム。
  4. 請求項3において、
    前記余裕サイズStは、次の式
    St=Vup*(Dnup-Do)
    (Doは、前記想定採取時までの時間である)
    で表されるログファイル制御プログラム。
  5. 請求項1において、
    前記少なくとも一部を削除する処理では、
    前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも前記退避対象単位ログファイル分の単位ログファイルを削除するログファイル制御プログラム。
  6. 請求項5において、
    前記少なくとも一部を削除する処理では、
    前記余裕サイズのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイルから所定世代前の単位ログファイルを削除するログファイル制御プログラム。
  7. 請求項1において、
    前記少なくとも一部を削除する処理では、
    前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、前記所定の状態が検知されたときの調査対象情報が書き込まれた単位ログファイル以外の単位ログファイルを削除するログファイル制御プログラム。
  8. メモリと、
    前記メモリに接続されたプロセッサとを有し、
    前記プロセッサは、
    情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
    前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
    前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
    前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御装置。
  9. 情報処理システムにおいて所定の状態が検知された場合に、調査対象情報がローテーション方式で書き込まれる複数の単位ログファイルを含む複数のローテーションログファイルのうち、該ローテーションログファイルに対する参照回数が第1の閾値以上で、かつ、採取予定時までに前記検知されたときの調査対象情報が上書きで消去される単位ログファイルである退避対象単位ログファイルを含む退避対象ローテーションログファイルの有無を判定し、
    前記退避対象ローテーションログファイルが有ると判定した場合に、前記複数のローテーションログファイルのうち、前記参照回数が第2の閾値以下で、かつ、前記採取予定時まで調査対象情報が上書きで消去されない単位ログファイルを含む削除対象ローテーションログファイルの、前記上書きで消去されない単位ログファイルの合計サイズである余裕サイズを算出し、
    前記余裕サイズが前記退避対象単位ログファイルのサイズ以上の場合に、前記削除対象ローテーションログファイルを構成する前記複数の単位ログファイルのうち、少なくとも一部を削除し、
    前記退避対象単位ログファイルを前記退避対象ローテーションログファイルから別の名前にリネームすることで退避する、ログファイル制御方法。
JP2017212601A 2017-11-02 2017-11-02 ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法 Pending JP2019086880A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017212601A JP2019086880A (ja) 2017-11-02 2017-11-02 ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017212601A JP2019086880A (ja) 2017-11-02 2017-11-02 ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法

Publications (1)

Publication Number Publication Date
JP2019086880A true JP2019086880A (ja) 2019-06-06

Family

ID=66763015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017212601A Pending JP2019086880A (ja) 2017-11-02 2017-11-02 ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法

Country Status (1)

Country Link
JP (1) JP2019086880A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021105897A (ja) * 2019-12-27 2021-07-26 富士通株式会社 制御プログラム、制御方法および制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021105897A (ja) * 2019-12-27 2021-07-26 富士通株式会社 制御プログラム、制御方法および制御装置
JP7424052B2 (ja) 2019-12-27 2024-01-30 富士通株式会社 制御プログラム、制御方法および制御装置

Similar Documents

Publication Publication Date Title
US11474984B2 (en) Differential health checking of an information management system
JP7409622B2 (ja) 計算機システム及び方法
JP4402992B2 (ja) バックアップシステム及び方法並びにプログラム
US10621212B2 (en) Language tag management on international data storage
US8930906B2 (en) Selectively allowing changes to a system
US20110231458A1 (en) File level hierarchical storage management system, method, and apparatus
US20140188896A1 (en) Discovering relationships between data processing environment components
US9268784B1 (en) Content-aware distributed deduplicating storage system based on locality-sensitive hashing
CN105893259B (zh) 代码检测系统、方法及装置
US20150127995A1 (en) Systems and methods for differential health checking of an information management system
CN112433888B (zh) 数据处理方法及装置、存储介质和电子设备
US20180052862A1 (en) Log collection system and log collection method
JP6915345B2 (ja) クラウド管理装置、クラウド管理方法、及びプログラム
JP2019086880A (ja) ログファイル制御プログラム、ログファイル制御装置、及び、ログファイル制御方法
US9183388B2 (en) Injustice detecting system, injustice detecting device and injustice detecting method
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
JP2012208565A (ja) ログ管理方法、ログ管理装置、及びプログラム
JP2013148938A (ja) 情報処理装置及び情報処理システム
JP6471468B2 (ja) データ保存方法、および情報処理装置
JP7087544B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び記憶装置
JP2009176119A (ja) ファイル利用状況判定システム
CN110083509A (zh) 一种日志数据的规整方法及装置
CN106959888B (zh) 云存储系统中的任务处理方法及装置
JP2019128616A (ja) 評価プログラム、評価方法及び情報処理装置
US9122571B2 (en) Apparatus and method for managing data access count