(57)【要約】【課題】ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができるログファイルのローテート自動設定システムを提供する。【解決手段】ディレクトリ監視間隔に従って、ローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、監視ファイル情報管理テーブルから取得したローテート設定確認フラグが、未設定を示す内容である場合、または監視ファイル情報管理テーブル内に監視対象ファイルが存在しなかった場合、監視ファイル情報管理テーブルより取得したすべての過去の監視時のファイルサイズ、および／または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、計算された値がローテート設定閾値より大きい場合は、ユーザ指定のローテート設定閾値を上限値として、ローテートを設定する手段とを備えたログファイルのローテート自動設定システムを提供する。【選択図】図２
2012159926.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得する手段と、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および／または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定する手段とを備えたことを特徴とするログファイルのローテート自動設定システム。
【請求項２】
各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理する手段を備えたことを特徴とする請求項１記載のログファイルのローテート自動設定システム。
【請求項３】
あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得するステップと、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得するステップと、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および／または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算するステップと、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定するステップとを実行することを特徴とするログファイルのローテート自動設定方法。
【請求項４】
各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理するステップを実行することを特徴とする請求項３記載のログファイルのローテート自動設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログファイルのサイズによりローテートを自動設定し、システム運用の効率化・最適化を図ることができるログファイルのローテート自動設定システムおよび方法に関するものである。
【背景技術】
【０００２】
従来、ジョブ管理などの運用管理製品では、分散環境で出力されたプログラムの標準出力・標準エラー出力（以降ログと表記）の結果を一括管理するため、ログを管理サーバ上に転送している。このため、ログのファイルサイズが日々の運用で肥大化すると、ログの転送処理やコード変換処理に負荷が掛かり、管理サーバ上の他のプロセスに悪影響を及ぼすことが懸念されている。
通常、ログは運用管理者、または使用者で管理すべきであるが、複雑かつ多様化した現在のシステムでは、必ずしも十分に管理されていない実状がある。ログを管理する一般的な方法としては、定期的、または一定のファイルサイズに達したことを契機に、ローテート設定されているファイルの退避と初期化を実行し、世代管理するものである。
【０００３】
ログのローテートに関連する公知技術文献としては、下記の特許文献１のような世代管理を用いた発明が多く、ログにローテートを自動設定することで、これらの発明技術を活用した管理が可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２５７６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ローテートを使用するには、あらかじめ適用するログを設定することが前提となっており、すべてのログにローテートを設定すると、肥大化することは防ぐことができるが、設定したファイル数分のローテート処理によるシステム負荷が懸念される。また、実際に肥大化するログだけを設計時に事前に見積もることが困難である。
【０００６】
以上の現状に鑑み、本発明は、ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができると共に、既存のローテート技術を有効に活用できるログファイルのローテート自動設定システムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項１に係る発明は、あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得する手段と、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および／または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定する手段とを備えたことを特徴とするログファイルのローテート自動設定システムを提供するものである。
【０００８】
請求項２に係る発明は、各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理する手段を備えたことを特徴とする請求項１記載のログファイルのローテート自動設定システムを提供するものである。
【０００９】
請求項３に係る発明は、あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得するステップと、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得するステップと、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および／または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算するステップと、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定するステップとを実行することを特徴とするログファイルのローテート自動設定方法を提供するものである。
【００１０】
請求項４に係る発明は、各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理するステップを実行することを特徴とする請求項３記載のログファイルのローテート自動設定方法を提供するものである。
【発明の効果】
【００１１】
本発明のログファイルのローテート自動設定システムおよび方法では、次のような効果が期待できる。
指定されたディレクトリ配下のファイルを定期的に監視し、ファイルサイズが閾値に達すると判定された場合に、そのファイルにローテートを自動で適用することにより、ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができ、システムの安定稼働、およびシステム運用の効率化・最適化を図ることができる。
また、既存のローテート技術を有効に活用できることにより、運用管理製品でのログの一括管理が容易に行える。
【図面の簡単な説明】
【００１２】
【図１】本発明に係るログファイルのローテート自動設定システムの一実施例のブロック図である。
【図２】本発明の監視処理を示すフローチャートである。
【図３】本発明のローテート設定判定処理を示すフローチャートである。
【図４】本発明の監視ファイル情報管理テーブルに格納されているデータの構成図である。
【図５】本発明の閾値到達判定処理を示すフローチャートである。
【図６】本発明の次回監視時のファイルサイズの計算結果の例を示す表である。
【図７】本発明のログファイルのローテート自動設定システムで複数の監視処理を行う例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下、実施例を示した図面を参照しつつ本発明の実施の形態を説明する。
尚、上記ログファイルのローテート自動設定システムは、コンピュータであり、上記各手段またはステップは、コンピュータの中央処理装置が必要なコンピュータプログラムを読み込んで実行することにより実現される手段またはステップであり、そのフローチャート図が図２、図３および図５である。
図１は、本発明に係るログファイルのローテート自動設定システム（以下「本システム」と記載する）の一実施例のブロック図である。
本システムは、中央処理装置１０、メモリ２０、およびハードディスク３０から構成される。
メモリ２０には、自動ログローテート設定プログラム２１が記憶され、中央処理装置１０によって、自動ログローテート設定プログラム２１に含まれる命令コード等が順次実行され、監視結果のファイルサイズの情報等を、ハードディスク３０の監視ファイル情報管理テーブル３１に記憶する。
【００１４】
ローテート対象ディレクトリ２２は、ローテートの設定判定をする対象パスを示すが、サブディレクトリ以下を含めてすべてのファイルが監視対象となり、例えば、「/var/opt/log」といった値が指定される。また、ディレクトリ監視間隔２３は、例えば「１日」といった値が指定され、監視する間隔を示す。設定値は「日」である必要はなく、時間を示す値であれば「時」や「分」単位で設定可能であるが、指定値が小さいほど本システムの負荷は増大することになる。さらに、ローテート設定閾値２４は、ローテート対象ディレクトリ２２配下の各ファイルをローテートする際のファイルサイズ閾値であり、例えば「３メガバイト」といった値が指定される。設定値は「メガバイト」である必要はなく、「キロバイト」や「バイト」単位でファイルサイズが設定可能である。
【００１５】
本システムは、更に、以下のように構成されている。
前記メモリ２０には、ユーザプログラム２５が記憶され、中央処理装置１０によってユーザプログラム２５に含まれる命令コード等が順次実行され、ユーザプログラム２５の出力結果のログ３２をハードディスク３０に記憶する。
また、メモリ２０には、ローテートプログラム２６が記憶され、中央処理装置１０によってローテートプログラム２６に含まれる命令コード等が順次実行され、ハードディスク３０に記憶されているログ３２をローテート管理する。
【００１６】
次に、上記のように構成されたログファイルのローテート自動設定システムの動作を説明する。
図２は、ログファイルのローテート自動設定システムの監視処理を示すフローチャートである。
システムは、ディレクトリ監視間隔２３に従って、ローテート対象ディレクトリ２２配下の各ファイルサイズを取得する（Ｓ２０１）。
その後、監視ファイル情報管理テーブル３１から、ローテート設定確認フラグ４０４を取得し、監視対象ファイルがローテート設定適用済みであるか確認する（Ｓ２０２）。
監視ファイル情報管理テーブル３１は、図４に示す通り、ローテート設定確認フラグ４０４に加えて、監視中ファイル名４０１、監視日時４０２、およびファイルサイズ４０３を含めたデータ構成となっている。
【００１７】
取得したローテート設定確認フラグ４０４が、未設定を示す内容であるか、または監視対象ファイルが前回の監視日時４０２以降に新規作成されたため、監視ファイル情報管理テーブル３１の監視中ファイル名４０１内に監視対象ファイルが存在しなかった場合、ローテート設定判定処理（図３）を実行する（Ｓ２０３、Ｓ２０４）。
取得したローテート設定確認フラグ４０４より、ローテート設定済みであることが確認された場合、ローテート設定判定処理（図３）を実行しないで監視処理を終了する。
【００１８】
ここで、図２の監視処理を図４に示す監視ファイル情報管理テーブルに格納されている監視ファイル名４０１がファイルＡのデータ例を用いて説明する。
まず、監視日時４０２が1/1の監視処理を説明する。1/1は初めての監視となり、過去にファイルＡの監視は行っていないため、ファイルＡのデータはない。このため、ローテート設定判定処理（図３）を実行することになる。
次に、監視日時４０２が1/5の監視処理を説明する。1/5の監視では、1/1監視時のローテート設定確認フラグ４０４が未設定となり、ローテート設定判定処理（図３）を実行する。また、監視日時４０２が1/10、および1/15の監視処理でも、1/5の監視処理と同様の理由でローテート設定判定処理（図３）を実行することになる。
1/15以降の監視処理では、1/15の監視でローテート設定確認フラグ４０４が設定済となり、ローテート設定判定処理（図３）を実行しないで監視処理を終了する。
【００１９】
図３は、ローテート設定判定処理を示すフローチャートである。
まず、監視ファイル情報管理テーブル３１より、監視対象ファイルの過去の監視時のファイルサイズ４０３をすべて取得する（Ｓ３０１）。
取得したすべての過去の監視時のファイルサイズ４０３、および今回の監視処理（図２）で取得したファイルサイズより、閾値到達判定処理（図５）を実行する（Ｓ３０２）。
【００２０】
図５は、閾値到達判定処理を示すフローチャートである。
先ず、次回監視時のファイルサイズを後述する推定方法により計算する（Ｓ５０１）。
計算された値がローテート設定閾値２４より大きいかを判定し（Ｓ５０２）、大きい場合は、監視対象ファイルにローテート設定が必要であると判定し（Ｓ５０３）、小さい場合は、監視対象ファイルにローテート設定が不要であると判定する（Ｓ５０４）。
次回監視時のファイルサイズの推定方法は、図６に示すとおり、各監視間でのファイルサイズの増加量の平均値を求め、それを現在のファイルサイズに加算することで算出している。
【００２１】
ここで、次回監視時のファイルサイズの計算処理を図６に示すデータ例を用いて説明する。
まず、監視日時６０１が1/1で次回監視時のファイルサイズの計算処理を説明する。1/1に取得した今回のファイルサイズ６０２は0.5メガバイトである。1/1が初めての監視となり、1回の監視あたりの平均増加６０３は0.5メガバイトと計算される。このため、今回のファイルサイズ６０２の0.5メガバイトに、1回の監視あたりの平均増加６０３の0.5メガバイトを加えることで、次回監視時のファイルサイズ６０４が1.0メガバイトとなる。
【００２２】
次に、監視日時６０１が1/5の次回監視時のファイルサイズの計算処理を説明する。1/5に取得した今回のファイルサイズ６０２は1.2メガバイトである。1回の監視あたりの平均増加６０３は、現時点でのファイルサイズを監視回数で割って平均値を計算することになり、1/5に取得したファイルサイズ（1.2メガバイト）を監視回数（2回）で割って0.6メガバイトと計算される。このため、今回のファイルサイズ1.2メガバイトに、1回の監視あたりの平均増加0.6メガバイトを加えることで、次回の監視時のファイルサイズ1.8メガバイトが計算される。1/5以降の次回監視時のファイルサイズも同様に計算する。
以上で、閾値到達判定処理（図５）が終了し、再びローテート設定判定処理（図３のＳ３０３）に戻る。
【００２３】
閾値到達判定処理（図５）により、ローテートの設定が必要と判定された場合、ユーザ指定のローテート設定閾値２４をローテートファイルサイズの上限値として、ローテートを設定し（Ｓ３０４）、ローテート設定確認フラグ４０４に設定済みを示す値を設定し（Ｓ３０５）、ローテート設定判定処理を終了する。
閾値到達判定処理（図５）により、ローテートの設定が不要と判定された場合、ローテートを設定しないで、ローテート設定判定処理を終了し、監視処理を終了する。
【００２４】
本システムの監視処理は、マルチプログラムで処理することが可能である（図７）。
監視処理ごとにローテート対象ディレクトリ２２、ディレクトリ監視間隔２３、およびローテート設定閾値２４を設定する。
【００２５】
図７の場合、監視処理Ａ、監視処理Ｂ、および監視処理Ｃでは互いに異なる設定値となっている。
ここで、監視処理Ｃのローテート対象ディレクトリ２２は、監視処理Ａのローテート対象ディレクトリ２２のサブディレクトリとなっているが、サブディレクトリ配下で監視処理Ａ、および監視処理Ｃのローテート設定閾値２４を双方ともに超えるファイルが存在する場合でも、各監視処理では図４の監視ファイル情報管理テーブルを共有し、ローテート設定確認フラグ４０４を参照することで、ファイル単位にローテートを設定（管理）することができる。
【符号の説明】
【００２６】
２３  ディレクトリ監視間隔
２４  ローテート設定閾値
３１  監視ファイル情報管理テーブル
４０３  ファイルサイズ
４０４  ローテート設定確認フラグ
６０４  次回監視時のファイルサイズ
【図１】
2012159926.tif 000003
【図２】
2012159926.tif 000004
【図３】
2012159926.tif 000005
【図４】
2012159926.tif 000006
【図５】
2012159926.tif 000007
【図６】
2012159926.tif 000008
【図７】
2012159926.tif 000009