説明

ログファイルのローテート自動設定システムおよび方法

【課題】ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができるログファイルのローテート自動設定システムを提供する。
【解決手段】ディレクトリ監視間隔に従って、ローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、監視ファイル情報管理テーブルから取得したローテート設定確認フラグが、未設定を示す内容である場合、または監視ファイル情報管理テーブル内に監視対象ファイルが存在しなかった場合、監視ファイル情報管理テーブルより取得したすべての過去の監視時のファイルサイズ、および/または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、計算された値がローテート設定閾値より大きい場合は、ユーザ指定のローテート設定閾値を上限値として、ローテートを設定する手段とを備えたログファイルのローテート自動設定システムを提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ログファイルのサイズによりローテートを自動設定し、システム運用の効率化・最適化を図ることができるログファイルのローテート自動設定システムおよび方法に関するものである。
【背景技術】
【0002】
従来、ジョブ管理などの運用管理製品では、分散環境で出力されたプログラムの標準出力・標準エラー出力(以降ログと表記)の結果を一括管理するため、ログを管理サーバ上に転送している。このため、ログのファイルサイズが日々の運用で肥大化すると、ログの転送処理やコード変換処理に負荷が掛かり、管理サーバ上の他のプロセスに悪影響を及ぼすことが懸念されている。
通常、ログは運用管理者、または使用者で管理すべきであるが、複雑かつ多様化した現在のシステムでは、必ずしも十分に管理されていない実状がある。ログを管理する一般的な方法としては、定期的、または一定のファイルサイズに達したことを契機に、ローテート設定されているファイルの退避と初期化を実行し、世代管理するものである。
【0003】
ログのローテートに関連する公知技術文献としては、下記の特許文献1のような世代管理を用いた発明が多く、ログにローテートを自動設定することで、これらの発明技術を活用した管理が可能となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−257607号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ローテートを使用するには、あらかじめ適用するログを設定することが前提となっており、すべてのログにローテートを設定すると、肥大化することは防ぐことができるが、設定したファイル数分のローテート処理によるシステム負荷が懸念される。また、実際に肥大化するログだけを設計時に事前に見積もることが困難である。
【0006】
以上の現状に鑑み、本発明は、ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができると共に、既存のローテート技術を有効に活用できるログファイルのローテート自動設定システムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項1に係る発明は、あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得する手段と、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および/または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定する手段とを備えたことを特徴とするログファイルのローテート自動設定システムを提供するものである。
【0008】
請求項2に係る発明は、各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理する手段を備えたことを特徴とする請求項1記載のログファイルのローテート自動設定システムを提供するものである。
【0009】
請求項3に係る発明は、あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得するステップと、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得するステップと、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および/または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算するステップと、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定するステップとを実行することを特徴とするログファイルのローテート自動設定方法を提供するものである。
【0010】
請求項4に係る発明は、各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理するステップを実行することを特徴とする請求項3記載のログファイルのローテート自動設定方法を提供するものである。
【発明の効果】
【0011】
本発明のログファイルのローテート自動設定システムおよび方法では、次のような効果が期待できる。
指定されたディレクトリ配下のファイルを定期的に監視し、ファイルサイズが閾値に達すると判定された場合に、そのファイルにローテートを自動で適用することにより、ローテート処理によるシステム負荷をかけることなく、ログの肥大化を自動的に防ぐことができ、システムの安定稼働、およびシステム運用の効率化・最適化を図ることができる。
また、既存のローテート技術を有効に活用できることにより、運用管理製品でのログの一括管理が容易に行える。
【図面の簡単な説明】
【0012】
【図1】本発明に係るログファイルのローテート自動設定システムの一実施例のブロック図である。
【図2】本発明の監視処理を示すフローチャートである。
【図3】本発明のローテート設定判定処理を示すフローチャートである。
【図4】本発明の監視ファイル情報管理テーブルに格納されているデータの構成図である。
【図5】本発明の閾値到達判定処理を示すフローチャートである。
【図6】本発明の次回監視時のファイルサイズの計算結果の例を示す表である。
【図7】本発明のログファイルのローテート自動設定システムで複数の監視処理を行う例を示す説明図である。
【発明を実施するための形態】
【0013】
以下、実施例を示した図面を参照しつつ本発明の実施の形態を説明する。
尚、上記ログファイルのローテート自動設定システムは、コンピュータであり、上記各手段またはステップは、コンピュータの中央処理装置が必要なコンピュータプログラムを読み込んで実行することにより実現される手段またはステップであり、そのフローチャート図が図2、図3および図5である。
図1は、本発明に係るログファイルのローテート自動設定システム(以下「本システム」と記載する)の一実施例のブロック図である。
本システムは、中央処理装置10、メモリ20、およびハードディスク30から構成される。
メモリ20には、自動ログローテート設定プログラム21が記憶され、中央処理装置10によって、自動ログローテート設定プログラム21に含まれる命令コード等が順次実行され、監視結果のファイルサイズの情報等を、ハードディスク30の監視ファイル情報管理テーブル31に記憶する。
【0014】
ローテート対象ディレクトリ22は、ローテートの設定判定をする対象パスを示すが、サブディレクトリ以下を含めてすべてのファイルが監視対象となり、例えば、「/var/opt/log」といった値が指定される。また、ディレクトリ監視間隔23は、例えば「1日」といった値が指定され、監視する間隔を示す。設定値は「日」である必要はなく、時間を示す値であれば「時」や「分」単位で設定可能であるが、指定値が小さいほど本システムの負荷は増大することになる。さらに、ローテート設定閾値24は、ローテート対象ディレクトリ22配下の各ファイルをローテートする際のファイルサイズ閾値であり、例えば「3メガバイト」といった値が指定される。設定値は「メガバイト」である必要はなく、「キロバイト」や「バイト」単位でファイルサイズが設定可能である。
【0015】
本システムは、更に、以下のように構成されている。
前記メモリ20には、ユーザプログラム25が記憶され、中央処理装置10によってユーザプログラム25に含まれる命令コード等が順次実行され、ユーザプログラム25の出力結果のログ32をハードディスク30に記憶する。
また、メモリ20には、ローテートプログラム26が記憶され、中央処理装置10によってローテートプログラム26に含まれる命令コード等が順次実行され、ハードディスク30に記憶されているログ32をローテート管理する。
【0016】
次に、上記のように構成されたログファイルのローテート自動設定システムの動作を説明する。
図2は、ログファイルのローテート自動設定システムの監視処理を示すフローチャートである。
システムは、ディレクトリ監視間隔23に従って、ローテート対象ディレクトリ22配下の各ファイルサイズを取得する(S201)。
その後、監視ファイル情報管理テーブル31から、ローテート設定確認フラグ404を取得し、監視対象ファイルがローテート設定適用済みであるか確認する(S202)。
監視ファイル情報管理テーブル31は、図4に示す通り、ローテート設定確認フラグ404に加えて、監視中ファイル名401、監視日時402、およびファイルサイズ403を含めたデータ構成となっている。
【0017】
取得したローテート設定確認フラグ404が、未設定を示す内容であるか、または監視対象ファイルが前回の監視日時402以降に新規作成されたため、監視ファイル情報管理テーブル31の監視中ファイル名401内に監視対象ファイルが存在しなかった場合、ローテート設定判定処理(図3)を実行する(S203、S204)。
取得したローテート設定確認フラグ404より、ローテート設定済みであることが確認された場合、ローテート設定判定処理(図3)を実行しないで監視処理を終了する。
【0018】
ここで、図2の監視処理を図4に示す監視ファイル情報管理テーブルに格納されている監視ファイル名401がファイルAのデータ例を用いて説明する。
まず、監視日時402が1/1の監視処理を説明する。1/1は初めての監視となり、過去にファイルAの監視は行っていないため、ファイルAのデータはない。このため、ローテート設定判定処理(図3)を実行することになる。
次に、監視日時402が1/5の監視処理を説明する。1/5の監視では、1/1監視時のローテート設定確認フラグ404が未設定となり、ローテート設定判定処理(図3)を実行する。また、監視日時402が1/10、および1/15の監視処理でも、1/5の監視処理と同様の理由でローテート設定判定処理(図3)を実行することになる。
1/15以降の監視処理では、1/15の監視でローテート設定確認フラグ404が設定済となり、ローテート設定判定処理(図3)を実行しないで監視処理を終了する。
【0019】
図3は、ローテート設定判定処理を示すフローチャートである。
まず、監視ファイル情報管理テーブル31より、監視対象ファイルの過去の監視時のファイルサイズ403をすべて取得する(S301)。
取得したすべての過去の監視時のファイルサイズ403、および今回の監視処理(図2)で取得したファイルサイズより、閾値到達判定処理(図5)を実行する(S302)。
【0020】
図5は、閾値到達判定処理を示すフローチャートである。
先ず、次回監視時のファイルサイズを後述する推定方法により計算する(S501)。
計算された値がローテート設定閾値24より大きいかを判定し(S502)、大きい場合は、監視対象ファイルにローテート設定が必要であると判定し(S503)、小さい場合は、監視対象ファイルにローテート設定が不要であると判定する(S504)。
次回監視時のファイルサイズの推定方法は、図6に示すとおり、各監視間でのファイルサイズの増加量の平均値を求め、それを現在のファイルサイズに加算することで算出している。
【0021】
ここで、次回監視時のファイルサイズの計算処理を図6に示すデータ例を用いて説明する。
まず、監視日時601が1/1で次回監視時のファイルサイズの計算処理を説明する。1/1に取得した今回のファイルサイズ602は0.5メガバイトである。1/1が初めての監視となり、1回の監視あたりの平均増加603は0.5メガバイトと計算される。このため、今回のファイルサイズ602の0.5メガバイトに、1回の監視あたりの平均増加603の0.5メガバイトを加えることで、次回監視時のファイルサイズ604が1.0メガバイトとなる。
【0022】
次に、監視日時601が1/5の次回監視時のファイルサイズの計算処理を説明する。1/5に取得した今回のファイルサイズ602は1.2メガバイトである。1回の監視あたりの平均増加603は、現時点でのファイルサイズを監視回数で割って平均値を計算することになり、1/5に取得したファイルサイズ(1.2メガバイト)を監視回数(2回)で割って0.6メガバイトと計算される。このため、今回のファイルサイズ1.2メガバイトに、1回の監視あたりの平均増加0.6メガバイトを加えることで、次回の監視時のファイルサイズ1.8メガバイトが計算される。1/5以降の次回監視時のファイルサイズも同様に計算する。
以上で、閾値到達判定処理(図5)が終了し、再びローテート設定判定処理(図3のS303)に戻る。
【0023】
閾値到達判定処理(図5)により、ローテートの設定が必要と判定された場合、ユーザ指定のローテート設定閾値24をローテートファイルサイズの上限値として、ローテートを設定し(S304)、ローテート設定確認フラグ404に設定済みを示す値を設定し(S305)、ローテート設定判定処理を終了する。
閾値到達判定処理(図5)により、ローテートの設定が不要と判定された場合、ローテートを設定しないで、ローテート設定判定処理を終了し、監視処理を終了する。
【0024】
本システムの監視処理は、マルチプログラムで処理することが可能である(図7)。
監視処理ごとにローテート対象ディレクトリ22、ディレクトリ監視間隔23、およびローテート設定閾値24を設定する。
【0025】
図7の場合、監視処理A、監視処理B、および監視処理Cでは互いに異なる設定値となっている。
ここで、監視処理Cのローテート対象ディレクトリ22は、監視処理Aのローテート対象ディレクトリ22のサブディレクトリとなっているが、サブディレクトリ配下で監視処理A、および監視処理Cのローテート設定閾値24を双方ともに超えるファイルが存在する場合でも、各監視処理では図4の監視ファイル情報管理テーブルを共有し、ローテート設定確認フラグ404を参照することで、ファイル単位にローテートを設定(管理)することができる。
【符号の説明】
【0026】
23 ディレクトリ監視間隔
24 ローテート設定閾値
31 監視ファイル情報管理テーブル
403 ファイルサイズ
404 ローテート設定確認フラグ
604 次回監視時のファイルサイズ

