本発明を実施する実施例について、図面とともに説明をする。なお、明細書記載の実施例は、発明を実現する態様の1つであり、実施例中の各処理の内容や実行順序等については、発明を実現できる範囲内で適宜変更可能である。
〔実施例1〕
まず、実施例1で解決しようとする問題について、具体的な一例を説明する。
コンピュータ等の情報処理装置は、情報処理装置の処理に応じて随時マシンデータ(ログ)を出力している。情報処理装置を利用するユーザは、業務システムのサーバやネットワーク、ストレージ等へのサイバー攻撃や不正利用などの対策の為に、ログを収集し分析する場合がある。ここで、業務システムは、例えば、ドキュメント管理や顧客管理などの業務処理を実行するシステムなどである。ユーザはログを分析することによって、業務システムが正常に動作しているかを監視することができる。また、ログを収集・分析して業務システムの運用を管理する運用管理システムがある。運用管理システムは、業務システムを安全に管理する為に、リアルタイムにログへのアクセスを監視することでログを収集する。また、運用管理システムはログの改竄をチェックして内容の健全性を高める。しかしながら、運用管理システムが業務システムから常に(リアルタイムに)ログを収集すると、業務システムの処理能力(リソース)に影響を与えてしまい、業務システムが実行する各アプリケーションの動作に遅延が生じてしまうことがある。また、ログを収集する際、ログを含むデータにはヘッダなどと呼ばれる追加のデータが付加される。そのため、頻繁にログを収集しようとすると、余分に付加されるデータが増加する。つまり、最終的に同量のログを収集しようとする場合、ログをある程度まとめて収集するよりも少量のログを頻繁に収集した方が業務システムにかかる処理負荷が増大してしまう。このような問題に対し、例えば、運用管理システムが、リアルタイムではなく一定間隔毎にログを収集する方法がある。
業務システムは、例えば、ログを一定のファイル数のログファイルに時系列の順に記憶させ、全てのログファイルにログが記憶され、さらに新しくログが出力された場合、最古のログを上書き(削除)する。ここで、ログファイルは、出力したログを一定の容量毎に分割して記憶したデータファイルである。また、最古のログがログファイルに記憶されてから、最新のログに上書きされるまでのサイクルをローテーションと呼ぶことがある。業務システムが一定のファイル数でログを記憶している場合、運用管理システムがローテーションのサイクルよりも短い間隔でログを収集することによって、最古のログが最新のログによって上書きされる前に収集することが可能となる。しかし、業務システムが突発的に多くのログを出力した場合、ログの出力速度が速くなることで、ログを収集する前に未収集のログが上書きされ、収集するログに欠損が生じることがある。なお、出力速度は、例えば、業務システムが単位時間あたりにログを出力する速さである。
また、ログの出力速度の変化に応じてローテーションの時間間隔が変化するため、運用管理システムは業務システムが出力するログを欠損しないようにログを収集する間隔を一定間隔で適切に設定することは難しい。さらに、ログを出力するプログラムとログを収集するプログラムが異なる場合、ログを収集するプログラム側では、ログを出力するプログラム側がどのような処理を実行中であるかを把握することが難しい。また、ログを収集するプログラム側では、ログを出力するプログラム側が実行している処理によって、どのような種類のログが多く出力されるのかを予測することができない。例えば、実施例1では、ログを出力するプログラムが業務システムで動作し、ログを収集するプログラムが運用管理システムで動作する。そのため、ログを収集するプログラムとログを出力するプログラムが異なる態様であり、運用管理システムは、業務システムがログを出力するデータ量を判断できないことがある。
図1は、ログを収集する一例を示す。制御装置1は、ログ収集部11と出力量収集部12と記憶部13を含む。また、制御装置1は監視対象サーバ14からログを収集する。制御装置1は、例えば、運用管理システムのサーバである。監視対象サーバ14は、ログ記憶部15を含む。監視対象サーバ14は、例えば、業務システムのサーバである。
ログ収集部11は、例えば、後述する収集間隔に基づくタイミングで繰り返しログ記憶部15からログあるいはログファイルを収集する。また、ログ収集部11は、ログ記憶部15からログを収集する際に、ログ記憶部15に記憶されている全てのログを収集するようにしてもよい。また、ログ収集部11は、ログ記憶部15からログの差分のみを収集するようにしてもよい。つまり、ログ収集部11は、ログ記憶部15から制御装置1が収集していない分のログのみを収集するようにしてもよい。
出力量収集部12は、例えば、ログ記憶部15から、ログ記憶部15に記憶されているログあるいはログファイルの出力量(サイズ情報)を含む情報を収集する。ここで、出力量とは、ログファイルの容量を示す情報であって、例えば、バイト単位で表されるログのデータ量である。
記憶部13は、例えば、ログ収集部11がログ記憶部15から収集したログを記憶する。また、記憶部13は、例えば、出力量収集部12がログ記憶部15から収集した出力量を記憶する。また、記憶部13は、例えば、ログ収集部11がログ記憶部15からログを収集するタイミングの情報を記憶する。
監視対象サーバ14は、制御装置1がログを収集(監視)する対象である情報処理装置である。監視対象サーバ14は、例えば、業務システム、コンピュータ、サーバ、情報システムなどである。また、監視対象サーバ14は、例えば、監視対象サーバ14が実行する処理の内容に応じた種類のログを出力する。ここで、ログの種類の具体例は後述する図7で説明する。
ログ記憶部15は、監視対象サーバ14が実行する処理に応じて監視対象サーバ14から出力されるログを記憶する。また、ログ記憶部15は、後述する図2に示すログファイル2としてログをファイル形式で記憶する。
図2は、ログ記憶部15に記憶されるログの一例を示す。ログファイル21は、新しいログが出力されたために削除され、制御装置1が収集できなくなったログのファイルを示す。ログファイル22〜26は、図1に示すログ記憶部15に記憶されているログファイル2であり、制御装置1が収集できるログファイル2である。ログは、例えば、ログファイル22〜26のように、複数のファイルに分割されて記憶される。図2では一例として、「5ファイルでローテーションする」、「1ファイルのサイズが100Mega Byte(MB)になった時点で、ファイルが切り替わる」とする。つまり、一例として、5つのログファイルがあり、ログファイル1つあたりの記憶上限はそれぞれ100MBであるとする。なお、ログファイルのファイル数やログファイルの記憶上限は、後述する「ログの特徴」に相当する情報である。初めに、全てのファイル(ログファイル21〜25)に記憶されているログの容量がそれぞれ0MBであるとする。次に、ログが出力され、ログファイル21からログファイル25まで順番に記憶されるとする。その後、ログファイル21〜25全てにログがそれぞれ100MBずつ記憶された場合を考える。このとき、更にログが出力されると、図1に示す監視対象サーバ14は、最古のログファイル2であるログファイル21に記憶されているログを削除する。その後、ログが削除されたことで0MBになったログファイル21(ログファイル26)に新しく出力されたログが記憶され始める。仮に、ログファイル26にログが100MB分記憶された場合、次にログファイル22に記憶されているログが削除されることになる。例えば、このように、ログファイル2が削除される(切り替わる)場合、ログファイル2に記憶されるログについての計測される出力速度は正確ではなくなる。なお、簡単の為、それぞれのログファイル2には上限の100MBずつ記憶される場合を説明したが、実際には、例えば99MBなど、正確に上限の容量まで記憶されるとは限らない。
図2を用いて説明した例によると、制御装置1は収集していないログの総量が500MBを超える前に収集すれば、ログが欠損することはないが、ログを収集する前にログの総量が500MBを超えた場合、削除された分のログが欠損する。例えば、ログが1MB/分の一定の速さで出力される場合は、ローテーション間隔は約500分(約8.33時間)である為、制御装置1は、ログの収集間隔を8時間に設定することで、全てのログを欠損することなく収集することが期待できる。なお、ローテーション間隔とは、ログが記憶された最古のログファイル2が最新のログが出力されたことによって、削除されるまでの間隔である。しかしながら、実際にはログがログファイル2に記憶される速度が一定であることは少なく、システムやサーバの稼働状況に応じてログの出力量も変化する。例えば、ログを欠損せずに収集するために十分な極めて短い間隔でログを収集するように設定すれば全てのログを収集することが期待できるが、この場合、リアルタイムでログを収集する方法と同様に、図1に示す監視対象サーバ14のリソースに影響を与えてしまう。そのため、制御装置1が一定間隔でログを収集する場合、ログの出力量によってログファイル2がローテーションする間隔が一定ではなくなるため、制御装置1がログの欠損しない収集間隔を設定することは難しい。
〔機能ブロック〕
図3は、制御装置1の機能ブロック図を示す。なお、制御装置1は、例えば、サーバ、コンピュータ、Personal Computer(PC)などの情報処理装置である。また、制御装置1は、例えば、収集部31、記憶部32、取得部33、算出部34、設定部35を含む。また、それぞれの処理部は、同一のハードウェアで実現してもよく、あるいは、複数のハードウェアに分散した態様で動作することとしてもよい。
収集部31は、ログと出力量を外部の装置から収集し、収集した情報を記憶部へ出力する。収集部31は、例えば、図1に示すログ記憶部15からログファイル2を収集する。また、収集部31は、例えば、図1に示すログ記憶部15から、図1に示すログ収集部11が収集していないログの出力量を示す情報を収集する。外部の装置は、例えば、サーバ、コンピュータ、PCなどの情報処理装置であって、例えば、図1に示す監視対象サーバ14である。また、収集部31は、設定部35が設定する収集間隔や収集時刻に基づいて、ログファイル2を収集する。なお、収集間隔とは、制御装置1が外部の装置からログを収集する時間的間隔である。また、収集時刻とは、制御装置1が外部の装置からログを収集する時間あるいは時刻である。また、収集時刻を単にタイミングと呼ぶこともある。
記憶部32は、各種の情報を記憶する。各種の情報は、例えば、ログに関する情報、収集間隔、収集時刻などである。また、記憶部32は、ハードウェアとしては、例えば、Hard Disk Drive(HDD)、Solid State Drive(SSD)等の記憶媒体である。また、記憶部32は、例えば、収集部31から受け取るログファイル2や出力量などの情報を記憶する。また、記憶部32は、記憶している各種の情報を取得部33へ出力する。
取得部33は、記憶部32に記憶されている各種の情報を取得し、取得した各種の情報を収集部31、算出部34、設定部35へ出力する。また、取得部33は各種の情報を有線回路または無線回路を介して取得あるいは出力する。なお、各種の情報は、例えば、ログ、ログファイル、ファイル数、サイズ、ファイルが切り替わる基準、出力速度などの情報である。また、取得部33は、常に現在の時間(現在時刻)を取得する。なお、取得部33は、制御装置1とは異なる装置から時間情報を取得してもよいし、制御装置1が図示しない計測部を用いて計測した時間情報を収集するように構成してもよい。
算出部34は、取得部33からログファイル2の情報を受け取る。算出部34は、取得部33から受け取るログファイル2に基づいて、ログファイル2がローテーションするファイルの数であるファイル数と、1ファイルあたりに記憶できる容量(サイズ)と、ファイルが切り替わる基準を特定する。ファイル数は、例えば、図2を例にすると「5ファイル」である。また、サイズは、例えば、図2を例にすると「100MB」である。算出部34は、単位時間あたりにログが出力されるデータ量である出力速度とローテーション間隔と収集していないログファイル2の内、最古のログファイル2が削除される時間を算出する。また、算出部34は、算出したローテーション間隔と最古のログファイル2が削除される時間を設定部35へ出力する。なお、ローテーション間隔は、例えば、図2を例にすると「8.33時間」などである。また、ファイルが切り替わる基準は、例えば、「日付で切り替わる」、「ファイルサイズで切り替わる」などである。なお、図2ではファイルが切り替わる基準は「ファイルサイズで切り替わる」場合について説明した。ここで、ファイルが切り替わる基準が「日付で切り替わる」場合、図2に示すログファイル2が日付ごとに切り替わることを意味する。例えば、図2に示すログファイル21が「12月10日」などである。この場合、例えば、図1に示す監視対象サーバ14が「12月10日」に出力したログを図2に示すログファイル21に記憶する。つまり、ファイルが切り替わる基準が「日付で切り替わる」場合、ユーザは、ファイル数に応じて一定の収集間隔(一定の日数ごと)でログを収集することで、全てのログを欠損なく収集することができる。算出部34は、例えば式(1)を用いて出力速度を算出する。算出部34は、算出した出力速度を設定部35へ出力する。
(出力速度)=(ファイルサイズ差分)/ΔT ・・・(1)
式(1)において、出力速度は、ログが出力される速さ(単位時間当たりのデータ量)を示す。また、ファイルサイズ差分は、前回収集したログファイル2の出力量と今回収集したログファイル2の出力量の差分を示す。ファイルサイズ差分は、例えば、図1に示す出力量収集部12がログ記憶部15からログの出力量を収集してから、次にログの出力量を収集するまでに新しくログ記憶部15に記憶されたログのデータ量を示す。また、ΔTは、ファイルサイズ差分に応じた、ログファイル2の出力量を収集する時間間隔である。ΔTは、例えば、図1に示す出力量収集部12がログ記憶部15からログの出力量を収集する際の時間間隔である。
設定部35は、算出部34からファイル数と、ログファイルのサイズと、ファイルが切り替わる基準と、出力速度を受け取る。設定部35は、受け取った情報に基づいて、収集時刻を設定する。また、設定部35は、取得部33から現在時刻を取得する。設定部35は、取得した現在時刻と設定した収集時刻を比較し、現在時刻が収集時刻と一致しているか否かを判定する。設定部35は、判定の結果、一致する場合、ログを収集すると決定する。
設定部35が収集時刻を設定する一例を説明する。仮に、ファイル数が「5ファイル」、ログファイルのサイズが「100MB」、ファイルが切り替わる基準が「ファイルサイズで切り替わる」、出力速度が「1MB/分」であるとする。さらに、図1に示すログ収集部11が「12月10日0時0分」にログ記憶部15からログファイルを収集したとする。この場合、上述したように「8.33時間」を経過すると、ログ収集部11が収集していない最古のログが削除されることになる。そのため、設定部35は、例えば、収集間隔を8時間と設定し、次回の収集時刻を「12月10日8時0分」と設定する。この場合、図1に示すログ収集部11は現在時刻が「12月10日8時0分」になったタイミングでログを収集する。
なお、設定部35は、例えば、ユーザが収集間隔と収集時刻を再設定できるようにしてもよい。つまり、上述した例の場合、設定部35は、収集間隔を「8.33時間」以内の時間でログ収集すれば全てのログを欠損なく収集することが期待できる。しかしながら、上述したように、例えば、図2に示すログファイル2が正確にファイルサイズで切り替わることは少なく、出力速度が常に一定であるとは限らない。そのため、ユーザは、設定部35が設定した「8.33時間」時間に対して、「8時間」や「300分」などと設定し直してもよい。また、制御装置1は、収集間隔および収集時刻を再設定するための図示しない再設定部を備えるようにしてもよい。さらに、制御装置1は、初期状態の収集間隔および収集時刻を設定する為の図示しない初期設定部などを備えるようにしてもよい。
図4Aは、ログ収集部11の機能ブロック図を示す。ログ収集部11は、収集部111と取得部112を含む。収集部111は、図3に示す収集部31として機能する。また、取得部112は、図3に示す取得部33として機能する。
図4Bは、出力量収集部12の機能ブロック図を示す。出力量収集部12は、収集部121と取得部122と算出部123と設定部124を含む。収集部121は、図3に示す収集部31として機能する。また、取得部122は、図3に示す取得部33として機能する。また、算出部123は、図3に示す算出部34として機能する。また、設定部124は、図3に示す設定部35として機能する。
〔フローチャート〕
図5は、制御装置1のフローチャートの一例を示す。制御装置1は、例えば、収集時刻を設定し(ステップS1)、収集するか否かを判定し(ステップS2)、ログを収集する(ステップS3)。ステップS1の処理については後述する。ステップS2では、図3に示す設定部35が設定した収集時刻と現在時刻に基づいて、現在時刻が収集時刻と一致しているか否かを判定する。判定の結果、一致する場合(ステップS2:Y)、設定部35は、ログ記憶部15からログを収集すると決定し、ステップS3の処理が実行される。一方、判定の結果、一致しない場合(ステップS2:N)、設定部35は、ログ記憶部15からログを収集しないと決定し、ステップS1の処理に戻る。ステップS3では、図3に示す収集部31がログを収集し、収集したログを記憶部32に出力する。ステップS3の処理の後はステップS1の処理に戻る。
図6Aは、ステップS1の処理の一例を示す。制御装置1は、例えば、ログの出力量を収集し(ステップS21)、ログの特徴を特定し(ステップS22)、収集間隔を算出し(ステップS23)、収集時刻を設定する(ステップS24)。ステップS21の処理については後述する。ステップS22では、図3に示す収集部31が収集したログの出力量の情報に基づいて、算出部34がファイル数、サイズ、ファイルが切り替わる基準の情報を特定する。ステップS23では、算出部34が算出した出力速度と、算出部34が特定したファイル数、サイズ、ファイルが切り替わる基準の情報に基づいて、出力速度が一定であると仮定した場合の、収集部31が収集していない最古のログが削除される時間(収集間隔)を算出する。ステップS24では、算出部34が算出した収集間隔と、取得部33が取得した現在時刻に基づいて、収集部31がログを収集する時間(収集時刻)を設定部35が設定する。制御装置1は、ステップS24の処理を実行した場合、ステップS21の処理に戻って実行する。なお、ステップS21〜S24の処理は、例えば、所定の間隔(例えば、1分間隔)で繰り返し実行する。
図6Bは、ステップS21の処理の一例を示す。制御装置1は、例えば、ログの出力量を収集し(ステップS31)、出力量が減っているか否かを判定し(ステップS32)、出力速度を算出する(ステップS33)。ステップS31では、図3に示す収集部31(あるいは、図4Bに示す収集部121)がログの出力量を収集する。次にステップS32では、収集部31が収集した出力量(今回の出力量)と、収集部31が前回に収集した出力量(前回の出力量)と、を比較し、算出部34は、今回の出力量が前回の出力量よりも少ない場合、出力量が減っていると判定する。さらに、算出部34は、出力量が減っていると判定した場合(ステップS32:Y)、ログファイルが削除されたことを検知し、ステップS31の処理に戻る。これにより、出力速度が正しく算出できないと判断される場合に、ログの出力量の収集が再実行される。ステップS32では、算出部34が出力量が減っていないと判定した場合(ステップS32:N)、ステップS33の処理を実行する。ステップS33では、算出部34は、式(1)を用いて、出力速度を算出する。また、制御装置1は、ステップS33を実行した場合、図6Aに示すステップS22の処理を実行する。
制御装置1は、例えば、図5に示すステップS1〜S3の処理と、図6Aに示すステップS21〜S24の処理をそれぞれ独立して実行するように構成してもよい。つまり、例えば、図示しないログ収集装置が図5に示すステップS1〜S3の処理を実行し、図示しない設定装置が図6Aに示すステップS21〜S24の処理を実行してもよい。この場合、例えば、図示しない通信部などを用いて、図示しない設定装置が設定した収集時刻を、図示しないログ収集装置に通知するようにし、図示しないログ収集装置は通知された収集時刻に基づいて、図5に示すステップS1〜S3の処理を実行してもよい。
また、制御装置1は、必ずしも図6Aに示すステップS23〜S24の処理をする必要はない。つまり、制御装置1は、ログの出力量とログの特徴に基づいて、制御装置1が収集していないログのデータ量が、ファイル数とファイルのサイズに基づいて算出される最大の容量となった場合にログを収集するように構成してもよい。図1と図2を用いて、図1に示すログ記憶部15には図2に示すログファイル2が記憶される場合について考える。制御装置1は、例えば、ログ記憶部15に記憶されている、ログ収集部11が収集していないログのデータ量が500MB(最大の記憶容量)になったことを、出力量収集部12が算出した場合、即時、ログ収集部11にログ記憶部15が記憶している全てのログファイル2を収集させてもよい。こうすることで、制御装置1は全てのログを欠損なく収集することができる。さらに、このとき、ログ記憶部15に記憶されている、ログ収集部11が収集していないログのデータ量が例えば400MB(最大の記憶容量の80%)などになった場合に、ログ収集部11にログファイル2を収集させてもよい。こうすることで、制御装置1の処理や制御装置1と監視対象サーバ14との通信状況などによるタイムラグや、最大の記憶容量まで正確にログ記憶部15がログを記憶しない場合などによって、制御装置1がログを欠損するリスクを軽減できる。これらの方法は、ログ収集のタイミングを、ログを記憶するための空き容量に応じて決定していると言うことができる。
また、制御装置1は図示しないログ分析部を備えてもよい。図示しないログ分析部は、例えば、図1に示すログ収集部11が収集したログを分析する。制御装置1は、収集したログを分析することで、図1に示す監視対象サーバ14に不正な処理が実行されていないかなどを監視する。
また、制御装置1は、例えば、ログの出力量とログの特徴に基づいて収集時刻を設定し、設定した収集時刻でログを収集することで、制御装置1が収集していないログが削除される前に収集することができるため、全てのログを欠損なく収集することができる。
また、制御装置1は、例えば、ユーザが設定する収集時刻と図3に示す設定部35が設定する収集時刻を比較し、ログ収集のタイミングがより早くなる収集時刻でログを収集する(早くなる収集時刻を優先的に採用する)こととしてもよい。あるいは、制御装置1は、ユーザが設定する収集時刻と図3に示す設定部35が設定する収集時刻を比較し、制御装置1がログを欠損する場合にのみ設定部35が設定する収集時刻でログを収集することとしてもよい。こうすることで、制御装置1はユーザが設定する収集時刻でログを収集しながら、ログを欠損するリスクを回避することができる。
図7は、ログの種類の具体例を示す。ログは、例えば、操作内容や操作に伴うシステムの動き、データの移り変わりなどが時系列に沿って記録され、カテゴリ41とログの種類42のように分類される。ログの種類42に示すように、図1に示す監視対象サーバ14は処理に応じて複数の種類のログをそれぞれ出力し記憶する。また、制御装置1は、監視対象サーバ14が記憶する複数の種類のログをそれぞれ収集する。また、ログのカテゴリとログの種類は、カテゴリ41とログの種類42に示すだけでない。カテゴリ41とログの種類42はそれぞれログの一部を説明する。
カテゴリ41は、ログの種類を分類するカテゴリの名称である。カテゴリ41は、例えば、Windows(登録商標)イベントログ、UNIX(登録商標) Operating System(OS)ログ、Global Server(GS)システムのログ、Windows Internet Information Service(IIS)ログ、Apache(登録商標)、ミドルウェア、ストレージなどである。
Windowsイベントログは、コンピュータのOSの一つであるWindowsのシステム内で生じた現象や動作を記録するイベントログなどについてのカテゴリである。
UNIX OSログは、コンピュータのOSの一つであるUNIX OSの処理に応じて出力されるログについてのカテゴリである。
GSシステムのログは、例えば、グローバルサーバの処理に応じて出力されるログについてのカテゴリである。
IISログは、WindowsのWorld Wide Web(WWW)Webサーバソフトウェアの一つであるIISの処理に応じて出力されるログについてのカテゴリである。
Apacheログは、Webサーバソフトウェアの一つであるApacheの処理に応じて出力されるログについてのカテゴリである。
ミドルウェアログは、コンピュータのミドルウェアの処理に応じて出力されるログについてのカテゴリである。
ストレージログは、コンピュータのストレージの処理に応じて出力されるログについてのカテゴリである。
ログの種類42は、カテゴリ41ごとに分類されたログの種類を示す。ログの種類42は、例えば、アプリケーションログ、セキュリティログ、システムログ、Domain Name System(DNS)サーバログ、ディレクトリサービス、ファイル複製サービス、Distributed File System(DFS)レプリケーション、ハードウェアイベントログ、転送されたイベントログなどがある。また、ログの種類42は、例えば、Hyper−Vサーバイベントログ、シスログ、ログインログ、suログ、アクセスログ、業務ログ、NCSA共通ログファイル形式、Microsoft(登録商標) IISログファイル形式、W3C拡張形式、アクセスログ NCSA形式(初期形式)、エラーログなどがある。また、ログの種類42は、例えば、コマンドが出力するログ、コンソール監査ログ、サーバアクセス監査ログ、イベントログなどがある。
アプリケーションログは、例えば、アプリケーションの動作状況をアプリケーション自身がファイルに記録するログである。
セキュリティログは、例えば、特定ファイルの読み取り成功やログオンの失敗などの監査の成功や失敗などを出力するログである。
システムログは、例えば、OSの稼働中に発生した重要なイベントを記録したログである。
DNS サーバログは、例えば、インターネットなどのTransmission Control Protocol(TCP)/Internet Protocol(IP)ネットワーク上でドメイン名やホスト名とIPアドレスの対応関係などを管理するDNSサーバが記録するログである。
ディレクトリサービスは、例えば、ネットワーク上の資源とその所在や属性、設定などの情報を収集・記録し、検索できるシステムであるディレクトリサービスが記録するログである。
ファイル複製サービスは、例えば、ファイルの複製に関する管理を行うファイル複製サービスが、ファイルの複製に関する問題のトラブルシューティングのために出力するイベントログである。
DFSレプリケーションは、例えば、複数のコンピュータのフォルダ間を関連付け、内部のファイルやフォルダを自動的に複製することで可用性の向上や負荷分散を図る機能であるDFSレプリケーションの処理を記録するログである。
ハードウェアイベントログは、例えば、電源、HDD、温度、CPU、メモリなどに関するログである。
転送されたイベントログは、例えば、イベントビューアで、別の情報処理装置のイベントを受信し、受信したログを記録するように設定した場合に、別のコンピュータから転送されたイベントログである。
Hyper−Vサーバイベントログは、例えば、仮想マシンの動作を監視する監視機能によって記録される、仮想マシンのイベントに関するログである。
シスログは、例えば、OSの稼働中に発生した重要なイベントを記録したログである。
ログインログは、例えば、コンピュータのログイン操作を記録するログである。
suログは、例えば、UNIXにおけるsubstitute user(su)コマンドによってUNIXを操作するユーザを切り替える場合に記録するログである。
アクセスログは、例えば、ユーザや外部のシステムからの操作や要求などを記録するログである。
業務ログは、例えば、オンラインのデータベース処理とデータ保証機能を備える総合オンライントランザクションシステムが出力する、業務の履歴を記録するログである。
National Center for Supercomputing Applications(NCSA)共通ログファイル形式は、例えば、IISなどのWebサーバが記録するログのファイル形式の一つであって、カスタマイズできない固定のAmerican Standard Code for Information Interchange(ASCII)形式である。
Microsoft IISログファイル形式は、例えば、IISなどのWebサーバが記録するログのファイル形式の一つであって、カスタマイズできない固定のASCII形式である。Microsoft IISログファイル形式では、例えば、NCSA共通ログファイル形式よりも多くの情報項目が記録される特徴がある。
W3C拡張形式は、例えば、IISなどのWebサーバが記録するログのファイル形式の一つであって、カスタマイズが可能なASCII形式である。
アクセスログ NCSA形式(初期形式)は、例えば、Apacheが出力するアクセスログであって、NCSAフォーマットで出力されるログである。
エラーログは、例えば、コンピュータ上でエラーが発生した際に記録する、エラーの内容やエラーが発生した日時、エラーの状況などのログである。
コマンドが出力するログは、例えば、ミドルウェアが提供するコマンドが独自に出力するログである。
コンソール監査ログは、例えば、画面から実行したシステムの操作に関する操作内容を記録するログである。
サーバアクセス監査ログは、例えば、サーバのアクセスに関する操作内容を記録するログである。
イベントログは、例えば、システム内で起こった現象や動作を記録するログである。
例えば、カテゴリ41が「Windowsイベントログ」であるログには、ログの種類42が「アプリケーションログ」、「セキュリティログ」、「システムログ」などのログが属する。制御装置1は、ログの種類42に示すような種類の異なるログをそれぞれ収集する。
〔実施例2〕
実施例1では、例えば、図1に示す制御装置1が監視対象サーバ14から全てのログを欠損することなく収集する方法について説明した。上述したように、制御装置1は、ログの出力量を収集する度に、収集したログの出力量と前回の出力量に基づいてログの出力速度を算出し、算出した出力速度とログの記憶容量(の空き容量)に基づいて収集間隔を算出している。しかしながら、ログの出力量に基づいて正しい出力速度を算出できない場合があり、この場合にはログの出力量を再度、収集し直す必要が生じる。このように、制御装置1は、収集間隔を算出するまでに必要とする処理を繰り返し実行することによる処理負荷が大きいという問題がある。実施例2では、例えば、このような問題を改善する手段として、運用管理システムがログの出力量とは別に業務システムから収集する性能情報に注目した、制御装置について説明する。なお、以降の説明においては、実施例1と同じ構成である場合は説明を省略し、実施例1と異なる構成について説明する。
図8は、ログを収集する別例を示す。制御装置5は、ログ収集部51と出力量収集部52と性能情報収集部53と性能情報分析部54と記憶部55を含む。また、制御装置5は、例えば、監視対象サーバ56からログを収集する。監視対象サーバ56は、ログ記憶部57と性能情報取得部58を含む。なお、制御装置5は図1に示す制御装置1と同様の機能を備える。つまり、ログ収集部51は、図1に示すログ収集部11と同様の機能を備える。また、出力量収集部52は、図1に示す出力量収集部12と同様の機能を備える。また、記憶部55は、図1に示す記憶部13と同様の機能を備える。また、監視対象サーバ56は、図1に示す監視対象サーバ14と同様の機能を備える。また、ログ記憶部57は、図1に示すログ記憶部15と同様の機能を備える。
性能情報収集部53は、例えば、性能情報取得部58から監視対象サーバ56の性能情報を収集する。ここで、性能情報とは、例えば、監視対象サーバ56の各リソースの動作状態(すなわち、リソースの稼働状態や負荷)を示す情報であって、動作状態情報、稼働状態情報、負荷情報等と言い換えることができる。性能情報には、後述する図12A〜図12Dに示すような種類の情報を含む。また、以降の説明では、性能情報の項目を性能項目と記載し、性能情報の値を性能値と記載して説明する。
性能情報分析部54は、例えば、性能情報収集部53が収集した性能情報を分析する。
制御装置5は、監視対象サーバ56からログの出力量と性能情報を収集し、性能情報の値の変化とログの出力量との関係を分析し記憶しておくことで、収集した性能情報の値の変化に応じたログの収集時刻を設定する。
図9は、制御装置5の機能ブロック図を示す。制御装置5は、例えば、収集部61、記憶部62、取得部63、算出部64、生成部65、設定部66を含む。また、収集部61、記憶部62、取得部63、算出部64、設定部66はそれぞれ、図3に示す収集部31、記憶部32、取得部33、算出部34、設定部35と同じ構成を含む。また、それぞれの処理部は、同一のハードウェアで実現してもよく、あるいは、複数のハードウェアに分散した態様で動作してもよい。
収集部61は、例えば、図8に示す性能情報取得部58から性能情報を収集し、記憶部62へ出力する。
記憶部62は、例えば、収集部61が収集した性能情報と、生成部65が生成した性能情報とログの出力量の関連を表す情報を記憶する。
取得部63は、例えば、記憶部62から性能情報と、後述する関連テーブル7と後述する関連テーブル8とを取得し、取得した情報を収集部61、算出部64、生成部65、設定部66へ出力する。
算出部64は、例えば、出力速度と性能値の増加率と関係係数を算出し、算出した結果を記憶部62へ出力する。性能値の増加率は、収集部61が収集した性能値と、任意のタイミングに収集部61が収集した性能値とを比較した場合の値の増加率を示す。なお、任意のタイミングは、例えば、通常時であるとする。但し、通常時とは、例えば、図8に示す監視対象サーバ56がおよそ通常の業務に関する処理を実行している場合であって、所定の期間において平均的なデータ量のログを監視対象サーバ56が出力している状態を表すとする。なお、所定の期間とは、例えば1日や1か月などである。また、関係係数とは、例えば、算出部64が算出した任意の収集間隔に対して、収集間隔を調整するための係数である。なお、任意の収集間隔は、例えば、通常時の収集間隔である。また、収集間隔とは、前回のログ収集が行われてから次のログ収集が行われるまでの時間間隔を意味する。算出部64は、例えば、出力速度を実施例1と同様に式(1)を用いて算出する。また、算出部64は、例えば、式(2)を用いて性能値の増加率を算出する。また、算出部64は、例えば、式(3)を用いて収集間隔を算出する。
(性能値の増加率)=(今回の性能値)/(通常時の性能値) ・・・(2)
但し、「性能値の増加率」は出力速度が変化した場合における図9に示す収集部61が収集した性能値の変化量を示す。また、「今回の性能値」は、制御装置5が図11Aに示すステップS42の処理を実行して収集した性能情報の値を示す。また、「通常時の性能値」は、制御装置5が図11Aに示すステップS41の処理を実行して算出した通常時の出力速度における性能情報の値を示す。
(収集間隔)=(通常時の収集間隔)×(関係係数) ・・・(3)
但し、「収集間隔」は制御装置5がログを収集する間隔を示す。あるいは、「収集間隔」は、制御装置5が図11Aに示すステップS42の処理を実行して算出する収集間隔である。また、「通常時の収集間隔」は、制御装置5が図11Aに示すステップS41の処理を実行して設定する収集間隔を示す。また、「関係係数」は、制御装置5が図11Cに示すステップS66の処理を実行して算出した関係係数を示す。
生成部65は、例えば、取得部63から受け取る性能情報とログの出力量を関連付けて、後述する図12A〜図12Dに示す関連テーブル7と後述する図13に示す関連テーブル8をそれぞれ生成し、生成した情報を記憶部62に記憶する。生成部65は、例えば、性能情報とログの出力量に基づいて、少なくとも1項目の性能値が増加しているタイミングで、出力量が増加しているログの種類を特定し、これらの性能情報とログを関連付けたテーブルとして関連テーブル7を生成する。また、生成部65は、例えば、性能情報とログの出力量に基づいて、性能値の増加率と出力速度と関係係数と収集間隔とを関連付けたテーブルとして関連テーブル8を生成する。
また、生成部65は、収集部61が性能情報および出力量を収集すると、既に関連テーブル7が生成されているか否かを判定する。また、生成部65は、収集部61が性能情報および出力量を収集すると、算出部64が算出した性能値の増加率の組み合わせが既に関連テーブル8に記憶されているか否かを判定する。なお、生成部65は、例えば、算出部64が算出した性能値の増加率の組み合わせが、記憶部62に関連テーブル8として既に記憶されている性能値の増加率の組み合わせと一致しているか否かに基づいて、判定する。ただし、生成部65は、必ずしも、算出部64が算出した性能値の増加率の組み合わせが、記憶部62に関連テーブル8として既に記憶されている性能値の増加率の組み合わせと一致している必要はない。つまり、生成部65は、算出部64が算出した性能値の増加率の組み合わせが、記憶部62に関連テーブル8として既に記憶されている性能値の増加率の組み合わせと所定の値(例えば、1%)を誤差の範囲内として一致していると判定してもよい。
設定部66は、例えば、取得部63から性能情報と、後述する関連テーブル7と後述する関連テーブル8とを取得し、取得した情報に基づいて、収集時刻を算出する。
図10Aは、性能情報収集部53の機能ブロック図を示す。性能情報収集部53は、収集部531と取得部532を含む。収集部531は、図9に示す収集部61として機能する。また、取得部532は、図9に示す取得部63として機能する。
図10Bは、性能情報分析部54の機能ブロック図を示す。性能情報分析部54は、取得部541と算出部542と生成部543と設定部544を含む。取得部541は、図9に示す取得部63として機能する。また、算出部542は、図9に示す算出部64として機能する。また、生成部543は、図9に示す生成部65として機能する。また、設定部544は、図9に示す設定部66として機能する。
〔フローチャート〕
制御装置5の処理について説明する。なお、制御装置5は、図5に示すステップS1〜S3の処理を実行する。また、実施例1とは異なる処理として、ステップS1の詳細を説明する。
図11Aは、ステップS1の処理の別例を示す。制御装置5は、ログの出力量を収集し(ステップS21)、通常時の収集間隔を設定し(ステップS41)、性能情報を収集し(ステップS42)、収集時刻を算出し(ステップS43)、収集時刻を通知する(ステップS24)。なお、ステップS41〜S42の処理については後述する。また、ステップS21の処理は、図6Aに示すステップS21と同じため説明を省略する。ステップS43では、図9に示す算出部64が、生成部65が生成した関連テーブル8に基づいて収集間隔を決定する。さらに、算出部64は、取得部63が収集した現在時刻に基づいて収集時刻を算出する。制御装置5は、ステップS24の処理を実行した場合、ステップS21の処理に戻って実行する。なお、ステップS21〜S24の処理は、例えば、所定の間隔(例えば、1分間隔)で繰り返し実行する。
図11Bは、ステップS41の処理の一例を示す。制御装置5は、通常時の収集間隔を設定したか否かを判定し(ステップS51)、ログの特徴を特定し(ステップS22)、通常時の収集間隔を設定する(ステップS52)。ステップS51では、制御装置5は、図9に示す設定部66が通常時の収集間隔を設定したか否かを判定し、判定の結果、通常時の収集間隔を設定していない場合(ステップS51:N)、ステップS22を実行する。一方、ステップS51では、判定の結果、通常時の収集間隔を設定している場合(ステップS51:Y)、ステップS41の処理は終了する。なお、ステップS22は図6Aに示すステップS22の処理と同じため説明を省略する。
ステップS52では、制御装置5は、図9に示す算出部64が算出した出力速度と算出部64が特定したログの特徴に基づいて、出力速度が一定であると仮定した場合の収集間隔を通常時の収集間隔として算出する。さらに、ステップS52では、図9に示す設定部66が、通常時の出力速度と、通常時の性能値を設定する。なお、ステップS52では、制御装置5は必ずしも一度の処理で通常時の収集間隔を決定する必要はない。つまり、制御装置5が、ステップS21およびステップS41を繰り返し実行し、複数(例えば、5回)の通常時の収集間隔を仮に算出し、平均した収集間隔を最終的な通常時の収集間隔として決定してもよい。また、図5に示すステップS1では、制御装置5は、図9に示す算出部64が算出した通常時の収集間隔に基づいて収集時刻を設定してもよい。また、ステップS41の処理は必須ではなく、ユーザが通常時の収集間隔を設定するように構成してもよい。
図11Cは、ステップS42の処理の一例を示す。制御装置5は、性能情報を収集し(ステップS61)、関連テーブル7を生成するか否かを判定し(ステップS62)、関連テーブル7を生成する(ステップS63)。さらに、制御装置5は、性能値の増加率を算出し(ステップS64)、関連テーブル8に記憶されているか否かを判定し(ステップS65)、関連テーブル8を生成する(ステップS66)。ステップS62では、制御装置5は、判定の結果、関連テーブル7を生成する場合は(ステップS62:Y)ステップS63を実行し、関連テーブル7を生成しない場合は(ステップS62:N)ステップS64を実行する。また、ステップS65では、制御装置5は、判定の結果、関連テーブル8に記憶されていない場合は(ステップS65:N)ステップS66を実行し、関連テーブル8に記憶されている場合は(ステップS65:Y)ステップS42の処理を終了する。
ステップS61では、図9に示す収集部61が性能情報を収集する。
ステップS62では、生成部65が後述する図12A〜図12Dに示す関連テーブル7を生成するか否かを判定する。なお、ステップS62の処理は、既に関連テーブル7が生成されているか否かに基づいて判定してもよい。また、制御装置5は予めステップS63の処理を実行する任意の回数を決定し、ステップS62では、ステップS63の実行済み回数に基づいて、関連テーブル7を生成するか否かを判定してもよい。
ステップS63では、図9に示す生成部65が性能情報の値の変化とログの出力量の変化に基づいて、後述する図12A〜図12Dに示す関連テーブル7を生成する。また、ステップS63では、生成部65が必ずしも一度の処理で関連テーブル7を生成する必要はない。つまり、制御装置5は、ステップS63の処理を複数回実行し関連テーブル7を生成する。これにより、収集部61が性能情報および出力量の異常値を収集した場合に、誤った関連テーブル7を生成することを抑制することができる。
ステップS64では、図9に示す算出部64が性能値の増加率を算出する。性能値の増加率は、例えば、前述した式(2)に基づいて算出される。
ステップS65では、生成部65が、算出部64が算出した性能値の増加率の組み合わせが関連テーブル8に記憶されているか否かを判定する。
ステップS66では、図9に示す生成部65が出力速度と性能値の増加率に基づいて関連テーブル8を生成する。
制御装置5が複数種類のログを収集しようとする場合、図9に示す生成部65は、複数の性能項目に基づいて関連テーブル7を生成することが望ましい。図8に示す監視対象サーバ56のネットワークやシステムの状態は、例えば、性能情報として、制御装置5が収集するため、性能情報の推移とログの出力量の推移を合わせて収集(監視)することにより、ログの出力量の増加契機を検知することができる。しかしながら、監視対象サーバ56の性能情報は多種多様であり、各性能項目それぞれが関連しあっているため、特定の性能項目の監視だけでは、特定の種類に注目してログの出力量の増減を検知することは困難である。そのため、制御装置5は、複数の性能項目を監視することで、性能項目と関連する種類のログを特定することが期待できる。
図12A〜図12Dは、関連テーブル7の一例を示す。関連テーブル7は、性能情報の項目と特定の種類のログとの関連を表すテーブルである。関連テーブル7は、例えば、性能情報71とログの種類72を含む。関連テーブル7は、ログの出力量の増加と同時に性能値が上昇している性能項目に対して丸印で示す。性能情報71の詳細については後述する。ログの種類72は、例えば、「アクセスログ」(図7に示す、アクセスログ NCSA形式(初期形式)と同様)と、「コマンドが出力するログ」(図7に示す、コマンドが出力するログと同様)を含む。図12A〜図12Dに示す関連テーブル7の例では、例えば、「アクセスログ」と「コマンドが出力するログ」のそれぞれの出力量の増加に関連して、丸印に示す性能情報71の値が上昇している傾向があることが分かる。
性能情報71は、例えば、図12Aに示すページフォルト数、CPU使用率、ディスクビジー率、実メモリ使用率、ページファイル使用率、プロセス数、プロセッサ待ちスレッド数、ディスク使用率、ディスク待ち要求数などである。また、性能情報71は、例えば、図12Bに示す受信バイト数、送信バイト数、回線使用率、受信パケット率、破棄パケット率、エラーパケット率、セグメント使用率、コリジョン発生率、リクエスト数などである。また、性能情報71は、例えば、図12Cに示す単位時間内でのInput / Output(I/О)完了待ち時間率、ディスクからの読み込み回数、ディスクへの書き込み回数、Read / Write(R/W)待ち時間、Structured Query Language(SQL)文実行回数、デッドロック回数、占有待ち回数、などである。また、性能情報71は、例えば、図12Dに示す物理読み込み回数、最大処理待ち時間A、最大処理待ち時間B、コネクション数関連、レスポンス数関連などである。図12A〜図12Dは、例えば、Webサーバが出力するログは、受信バイト数、送信バイト数、回線使用率などの性能情報71と関連して出力されることを示す。また、図12A〜図12Dは、例えば、アプリケーションサーバが出力するログは、CPU使用率、実メモリ使用率、ディスク使用率などの性能情報71と関連して出力されることを示す。
ページフォルト数は、例えば、プログラムがアクセスしようとした仮想メモリ領域が物理メモリ上に無く、ハードディスクなどに退避されていることが分かったときに発生する処理の数である。
CPU使用率は、例えば、コンピュータが実行中のプログラムがCPUの処理時間を占有している割合または総和である。
ディスクビジー率は、例えば、コンピュータ上のディスク毎の負荷の偏りなどを示す割合である。
実メモリ使用率は、例えば、コンピュータの物理メモリの使用率、主記憶装置の記憶容量に対してコンピュータが使用している容量の割合などである。
ページファイル使用率は、例えば、使われていないメモリ領域の内容を一時的に保管しておくためにOSがHDDなどのストレージに作成する仮想メモリ(ページファイル)の内の利用可能な記憶容量に対する、使用している記憶容量の割合である。
プロセス数は、例えば、システム上で動作しているプロセスの数である。
プロセッサ待ちスレッド数は、例えば、マルチスレッドで動作しているスレッドのうち、処理待ち状態となっているスレッドの数である。
ディスク使用率は、例えば、使用しているディスクの割合である。
ディスク待ち要求数は、例えば、ディスクへアクセスを待っているシステム要求数である。
受信バイト数は、例えば、システムが受信したバイト量である。
送信バイト数は、例えば、システムが送信したバイト量である。
回線使用率は、回線の容量に対して、伝送可能なデータの割合などである。
受信パケット率は、例えば、コンピュータがネットワークから受信を成功するパケットの割合である。
破棄パケット率は、例えば、ネットワーク上で破棄されるパケットの割合である。
エラーパケット率は、例えば、送信または受信されなかったパケットや、受信したパケットに誤りが検出されたパケットの割合である。
セグメント使用率は、例えば、分割されたネットワークやデータの使用率を表す割合である。
コリジョン発生率は、例えば、複数のホストからほぼ同時にデータが送信されることによって発生する信号の衝突現象の発生割合である。
リクエスト数は、例えば、サーバ上のファイルにアクセスした数である。
単位時間内でのI/О完了待ち時間率は、例えば、単位時間内(例えば、製品が性能を収集する間隔であって、1分間など)で、I/Oの完了待ちをしている時間の割合である。
ディスクからの読み込み回数は、例えば、コンピュータ上のディスクからデータを読み出した回数である。
ディスクへの書き込み回数は、例えば、コンピュータ上のディスクにデータを書き込んだ回数である。
R/W待ち時間は、例えば、コンピュータ上のディスクからデータを読み出す処理や、コンピュータ上のディスクにデータを書き込む処理の待ち時間である。
SQL文実行回数は、例えば、データベースの管理システムなどへユーザや外部のソフトウェアから命令を発行するために用いるSQL文を実行する回数である。
デッドロック回数は、デッドロックの発生回数である。
占有待ち回数は、例えば、アプリケーションの動作状況、システム資源の使用情報およびアプリケーションによって獲得される資源の占有待ちをした回数である。
物理読み込み回数は、例えば、SQL文のストレージ・デバイスからのデータの読み込み(物理読み込み)の回数である。
最大処理待ち時間Aは、クライアントアプリケーションからの要求を受け付けてからサーバアプリケーションの処理を開始するまでの時間で収集間隔内の最大の処理待ち時間である。
最大処理待ち時間Bは、性能情報の収集間隔内に処理されたオペレーションの最大の処理待ち時間である。
コネクション数関連は、例えば、通信を行う機器やソフトウェアの間に確立された仮想的な専用通信路の数に関する情報である。
レスポンス数関連は、例えば、コンピュータやシステムが送ったデータに対する、応答の数に関連する情報である。
図13は、関連テーブル8の一例を示す。関連テーブル8は、図9に示す生成部65が出力速度と性能情報に基づいて生成するテーブルである。また、図13に示す関連テーブル8は、図12A〜図12Dに示す関連テーブル7に基づいて、ログの種類72が「アクセスログ」である場合について説明する。なお、図13では、一例として、500MBでログファイルがローテーションし、通常時の出力速度が1MB/分であるとする。また、出力速度の増加時に、Central Processing Unit(CPU)使用率81、ディスクビジー率82、プロセッサ待ちスレッド数83、リクエスト数84の性能情報の値(性能値)が増加するログを例に説明する。なお、出力速度が1MB/分の場合の性能値はそれぞれ、CPU使用率81が10%、ディスクビジー率82が20%、プロセッサ待ちスレッド数83が5(個)、リクエスト数84が10(個)とする。また、出力速度が2MB/分になった場合の性能値はそれぞれ、CPU使用率81が20%、ディスクビジー率82が30%、プロセッサ待ちスレッド数83が15(個)、リクエスト数84が20(個)とする。このとき、性能項目ごとに性能値の単位が異なるため増加率に換算し、比較してもよい。この場合、それぞれの増加率は、CPU使用率81が200%、ディスクビジー率82が150%、プロセッサ待ちスレッド数83が300%、リクエスト数84が200%となる。通常時の関係係数85を「1」とし、収集間隔86を「8時間」とする場合、出力速度が2MB/分である時の関係係数85と収集間隔86を決定する。図13では一例として、出力速度が2MB/分である時の関係係数85を「0.5」とし、収集間隔86を「4時間」と決定する。このように、出力速度と性能情報との関係を関連テーブルとして記憶し、制御装置1が収集した性能情報について性能値の増加率の組み合わせが関連テーブル8と一致する場合、制御装置1は、同じ関連テーブル8に記憶されている収集間隔86に設定する。つまり、例えば、CPU使用率81が200%、ディスクビジー率82が150%、プロセッサ待ちスレッド数83が300%、リクエスト数84が200%の性能値の増加率の組み合わせとなった場合、収集間隔86を4時間に設定する。ログの種類が異なる場合、図13に示す性能項目の値が増加するとは限らない。そのため、複数の種類のログを収集する場合は、それぞれの種類のログに応じて、関連テーブル8を生成するのが良い。
ここで、実施例1と実施例2の対比について説明する。実施例1では、ログの出力量を収集することで、ログ収集のタイミング(収集間隔)が決定される。ただし、前述のように、実施例1の態様では、ログの出力量に基づいて正しい出力速度を算出できない場合がある。この場合にはログの出力量を再度、収集し直す必要が生じる。また、リアルタイム収集に関する問題で説明したように、ログやログの出力量を取得する処理は、監視対象サーバに対する負荷を発生させる。
上記の問題に対し、発明者は、ログの出力量と監視対象サーバの性能情報(として取得された性能値)には相関関係があることを新たに見出した。また、出力量と相関がある性能情報の項目は、ログの種別に応じて異なるものになることに着目した。
運用管理システムにおいては、ハードウェアが正常に動作しているか否かの監視等を目的として、ログを収集する処理とは別に、性能情報を収集する態様が多くある。性能情報を利用すれば、収集されるログやログの出力量の情報に依存せずに、ログの収集タイミングを適切に決定することができる。したがって、実施例1に関して説明した問題を回避することができる。
上記事項を踏まえ、実施例2で説明した制御装置5は、例えば、実施例1にかかる制御装置1とは異なり、性能情報を利用する。制御装置5は、図12A〜図12Dに示す関連テーブル7を生成し、性能情報と関連するログの種類を特定する。さらに、制御装置5は、図13に示す関連テーブル8を生成し、性能値の変化とログの出力量の変化を関連付けて記憶する。こうすることで、制御装置5は、性能情報に基づいて収集間隔を決定できるようになる。つまり、制御装置5は、特定の性能情報から特定のログの収集間隔を決定することができる。さらに、制御装置5は、性能情報とログの出力量を収集する処理を繰り返し実行し、収集した性能情報とログの出力量に応じて、関連テーブル8を生成する処理を実行することで、様々な性能値に応じた関連テーブル8を記憶する。このとき、制御装置5は、例えば、収集した性能値とログの出力量が既に関連テーブル8として記憶されている場合、収集した性能値と既に記憶してある関連テーブル8に基づいて、収集間隔を決定する。そのため、ログの出力速度や関係係数をより少ない処理負荷で特定することが可能となる。
実施例2の制御装置5の処理は、例えば、初めてステップS1を実行する場合、関連テーブル7と関連テーブル8を生成する処理を必要とするため、制御装置1に比べて制御装置5の方が、処理負荷が大きくなる可能性はある。しかしながら、上述したように、実施例2の制御装置5は、例えば、ステップS1の処理を繰り返し実行する度に、関連テーブル7および関連テーブル8を生成する処理を実行する頻度が減少し、制御装置5にかかる処理負荷は軽減される。これに対し、実施例1の制御装置1は、ステップS1の処理を繰り返し実行した場合であっても、制御装置1にかかる処理負荷は軽減されない。したがって、制御装置5は、一連の処理を繰り返し実行する場合、制御装置1が同様に処理を実行した場合と比べて、制御装置5にかかる処理負荷は軽減できる。
制御装置5によれば、性能値に応じた収集時刻を設定し、収集していないログが削除される前に設定した収集時刻でログを収集することによって、ログを収集する頻度を減らし、ログを出力する情報処理装置にかかる処理負荷を軽減しつつログを欠損なく収集することができる。
また、制御装置5によれば、ログの出力速度と性能情報との関係に基づいて収集時刻を設定するため、ログの出力量に応じてログを欠損なく収集することができる。
また、制御装置5によれば、複数の性能情報の組み合わせに基づいて収集時刻を設定するため、収集するログの種類に応じた収集時刻を設定することができる。
また、制御装置5によれば、ログの出力量と性能値に基づいて収集間隔を決定するため、ログを欠損しない時間の範囲内で、できるだけログを収集しないようにすることができる。そのため、頻繁にログを収集することによって生じる図8に示す監視対象サーバ56および制御装置5にかかる処理負荷を軽減することができる。
また、制御装置5によれば、性能情報を取得し、取得した性能情報と出力速度を関連付けて記憶し、性能値の変化を監視することによって、ログの出力速度の変化を検知することができる。
また、制御装置5は、例えば、算出した時間が経過するまでにログを収集することで、頻繁にログを収集する必要がなくなり、ログを収集する際に情報処理装置の業務に与える影響を軽減することができる。
また、制御装置5は、例えば、ログの収集間隔を決定し、決定した収集間隔でログを収集する前に、ログの出力速度が変化し改めて収集間隔を再決定した場合、より短い収集間隔に基づいてログを収集してもよい。こうすることで、制御装置5がログを欠損するリスクを回避することができる。
なお、制御装置5は、実施例1で説明した制御装置1と同様に、ユーザが設定する収集時刻を考慮した収集時刻の制御を行うこともできる。すなわち、制御装置5は、例えば、ユーザが設定する収集時刻と図9に示す設定部66が設定する収集時刻を比較し、ログ収集のタイミングがより早くなる収集時刻でログを収集する(早くなる収集時刻を優先的に採用する)こととしてもよい。あるいは、制御装置5は、ユーザが設定する収集時刻と図9に示す設定部66が設定する収集時刻を比較し、制御装置5がログを欠損する場合にのみ設定部66が設定する収集時刻でログを収集することとしてもよい。こうすることで、制御装置5はユーザが設定する収集時刻でログを収集しながら、ログを欠損するリスクを回避することができる。
〔ハードウェア構成図〕
図14は、実施例1および実施例2に係るハードウェア構成の一例を示す。制御装置1は、例えば、それぞれがバス91で相互に接続された、CPU92、メモリ93、記憶装置94、Network Interface Card(NIC)95、媒体読取装置96、入力装置97、表示装置98を備える情報処理装置である。
CPU92は、制御装置1あるいは制御装置5が実行する各種の動作制御を行う。CPU92は、メモリ93あるいは記憶装置94に記憶されたプログラムを読み出して処理、制御を実行するプロセッサである。CPU92による処理、制御によって、制御装置1あるいは制御装置5の各機能部が実現されてもよい。
メモリ93、記憶装置94は、実施例1、2で説明した各種の処理を実行するプログラムや、各種の処理に利用されるデータを記憶することができる。記憶装置94は、例えば、HDD、SSD等の記憶媒体である。また、メモリ93、記憶装置94のそれぞれは、例えば、記憶部32あるいは記憶部62として機能することができる。また、記憶部32あるいは記憶部62は、必ずしも記憶装置94に記憶される必要はない。つまり、制御装置1あるいは制御装置5の外部にある記憶装置に記憶される構成であってもよい。
NIC95は、有線または無線のネットワークを介したデータの送受信に用いられるハードウェアである。
媒体読取装置96は、記憶媒体からデータを読み取る装置である。媒体読取装置96は、例えば、Compact Disc Read Only Memory(CD−ROM)やDigital Versatile Disc(DVD)等のディスク媒体に記憶されたデータを読み取るディスクドライブや、メモリーカードに記憶されたデータを読み取るカードスロット等である。図3に示す記憶部32あるいは図9に示す記憶部62に記憶されるデータの一部または全部は、媒体読取装置96を用いて読み取り可能な記録媒体に記憶されることとしてもよい。
入力装置97は、制御装置1あるいは制御装置5のユーザから入力や指定を受け付ける装置である。また、入力装置97は、例えば、キーボードやマウス、タッチパッド等である。
表示装置98は、CPU92の制御の下で、各種の情報を表示する。また、表示装置98は、例えば、液晶ディスプレイである。
図14に示した各装置の各構成要素は、必ずしも物理的に図14のように構成されていることを要しない。つまり、各装置の分散・統合の具体的な形態は図14のものに限らず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをPCやワークステーション等のコンピュータで実行することによって実現することができる。