【特許請求の範囲】
【請求項1】
あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得する手段と、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得する手段と、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および/または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算する手段と、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定する手段とを備えたことを特徴とするログファイルのローテート自動設定システム。
【請求項2】
各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理する手段を備えたことを特徴とする請求項1記載のログファイルのローテート自動設定システム。
【請求項3】
あらかじめ指定されたディレクトリ監視間隔に従って、記憶手段に記憶されたローテート対象ディレクトリ配下の各ファイルサイズを取得するステップと、
記憶手段に記憶された監視ファイル情報管理テーブルから、ローテート設定確認フラグを取得するステップと、
取得した前記ローテート設定確認フラグが、未設定を示す内容である場合、または前記監視ファイル情報管理テーブルの監視中ファイル名内に監視対象ファイルが存在しなかった場合、前記監視ファイル情報管理テーブルより、取得したすべての過去の監視時のファイルサイズ、および/または今回の監視処理で取得したファイルサイズより、次回監視時のファイルサイズを推定計算するステップと、
計算された値がローテート設定閾値より大きいか判定し、大きい場合は、ユーザ指定のローテート設定閾値をローテートファイルサイズの上限値として、ローテートを設定し、前記ローテート設定確認フラグに設定済みを示す値を設定するステップとを実行することを特徴とするログファイルのローテート自動設定方法。
【請求項4】
各監視処理ごとにローテート対象ディレクトリ、ディレクトリ監視間隔、およびローテート設定閾値を設定し、各監視処理では前記監視ファイル情報管理テーブルを共有し、前記監視ファイル情報管理テーブルのローテート設定確認フラグを参照して、ファイル単位にローテートを設定することにより、前記監視処理をマルチプログラムで処理するステップを実行することを特徴とする請求項3記載のログファイルのローテート自動設定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−159926(P2012−159926A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−17861(P2011−17861)
【出願日】平成23年1月31日(2011.1.31)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】