(57)【要約】【課題】  ログが伝送される通信路の負荷を軽減しつつ、ログ送信装置のオーバヘッドを削減する。【解決手段】  ログ送信装置からログを受信する情報処理装置において、ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理する管理部と、ログ管理情報をログ送信装置に送信する送信部と、ログ送信装置がログ管理情報に基づいて頻出ログ情報を識別子に変換したログを受信する受信部とを有する。【選択図】    図１
2019106001.tif 000002
【特許請求の範囲】
【請求項１】
ログ送信装置からログを受信する情報処理装置において、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理する管理部と、
前記ログ管理情報を前記ログ送信装置に送信する送信部と、
前記ログ送信装置が前記ログ管理情報に基づいて前記頻出ログ情報を前記識別子に変換したログを受信する受信部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記管理部は、
前記ログ送信装置から受信するログに含まれる前記複数のログ情報の各々と、各ログ情報を含むログに対応するパスとの組み合わせ毎にログ情報の受信回数を管理する回数管理部と、
前記受信回数が所定の閾値に到達したログ情報を前記頻出ログ情報に決定し、決定した前記頻出ログ情報に前記識別子を付与する付与部と
を備え、
前記送信部は、前記付与部が前記識別子を付与する毎に、付与した前記識別子を含む前記ログ管理情報を、付与した前記識別子を含む前記ログ管理情報に含まれるパスに対応する前記ログ送信装置に送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、
前記複数のログ情報の各々とパスと前記受信回数との組み合わせがそれぞれ格納される複数の記憶領域を含む第１の記憶部と、
前記頻出ログ情報とパスと前記識別子との組み合わせがそれぞれ格納される複数の記憶領域を含む第２の記憶部を備え、
前記回数管理部は、前記ログ送信装置から受信したログに基づいて、前記複数のログ情報の各々とパスと前記受信回数とを前記第１の記憶部の複数の記憶領域のいずれかに格納し、
前記付与部は、前記第１の記憶部において前記受信回数が前記所定の閾値に到達した記憶領域が保持するログ情報を頻出ログ情報として、パスおよび付与した識別子とともに前記第２の記憶部の空いている記憶領域に格納することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記回数管理部は、前記ログ送信装置からのログの受信間隔より長い一定時間毎に、前記ログ送信装置から受信した複数のログに基づいて前記記憶部が保持する情報を更新することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、所定のサービスを実行する複数のサービス実行部のそれぞれによりログが格納される複数の前記格納場所のそれぞれに対応する複数の前記ログ送信装置からログを受信し、互いに同じサービスを実行する複数のサービス実行部の各々がログを格納する前記格納場所を示すパスは共通であり、
前記管理部は、複数の前記ログ送信装置の各々と、複数の前記ログ送信装置の各々に対応する前記格納場所を示すパスとの組み合わせを示す装置管理情報を管理し、
前記管理部は、さらに、
前記装置管理情報に基づいて、パスが共通のサービス実行部に対応する前記ログ送信装置の各々に、共通のパスに対応する前記ログ管理情報を送信する指示を前記送信部に発行する共通情報管理部を備えることを特徴とする請求項１ないし請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
前記管理部は、さらに、
受信したログに基づいてログ送信装置とパスとの新たな組み合わせを検出した場合、前記新たな組み合わせに含まれるパスを含む前記ログ管理情報を前記新たな組み合わせに含まれるログ送信装置に送信する指示を前記送信部に発行する新規管理部を備えることを特徴とする請求項１ないし請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
前記識別子の情報量は、前記頻出ログ情報の情報量よりも小さいことを特徴とする請求項１ないし請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を、ログを管理する管理装置から受信する受信部と、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定する判定部と、
前記判定部が一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換する変換部と、
前記変換部が変換した識別子を含むログを前記管理装置に送信する送信部と
を備えることを特徴とする情報処理装置。
【請求項９】
ログを送信する第１の情報処理装置と、前記第１の情報処理装置から受信するログを管理する第２の情報処理装置とを備える情報処理システムにおいて、
前記第１の情報処理装置は、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を前記第２の情報処理装置から受信する受信部と、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定する判定部と、
前記判定部が一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換する変換部と、
前記変換部が変換した識別子を含むログを前記第２の情報処理装置に送信する送信部と
を備え、
前記第２の情報処理装置は、
前記ログ管理情報を管理する管理部と、
前記ログ管理情報を前記第１の情報処理装置に送信する送信部と、
前記第１の情報処理装置の前記変換部が変換した識別子を含むログを受信する受信部と
を備えることを特徴とする情報処理システム。
【請求項１０】
ログ送信装置からログを受信する情報処理装置に、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理し、
前記ログ管理情報を前記ログ送信装置に送信し、
前記ログ送信装置が前記ログ管理情報に基づいて前記頻出ログ情報を前記識別子に変換したログを受信する
処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
情報処理装置の動作に伴って生成されるログを、ネットワークを介してログの管理装置に送信する場合、ネットワークに負荷が掛かる。そこで、ネットワークの負荷を軽減するために、ログに含まれる所定の文字列を文字列より短い文字列情報に変換した後、管理装置に送信する手法が提案されている（例えば、特許文献１、２参照）。計算機による複数回のシミュレーションの結果として出力される複数のログデータにおいて、複数回出現する文字列を固有の数字に置き換えることで、ログデータを記憶する記憶領域の使用量を削減する手法が提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５７４４号公報
【特許文献２】特開２０１４−１６７５８号公報
【特許文献３】特開２００８−２１００７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ログに含まれる文字列等のメッセージの種類とメッセージの発生頻度とは、ログの発生元であるサービスの種類によって異なる。このため、複数種のサービスが出力するログに含まれる複数のメッセージのうち、所定の文字列に置き換えるメッセージを複数種のサービスで共通に決めた場合、サービスによってはログが効率的に圧縮されないおそれがある。ログが効率的に圧縮されないと、ログが伝送される通信路の負荷が十分に軽減されない。
【０００５】
１つの側面では、本発明は、ログが伝送される通信路の負荷を軽減しつつ、ログ送信装置のオーバヘッドを削減することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施態様では、ログ送信装置からログを受信する情報処理装置において、ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理する管理部と、ログ管理情報をログ送信装置に送信する送信部と、ログ送信装置がログ管理情報に基づいて頻出ログ情報を識別子に変換したログを受信する受信部とを有する。
【０００７】
別の実施態様では、情報処理装置は、ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を、ログを管理する管理装置から受信する受信部と、ログ管理情報に含まれるパスで示される格納場所に格納されたログに含まれるログ情報が、ログ管理情報に含まれる頻出ログ情報と一致するかを判定する判定部と、判定部が一致を判定した頻出ログ情報をログ管理情報に含まれる識別子に変換する変換部と、変換部が変換した識別子を含むログを管理装置に送信する送信部とを有する。
【発明の効果】
【０００８】
１つの側面では、本発明は、ログが伝送される通信路の負荷を軽減しつつ、ログ送信装置のオーバヘッドを削減することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置、情報処理システムおよびプログラムの一実施形態を示す図である。
【図２】図１に示す情報処理システムの動作の一例を示す図である。
【図３】情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す図である。
【図４】図３に示す各処理サーバにおけるログデータベースに格納されるログファイルのディレクトリ構成の一例を示す図である。
【図５】図３に示す処理サーバが有する頻出メッセージ抽出テーブルの一例を示す図である。
【図６】図３に示す管理サーバが有する統計テーブル、頻出メッセージ管理テーブルおよび対応ホスト管理テーブルの一例を示す図である。
【図７】図３に示す情報処理システムの動作の一例を示す図である。
【図８】図３に示す情報処理システムにおいて、対応ホスト管理テーブルが更新される動作の一例を示す図である。
【図９】図３に示す処理サーバの動作の一例を示す図である。
【図１０】図３に示す管理サーバの動作の一例を示す図である。
【図１１】図１に示す管理装置および図３に示す管理サーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、情報処理装置、情報処理システムおよびプログラムの一実施形態を示す。図１に示す情報処理システム１００は、ログ送信装置１０と、ログ送信装置１０を管理する管理装置２０とを有する。ログ送信装置１０は、第１の情報処理装置の一例であり、管理装置２０は、第２の情報処理装置の一例である。図１では、１つのログ送信装置１０が管理装置２０に接続されるが、複数のログ送信装置１０が管理装置２０に接続され、管理装置２０が複数のログ送信装置１０を管理してもよい。また、ログ送信装置１０および管理装置２０は、ネットワークを介して接続されてもよい。
【００１２】
ログ送信装置１０は、サービス実行部１１、ログデータベース１２、受信部１３、頻出ログ情報保持部１４、判定部１５、変換部１６および送信部１７を有する。受信部１３、判定部１５、変換部１６および送信部１７の機能は、ログ送信装置１０が有するＣＰＵ（Central Processing Unit）等のプロセッサが、ログ送信装置１０が有するメモリ等に格納されるプログラムを実行することにより実現される。なお、受信部１３、判定部１５、変換部１６および送信部１７の機能は、ログ送信装置１０が有するＦＰＧＡ（Field-Programmable Gate Array）等のハードウェアにより実現されてもよい。
【００１３】
サービス実行部１１は、ユーザ等が操作する図示しない端末装置からの指示に基づいて各種のサービスを実行し、サービスの実行履歴（イベントやエラー等）を示す複数のログをログデータベース１２の所定の格納場所に格納する。サービス実行部１１は、ログの発生元の一例である。例えば、サービス実行部１１は、クラウドサービスまたはマイクロサービス等を実現するために使用される。
【００１４】
特に限定されないが、各ログは、サービスの実行に伴って発生する各種のイベント等の発生日時を示す時刻情報と、実行履歴等を示す複数のログ情報とを含む。そして、サービス実行部１１がサービス毎に発生するログは、サービス毎にログデータベース１２に割り当てられる格納場所にログファイルとして格納される。例えば、ログファイルの格納場所は、図４で説明するようにパスにより示される。
【００１５】
例えば、サービス実行部１１は、ログ送信装置１０が有する図示しないＣＰＵ等のプロセッサ、メモリ等の記憶装置およびＨＤＤ（Hard Disk Drive）等のストレージ装置等の物理リソースを仮想化した仮想マシンにより実現される。なお、サービス実行部１１は、物理リソースにより実現されてもよい。また、サービス実行部１１およびログデータベース１２は、ログ送信装置１０の外部に配置される他の情報処理装置に設けられてもよい。
【００１６】
受信部１３は、ログ管理情報を管理装置２０から受信し、受信したログ管理情報を頻出ログ情報保持部１４に格納する。ログ管理情報は、ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を含むログの格納場所を示すパスと、頻出ログ情報を識別する識別子とを含む。識別子は、例えば、文字列や数字列であり、識別子の情報量は、頻出ログ情報の情報量よりも小さい。
【００１７】
頻出ログ情報保持部１４は、頻出ログ情報とパスと識別子とが格納される領域を含む複数のレコード（行領域）を有する。後述するように、頻出ログ情報は、管理装置２０により検出され、識別子は、検出された頻出ログ情報に対応して管理装置２０により付与される。
【００１８】
判定部１５は、頻出ログ情報保持部１４に保持されたログ管理情報を参照し、ログデータベース１２に格納されたログに含まれるログ情報が、頻出ログ情報と一致するかをパス毎（すなわち、サービス毎）に判定する。判定部１５は、ログに含まれるログ情報とログの格納場所を示すパスとの組み合わせが、頻出ログ情報保持部１４に保持された頻出ログ情報とパスとの組み合わせと一致する場合、一致した頻出ログ情報とパスとを変換部１６に通知する。なお、判定部１５は、ログ情報と一致した頻出ログ情報を保持する頻出ログ情報保持部１４におけるレコードの位置を変換部１６に通知してもよい。
【００１９】
変換部１６は、判定部１５からの通知に基づいて、判定部１５から通知された頻出ログ情報とパスとの組み合わせに対応して頻出ログ情報保持部１４に保持された識別子を取得する。そして、変換部１６は、判定部１５から通知された頻出ログ情報を、取得した識別子に変換することで、頻出ログ情報が識別子に変換されたログを生成する。
【００２０】
送信部１７は、変換部１６が変換した識別子を含むログを管理装置２０に送信する。判定部１５が、ログデータベース１２に格納されたログに含まれるログ情報と頻出ログ情報とが一致しないことを判定した場合、ログデータベース１２に格納されたログは、変換部１６により変換されることなく管理装置２０に送信される。また、送信部１７は、送信するログが格納されたログデータベース１２におけるログの格納場所を示すパスの情報と、ログ送信装置１０を識別する装置情報とを、ログとともに管理装置２０に送信する。
【００２１】
なお、上述したように、識別子の情報量は、頻出ログ情報の情報量よりも小さいため、頻出ログ情報を識別子に変換しない場合に比べて、ログ送信装置１０から管理装置２０に送信されるログの転送量を削減することができる。これにより、ログが伝送される通信路の負荷を軽減することができる。また、送信部１７は、変換部１６を介してログデータベース１２から出力される複数のログを圧縮した後、圧縮したログを管理装置２０に送信してもよい。この場合、管理装置２０は、圧縮されたログを解凍する機能を有する。
【００２２】
管理装置２０は、受信部２１、管理部２２、ログ情報保持部２６、頻出ログ情報保持部２７、ログデータベース２８および送信部２９を有する。管理部２２は、回数管理部２３および付与部２４を有する。管理部２２は、頻出ログ情報と、識別子と、ログの発生元毎に割り当てられるログの格納場所（ログデータベース１２内）を示すパスとの対応を示すログ管理情報を管理する。
【００２３】
受信部２１、管理部２２および送信部２９の機能は、管理装置２０が有するＣＰＵ等のプロセッサが、管理装置２０が有するメモリ等に格納されるプログラムを実行することにより実現される。なお、受信部２１、管理部２２および送信部２９の機能は、管理装置２０が有するＦＰＧＡ等のハードウェアにより実現されてもよい。
【００２４】
受信部２１は、ログ送信装置１０から送信されるログを受信し、受信したログをログデータベース２８に格納するとともに回数管理部２３に転送する。ログデータベース２８に格納されたログに含まれる識別子は、例えば、頻出ログ情報保持部２７を参照することで、元の頻出ログ情報に変換される。なお、受信部２１が受信したログがログデータベース２８に格納される前に、受信したログに含まれる識別子が頻出ログ情報に変換されてもよい。ログデータベース２８に格納されたログは、ログの解析等に使用される。
【００２５】
回数管理部２３は、受信部２１から転送されるログに含まれる複数のログ情報の各々と、ログデータベース１２におけるログの格納場所を示すパスとをログ情報保持部２６に格納する。また、回数管理部２３は、ログ情報とパスとの組み合わせ毎のログ送信装置１０からの受信回数をログ情報保持部２６に格納する。例えば、ログ情報保持部２６は、ログ情報とパスと受信回数とが格納される領域を含む複数のレコードを有する。ログ情報保持部２６は、記憶部の一例であり、レコードは、記憶領域の一例である。
【００２６】
付与部２４は、ログ情報保持部２６に保持された受信回数が所定の閾値（例えば、１００回）に到達したログ情報を頻出ログ情報に決定し、決定した頻出ログ情報に識別子を付与する。付与部２４は、付与した識別子を、頻出ログ情報およびパスの組み合わせとともに頻出ログ情報保持部２７の空いているレコードに格納する。すなわち、付与部２４は、頻出ログ情報とパスと識別子とを含むログ管理情報を頻出ログ情報保持部２７に格納する。頻出ログ情報保持部２７は、ログ管理情報が格納される領域を含む複数のレコードを有する。頻出ログ情報保持部２７は、記憶部の一例である。なお、１つの情報保持部が、ログ情報保持部２６と頻出ログ情報保持部２７との代わりに管理装置２０に設けられてもよい。この場合、情報保持部は、例えば、ログ情報保持部２６の各レコードに識別子を格納する領域を追加することで設けられる。
【００２７】
送信部２９は、頻出ログ情報保持部２７に格納されたログ管理情報を、ログ送信装置１０に送信する。例えば、送信部２９は、付与部２４によりログ管理情報が頻出ログ情報保持部２７に格納される毎に、頻出ログ情報保持部２７に格納されたログ管理情報をログ送信装置１０に送信する。換言すれば、送信部２９は、付与部２４により識別子が付与される毎に、付与した識別子を含むログ管理情報をログ送信装置１０に送信する。これにより、管理装置２０で検出したパス毎の頻出ログ情報と、頻出ログ情報に対応して付与された識別子とを含むログ管理情報を迅速にログ送信装置１０に送信することができる。この結果、ログ送信装置１０は、管理装置２０による頻出ログ情報の検出に基づいて、頻出ログ情報を識別子に変換する処理を迅速に開始することができる。
【００２８】
ログ情報の受信回数を保持するログ情報保持部２６とは別に、識別子を含むログ管理情報を保持する頻出ログ情報保持部２７を設けることで、送信部２９は、頻出ログ情報保持部２７のみにアクセスすることで、識別子を含むログ管理情報を取得できる。すなわち、頻出ログ情報保持部２７の該当レコードにアクセスだけで、頻出ログとパスと識別子とを含むログ管理情報を取得することができる。
【００２９】
図２は、図１に示す情報処理システム１００の動作の一例を示す。特に限定されないが、付与部２４は、同じ組み合わせのログ情報とパスとを、所定の閾値である１００回受信した場合、受信したログ情報を頻出ログ情報として検出するとする。
【００３０】
回数管理部２３は、ログ送信装置１０からログを受信する毎に、受信したログに含まれるログ情報とパスとの組み合わせを、受信回数とともにログ情報保持部２６に格納する。
【００３１】
状態（１）では、ログに含まれるログ情報”error”と、ログ情報”error”を含むログの格納場所を示すパス”/aa”とがログ情報保持部２６に保持される。ログ情報”error”とパス”/aa”との組み合わせの受信回数は、７８回である。また、ログに含まれるログ情報”file not found”と、ログ情報”file not found”を含むログの格納場所を示すパス”/bb”とがログ情報保持部２６に保持される。ログ情報”file not found”とパス”/bb”との組み合わせの受信回数は、４６回である。
【００３２】
さらに、ログに含まれるログ情報”error”と、ログ情報”error”を含むログの格納場所を示すパス”/bb”とがログ情報保持部２６に保持される。ログ情報”error”とパス”/bb”との組み合わせの受信回数は、２回である。
【００３３】
状態（１）に示すように、同じログ情報”error”であっても、パスが異なる場合、受信回数が異なる場合がある。これは、サービスの内容が異なる場合、出力されるログの内容とログ情報の発生頻度が異なるためである。このため、管理部２２は、ログ情報が互いに同じ場合でも（”error”）、ログ情報を含むログの格納場所を示すパスが異なる場合、パス毎に受信回数を分けて管理する。なお、”error”等のログ情報は、文字列（テキストデータ）である。
【００３４】
状態（１）では、受信回数が１００回以上のログ情報とパスとの組み合わせがログ情報保持部２６に存在しない。このため、付与部２４は、頻出ログ情報を検出せず、頻出ログ情報保持部２７、１４は、空である。
【００３５】
状態（２）において、ログ情報保持部２６に保持されたログ情報”error”とパス”/aa”との組み合わせの受信回数が１００回になったことに基づいて、付与部２４は、パス”/aa”に対応するログ情報”error”を頻出ログ情報に決定する。付与部２４は、パス”/aa”に対応する頻出ログ情報”error”に識別子”Ａ”を付与する。例えば、識別子”Ａ”は、文字列”Ａ”である。付与部２４は、付与した識別子”Ａ”を、頻出ログ情報”error”およびパス”/aa”の組み合わせとともに、ログ管理情報として頻出ログ情報保持部２７に格納する。
【００３６】
送信部２９は、頻出ログ情報保持部２７に格納されたログ管理情報を、ログ送信装置１０に送信する。例えば、付与部２４は、ログ管理情報を格納した頻出ログ情報保持部２７のレコードを示す情報を送信部２９に通知する。送信部２９は、付与部２４から通知されたレコードに格納されたログ管理情報をログ送信装置１０に送信する。これにより、ログ管理情報が頻出ログ情報保持部２７に格納される毎に、頻出ログ情報保持部２７に格納されたログ管理情報を、ログ送信装置１０に送信することができる。また、管理装置２０は、ログ送信装置１０から受信する実際のログに基づいて、頻出ログ情報を管理するログ情報保持部２６および頻出ログ情報保持部２７を動的に更新することができる。すなわち、人手を介することなく、頻出ログ情報を自動的に更新することができる。
【００３７】
ログ送信装置１０の受信部１３は、受信したログ管理情報を頻出ログ情報保持部１４に格納する。そして、ログ送信装置１０は、頻出ログ情報保持部１４に保持されたログ管理情報に基づいて、ログに含まれるログ情報を識別子に変換し、変換した識別子を含むログを管理装置２０に送信する。
【００３８】
例えば、判定部１５は、頻出ログ情報保持部１４を参照し、パス”/aa”で示される格納場所に格納されたログに含まれる複数のログ情報の中に、頻出ログ情報”error”が存在するかを判定する。そして、判定部１５は、頻出ログ情報”error”が存在する場合、頻出ログ情報”error”をパス”/aa”とともに変換部１６に通知することで、頻出ログ情報”error”の識別子への置き換えを指示する。変換部１６は、判定部１５からの指示に基づいて、頻出ログ情報と判定されたログ情報”error”を識別子”Ａ”に変換する。
【００３９】
そして、送信部１７は、変換部１６によりログ情報”error”が識別子”Ａ”に変換されたログを管理装置２０に送信する。このため、ログ送信装置１０の頻出ログ情報保持部１４に頻出ログ情報”error”が格納された後、管理装置２０は、パス”/aa”に対応するログに含まれるログ情報”error”の代わりに識別子”Ａ”を受信する。これ以降、回数管理部２３は、パス”/aa”に対応するログに含まれるログ情報”error”を受信しないため、ログ情報保持部２６において、ログ情報”error”とパス”/aa”との組み合わせの受信回数が増加することはない。
【００４０】
なお、管理部２２は、付与部２４が付与した識別子を認識しているため、回数管理部２３は、例えば、パス”/aa”のログに含まれる識別子”Ａ”をログ情報として扱わない。このため、識別子”Ａ”がログ情報として扱われることはなく、識別子”Ａ”の受信回数がログ情報保持部２６に格納されることはない。したがって、その後に多数受信する識別子”Ａ”が頻出ログ情報に判定されることはない。
【００４１】
一方、例えば、判定部１５は、パス”/bb”に対応する頻出ログ情報が頻出ログ情報保持部１４に存在しないことを、頻出ログ情報保持部１４を予め参照するなどして検出済みである。このため、判定部１５は、パス”/bb”で示される格納場所に格納されたログに対して、頻出ログ情報保持部１４を検索せず、ログ情報の判定動作を実行しない。すなわち、判定部１５は、頻出ログ情報の識別子への置き換えを変換部１６に指示しない。
【００４２】
このように、頻出ログ情報と識別子とをパス毎にログ管理情報として頻出ログ情報保持部１４に保持することで、頻出ログ情報をパス毎に管理しない場合に比べて、判定部１５による頻出ログ情報保持部１４の検索頻度を下げることができる。したがって、頻出ログ情報をパス毎に管理しない場合に比べて、判定部１５のオーバヘッドを削減することができる。
【００４３】
変換部１６は、判定部１５からの指示がないため、パス”/bb”で示される格納場所に格納されたログ情報の識別子への変換動作を実行することなく、ログデータベース１２から読み出したログを送信部１７に転送する。一方、頻出ログ情報をパス毎に管理せず、複数のサービスに共通に頻出ログ情報と識別子との組み合わせを設定する場合、変換部１６は、パス”/bb”で示される格納場所に格納されたログ情報の識別子への変換動作を実行する。したがって、図２では、頻出ログ情報をパス毎に管理しない場合に比べて、変換部１６によるログ情報の識別子への変換頻度を下げることができ、変換部１６のオーバヘッドを削減することができる。この結果、ログ送信装置１０のオーバヘッドを削減することができる。また、ログ送信装置１０は、実際のログに基づいて管理装置２０が設定したログ管理情報を使用して、ログに含まれる頻出ログ情報が識別子に変換する。このため、頻出ログ情報を人手等により予想する場合に比べて、ログを効率的に圧縮することができる。
【００４４】
これに対して、例えば、管理部２２が、パス（サービス）で区別することなくログ情報の受信回数を計数するとする。この場合、”パス”/aa”に対応するログ情報”error”だけでなく、パス”/bb”に対応するログ情報”error”も、頻出ログ情報に決定される。管理装置２０は、頻出ログ情報”error”をパス”/aa”に紐付けすることなく識別子”Ａ”とともにログ送信装置１０に送信する。
【００４５】
この場合、判定部１５は、パス”/aa”のログ中のログ情報”error”に対する頻出ログ情報保持部１４の検索だけでなく、パス”/bb”のログ中のログ情報”error”に対する頻出ログ情報保持部１４の検索も実行する。そして、判定部１５は、パス”/aa”に保持されたログ中のログ情報”error”だけでなく、パス”/bb”に保持されたログ中のログ情報”error”も頻出ログ情報として判定する。したがって、判定部１５による頻出ログ情報保持部１４の検索のオーバヘッドが発生する。
【００４６】
また、変換部１６は、パス”/aa”に保持されたログ中のログ情報”error”だけでなく、パス”/bb”に保持されたログ中のログ情報”error”も識別子に変換する。本来、頻出ログ情報でないパス”/bb”のログ情報”error”を識別子に変換するため、変換部１６のオーバヘッドが発生する。さらに、例えば、状態（２）において、パス”/bb”に対応するログ情報”error”の受信回数は３回であり、真の頻出ログ情報ではない。したがって、頻出ログ情報をパス毎に管理しない場合、真の頻出ログ情報を抽出する精度は低下する。
【００４７】
状態（３）において、付与部２４は、ログ情報保持部２６に保持されたログ情報”file not found”とパス”/bb”との組み合わせの受信回数が１００回になったことを検出する。付与部２４は、パス”/bb”に対応するログ情報”file not found”を頻出ログ情報に決定する。付与部２４は、パス”/bb”に対応する頻出ログ情報”file not found”に識別子”Ｂ”を付与する。例えば、識別子”Ｂ”は、文字列”Ｂ”である。付与部２４は、付与した識別子”Ｂ”を、頻出ログ情報”file not found”およびパス”/bb”の組み合わせとともに、ログ管理情報として頻出ログ情報保持部２７に格納する。送信部２９は、頻出ログ情報保持部２７に格納されたログ管理情報を、ログ送信装置１０に送信し、ログ送信装置１０は、受信したログ管理情報を頻出ログ情報保持部１４に格納する。そして、ログ送信装置１０は、頻出ログ情報保持部１４に格納したログ管理情報に基づいて、ログに含まれるログ情報を識別子に変換し、変換した識別子を含むログを管理装置２０に送信する。
【００４８】
例えば、判定部１５は、パス”/aa”で示される格納場所に格納されたログに含まれる複数のログ情報の中に、頻出ログ情報”error”が存在するかを、頻出ログ情報保持部１４においてパス”/aa”を保持するレコードのみを検索して判定する。状態（２）と同様に、パス”/bb”を保持するレコードの検索が不要になるため、頻出ログ情報をパス毎に管理しない場合に比べて、判定部１５による頻出ログ情報保持部１４の検索効率を向上することができる。
【００４９】
また、頻出ログ情報をパス毎に管理することで、着目するログ情報の受信回数がパスによって互いに異なる場合にも、頻出ログ情報をパス毎の受信回数に基づいて決定することができる。これにより、頻出ログ情報をパス毎に管理しない場合に比べて、真の頻出ログ情報を抽出する精度を向上することができる。
【００５０】
以上、図１および図２に示す実施形態では、頻出ログ情報をパス毎に管理するため、ログに含まれる頻出ログ情報を頻出ログ情報保持部１４から検索する場合、ログに対応するパスを含むレコードのみを検索すればよい。このため、頻出ログ情報をパス毎に管理しない場合に比べて、判定部１５による頻出ログ情報の検索効率を向上することができ、判定部１５による頻出ログ情報保持部１４の検索頻度を下げることができる。また、変換部１６によるログ情報の識別子への変換頻度を下げることができる。すなわち、頻出ログ情報をパス毎に管理しない場合に比べて、ログが伝送される通信路の負荷を軽減しつつ、ログ送信装置１０のオーバヘッドを削減することができる。
【００５１】
ログ送信装置１０から受信する実際のログに基づいて、頻出ログ情報を管理するログ情報保持部２６および頻出ログ情報保持部２７を動的に更新することができる。すなわち、人手を介することなく、頻出ログ情報を自動的に更新することができ、頻出ログ情報を人手等により予想して設定する場合に比べて、ログ送信装置１０は、ログを効率的に圧縮することができる。
【００５２】
頻出ログ情報をパス毎に管理することで、着目するログ情報の受信回数がパスによって互いに異なる場合にも、頻出ログ情報をパス毎の受信回数に基づいて決定することができる。これにより、頻出ログ情報をパス毎に管理しない場合に比べて、真の頻出ログ情報を抽出する精度を向上することができる。
【００５３】
ログ管理情報が頻出ログ情報保持部２７に格納される毎に、ログ管理情報をログ送信装置１０に送信することで、パス毎の頻出ログ情報と識別子とを含むログ管理情報を迅速にログ送信装置１０に送信することができる。これにより、ログ送信装置１０は、管理装置２０による頻出ログ情報の検出に基づく頻出ログ情報の識別子への変換処理を迅速に開始することができる。ログ情報保持部２６とは別に頻出ログ情報保持部２７を設けることで、送信部２９は、頻出ログ情報保持部２７の該当するレコードをアクセスだけで、頻出ログ情報とパスと識別子とを含むログ管理情報のみを取得することができる。
【００５４】
図３は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図１および図２と同じ要素については、詳細な説明は省略する。図３に示す情報処理システム１０２は、例えば、ネットワークを介してコンピュータリソースを提供するクラウドサービスまたはマイクロサービス等に使用される。情報処理システム１０２は、情報処理を実行する複数の処理サーバ４００（４００Ａ、４００Ｂ、４００Ｃ等）と、処理サーバ４００を管理する管理サーバ５００とを有する。
【００５５】
処理サーバ４００と管理サーバ５００とは、管理ネットワーク６０２を介して相互に接続される。処理サーバ４００は、ログ送信装置または第１の情報処理装置の一例であり、管理サーバ５００は、管理装置または第２の情報処理装置の一例である。処理サーバ４００および管理サーバ５００のハードウェア構成の例は、図１１に示される。
【００５６】
処理サーバ４００および管理サーバ５００は、ユーザネットワーク６０４を介して、インターネットまたはイントラネット等のネットワーク６０６に接続される。ネットワーク６０６には、処理サーバ４００を使用する各ユーザにより操作される端末装置７００（７００Ａ、７００Ｂなど）が接続される。
【００５７】
なお、ネットワーク６０６は、ユーザネットワーク６０４を介さずに管理サーバ５００に接続され、端末装置７００からの指示が、管理サーバ５００を介して各処理サーバ４００に伝達されてもよい。また、同種のサービスを複数の処理サーバ４００で実行する場合、情報処理システム１０２は、端末装置７００からの指示を複数の処理サーバ４００に分散させるロードバランサを有してもよい。処理サーバ４００の構成は、互いに同一または同様であるため、以下では、主に処理サーバ４００Ａについて説明される。また、以下では、処理サーバ４００は、ホストとも称される。
【００５８】
処理サーバ４００Ａは、サービス実行部４１Ａ、ログデータベース４２、エージェント４３、変換部４４、圧縮部４５、転送部４６および記憶部４７を有する。記憶部４７は、ログ保持部４８および頻出メッセージ抽出テーブル４９を有する。頻出メッセージ抽出テーブル４９の例は、図５に示される。記憶部４７は、例えば、複数のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）を含むメモリモジュール、ＨＤＤまたはＳＳＤ（Solid State Drive）等の記憶装置を有する。
【００５９】
例えば、エージェント４３、変換部４４、圧縮部４５および転送部４６の機能は、処理サーバ４００Ａが有するＣＰＵ等のプロセッサが記憶部４７等に格納されるプログラムを実行することで実現される。なお、エージェント４３、変換部４４、圧縮部４５および転送部４６の機能は、処理サーバ４００Ａが有するＦＰＧＡ等のハードウェアにより実現されてもよい。処理サーバ４００の動作の例は、図９に示される。
【００６０】
サービス実行部４１（４１Ａ、４１Ｂ、４１Ｃ）の各々は、端末装置７００を操作するユーザからの指示に基づいて、所定数の各種サービスを実行する。例えば、サービス実行部４１は、処理サーバ４００上で動作する仮想マシンにより実現される。すなわち、サービス実行部４１は、処理サーバ４００Ａが有するＣＰＵ、メモリ、ストレージ等の物理リソースを利用して、ハイパーバイザ等のソフトウェアにより実現される。なお、サービス実行部４１は、物理リソースを用いて実現されてもよい。
【００６１】
サービス実行部４１Ａ、４１Ｂは、互いに同じサービスＮＯＶＡを分散して実行し、サービス実行部４１Ｃは、サービスＮＯＶＡと異なるサービスＮＥＵＴＲＯＮを実行する。サービスＮＯＶＡを実行する処理サーバ４００Ａ、４００Ｂは、管理サーバ５００によりホストＮＯＶＡ１、ＮＯＶＡ２として管理される。すなわち、末尾の数字のみが異なるホスト名は、互いに同じサービスを実行する処理サーバ４００を示す。サービスＮＥＵＴＲＯＮを実行する処理サーバ４００Ｃは、管理サーバ５００によりホストＮＥＵＴＲＯＮ１として管理される。
【００６２】
例えば、サービスＮＯＶＡの処理負荷が増加し、サービスＮＯＶＡを実行する処理サーバ４００が増設される場合（スケールアウト）、増設された処理サーバ４００は、ホストＮＯＶＡ３として管理サーバ５００に管理される。一方、サービスＮＯＶＡの処理負荷が減少した場合、サービスＮＯＶＡを実行する処理サーバ４００が減設されてもよい（スケールイン）。
【００６３】
ログデータベース４２は、サービス実行部４１Ａが実行する複数種のサービスの各々に対応して、サービス実行部４１Ａが出力するログをサービス毎に保持する。なお、処理サーバ４００Ａは、互いに異なる１つのサービスを実行する複数のサービス実行部４１Ａを有してもよい。この場合にも、ログデータベース４２は、複数のサービス実行部４１Ａが出力するログをサービス毎に保持する。ログデータベース４２には、サービス毎にログを保持する格納場所が割り当てられ、各格納場所は、図４で説明するようにパスにより管理される。なお、ログデータベース４２は、記憶部４７に設けられてもよい。
【００６４】
エージェント４３は、ログデータベース４２に格納されたログをパス毎に区別して収集し、収集したログをログ保持部４８に格納する。エージェント４３は、頻出メッセージ抽出テーブル４９に保持された情報に基づいて、ログ保持部４８に格納したログに含まれるメッセージの中に、出現頻度が他よりも高い頻出メッセージがあるか否かを判定する。この際、エージェント４３は、頻出メッセージ抽出テーブル４９に保持された情報に基づいて、頻出メッセージをサービス実行部４１Ａが実行するサービス毎（すなわち、パス毎）に判定する。すなわち、エージェント４３は、ログの格納先を示すパス毎にログを収集し、ログに含まれるメッセージが、頻出メッセージ抽出テーブル４９にほじされたパス毎の頻出メッセージと一致するかを判定する。メッセージが頻出メッセージであるかを判定するエージェント４３は、判定部の一例である。ログに含まれるメッセージは、ログ情報の一例であり、頻出メッセージは、頻出ログ情報の一例である。
【００６５】
エージェント４３は、ログの中に頻出メッセージを検出した場合、ログに含まれる頻出メッセージをＩＤ（Identification）に変換させる指示を変換部４４に発行する。ＩＤは、頻出メッセージを識別するための識別子の一例である。ＩＤは、例えば、文字列や数字列であり、頻出メッセージの情報量よりも小さいものが選択される。
【００６６】
変換部４４は、エージェント４３からの指示に基づいて、頻出メッセージを含むログをログ保持部４８から読み出し、頻出メッセージ抽出テーブル４９に保持された情報に基づいて、読み出したログに含まれる頻出メッセージをＩＤに変換する。例えば、変換部４４は、頻出メッセージをＩＤに置き換えたログをログ保持部４８に書き戻す。
【００６７】
エージェント４３は、所定量のログに対して頻出メッセージを検出する処理を実行した場合、ログ保持部４８に保持された所定量のログを、処理サーバ４００のホスト名およびログの格納場所を示すパスとともに圧縮する指示を圧縮部４５に発行する。圧縮部４５は、エージェント４３からの指示に基づいて、ログ保持部４８に保持された所定量のログを読み出し、読み出したログに含まれる情報にホスト名とパスとを付加して圧縮する。圧縮部４５は、圧縮したログを転送部４６に出力する。例えば、圧縮処理は、辞書式圧縮法等のデータ圧縮アルゴリズムを使用して実行される。
【００６８】
転送部４６は、圧縮部４５から受信するログを含む情報を、管理ネットワーク６０２を介して管理サーバ５００に送信する。圧縮されたログを含む情報を管理サーバ５００に送信する転送部４６は、送信部の一例である。一方、転送部４６は、管理ネットワーク６０２を介して管理サーバ５００から受信する情報を頻出メッセージ抽出テーブル４９に格納する。管理サーバ５００から受信する情報を受信する転送部４６は、受信部の一例である。
【００６９】
管理サーバ５００は、転送部５１、解凍部５２、頻出ログ抽出部５３、ログ情報管理部５４および記憶部５５を有する。記憶部５５は、統計テーブル５６、頻出メッセージ管理テーブル５７、対応ホスト管理テーブル５８およびログ保持部５９を有する。頻出ログ抽出部５３およびログ情報管理部５４は、管理部の一例である。統計テーブル５６、頻出メッセージ管理テーブル５７および対応ホスト管理テーブル５８の例は、図６に示される。
【００７０】
転送部５１、解凍部５２、頻出ログ抽出部５３およびログ情報管理部５４の機能は、管理サーバ５００が有するＣＰＵ等のプロセッサが記憶部５５に格納されるプログラムを実行することで実現される。なお、転送部５１、解凍部５２、頻出ログ抽出部５３およびログ情報管理部５４の機能は、管理サーバ５００が有するＦＰＧＡ等のハードウェアにより実現されてもよい。管理サーバ５００の動作の例は、図１０に示される。
【００７１】
転送部５１は、管理ネットワーク６０２を介して各処理サーバ４００から受信するログを含む情報を解凍部５２に転送する。また、転送部５１は、頻出メッセージ管理テーブル５７に保持された情報を、管理ネットワーク６０２を介して処理サーバ４００のいずれかに送信する。転送部５１は、処理サーバ４００からログを受信する受信部の一例である。また、転送部５１は、後述するログ管理情報を処理サーバ４００に送信する送信部の一例である。解凍部５２は、転送部５１から転送されるログを含む情報を解凍し、解凍したログとログに付加されたホスト名とパスとをログ保持部５９に格納する。
【００７２】
頻出ログ抽出部５３は、解凍部５２が解凍したログをパス毎に検索し、ログに含まれるメッセージをパス毎に抽出し、抽出したメッセージをパスとともに統計テーブル５６に格納する。また、頻出ログ抽出部５３は、パス毎にメッセージを抽出した回数である出現回数を算出し、算出した出現回数を統計テーブル５６に格納する。頻出ログ抽出部５３は、処理サーバ４００から受信するログに含まれるメッセージとパスとの組み合わせ毎にメッセージの出現回数を管理する回数管理部の一例であり、出現回数は、受信回数の一例である。
【００７３】
ログ情報管理部５４は、統計テーブル５６に格納されたパス毎のログに含まれるメッセージのうち、発生頻度が所定の頻度以上であるメッセージ（すなわち、頻出メッセージ）を、出現回数に基づいて検出する。ログ情報管理部５４は、頻出メッセージにＩＤを付与し、付与したＩＤを頻出メッセージおよびパスとともに頻出メッセージ管理テーブル５７に格納する。以下では、頻出メッセージ、パスおよびＩＤの組み合わせは、ログ管理情報とも称される。
【００７４】
また、ログ情報管理部５４は、頻出メッセージ管理テーブル５７に頻出メッセージを格納する毎に、新たに格納した頻出メッセージ、パスおよびＩＤを含むログ管理情報を、パスに対応する全ての処理サーバ４００に転送する指示を転送部に発行する。頻出メッセージにＩＤを付与するログ情報管理部５４は、付与部の一例である。頻出メッセージの検出に基づいて、検出した頻出メッセージを含むログ管理情報を、ログ管理情報に含まれるパスに対応する全ての処理サーバ４００に転送する指示を発行するログ情報管理部５４は、共通情報管理部の一例である。
【００７５】
さらに、ログ情報管理部５４は、解凍部５２が解凍したログに付加されたパスとホスト名との組み合わせが、対応ホスト管理テーブル５８に登録済みであるか否かを検出する。ログ情報管理部５４は、解凍したログに、対応ホスト管理テーブル５８に未登録のパスとホスト名との組み合わせが付加されている場合、新たなホスト（処理サーバ４００）を使用してサービスが開始されたと判断する。そして、ログ情報管理部５４は、新たなホスト名とパスとの組み合わせを対応ホスト管理テーブル５８に登録する。
【００７６】
ログ情報管理部５４は、対応ホスト管理テーブル５８に新たに登録したパスが頻出メッセージ管理テーブル５７に保持されている場合、対応するログ管理情報を頻出メッセージ管理テーブル５７から取り出す。そして、ログ情報管理部５４は、対応ホスト管理テーブル５８に新たにパスとともに登録したホスト名に対応する処理サーバ４００に、取り出したログ管理情報を転送する指示を転送部５１に発行する。パスとホスト名との新たな組み合わせを検出し、対応するホストに、対応するパスを含むログ管理情報を送信する指示を発行するログ情報管理部５４は、新規管理部の一例である。
【００７７】
図４は、図３に示す各処理サーバ４００におけるログデータベース４２に格納されるログファイルのディレクトリ構成の一例を示す。処理サーバ４００Ａ、４００Ｂは、共通のディレクトリ構成を有しており、例えば、/novaディレクトリの下には、２つのサービスに対応する２つのログファイル”nova-compute.log”、”nova-api.log”が配置される。処理サーバ４００Ｃでは、例えば、/neutronディレクトリの下にログファイル”sever.log”が配置される。
【００７８】
処理サーバ４００Ａ、４００Ｂの各々において、ログファイル”nova-compute.log”の格納場所のパスは、”/var/log/nova/nova-compute.log”であり、”nova-api.log”の格納場所のパスは、”/var/log/nova/nova-api.log”である。すなわち、処理サーバ４００Ａのサービス実行部４１Ａと処理サーバ４００Ｂのサービス実行部４１Ｂとの各々が実行する共通のサービスの実行履歴を示すログは、各処理サーバ４００Ａ、４００Ｂにおいて、共通のパスで示される格納場所に格納される。すなわち、互いに同じサービスを実行する処理サーバ４００Ａ、４００Ｂの各々において、ログの物理的な格納場所は互いに異なるが、格納場所を示すパスは、互いに共通である。
【００７９】
したがって、クラウドサービスまたはマイクロサービス等において、共通のサービスを実行する処理サーバ４００が増設される場合にも、パスが共通であることを利用して、物理的に異なる格納場所に格納されたログをサービス毎のログとして管理することができる。換言すれば、共通のサービスを実行する処理サーバ４００が増設される場合にも、管理サーバ５００に処理サーバ４００の増設を通知することなく、物理的に異なる格納場所に格納されたログをサービス毎のログとして管理することができる。また、処理サーバ４００の増設前と増設後において、後述する図１０に示す管理サーバ５００の動作フローを同じにすることができる。
【００８０】
例えば、処理サーバ４００Ａ、４００Ｂ（ホストＮＯＶＡ１、ＮＯＶＡ２）が実行するサービスＮＯＶＡの処理負荷が増加し、サービスＮＯＶＡを実行する処理サーバ４００Ｄが増設されるとする。この場合、増設された処理サーバ４００（例えば、ホストＮＯＶＡ３）のディレクトリ構成は、処理サーバ４００Ａ、４００Ｂのディレクトリ構成と同じに設定される。すなわち、処理サーバ４００Ｄは、/novaディレクトリの下に２つのサービスに対応する２つのログファイル”nova-compute.log”、”nova-api.log”が配置される。なお、各ディレクトリに配置されるログファイルは、図４に示す例に限定されない。
【００８１】
図５は、図３に示す処理サーバ４００が有する頻出メッセージ抽出テーブル４９の一例を示す。頻出メッセージ抽出テーブル４９に保持されるログ管理情報は、サービス毎に共通であり、例えば、互いに同じサービスを実行する処理サーバ４００Ａ、４００Ｂの頻出メッセージ抽出テーブル４９が保持するログ管理情報は互いに同じである。頻出メッセージ抽出テーブル４９は、ログに含まれるメッセージのうち、頻出と判定された頻出メッセージと、ログの格納場所を示すパスと、頻出メッセージに対応するＩＤとを含むログ管理情報を格納する複数のレコードを有する。
【００８２】
処理サーバ４００Ａ、４００Ｂの頻出メッセージ抽出テーブル４９には、/novaディレクトリの下に配置される２つのログファイル（図４）内のログに含まれるメッセージのうち、頻出メッセージがパスおよびＩＤとともに格納される。２つのログファイルは、”nova-api.log”と”nova-compute.log”である。処理サーバ４００Ｃの頻出メッセージ抽出テーブル４９には、/neutronディレクトリの下に配置されるログファイル（図４の”server.log”）内のログに含まれるメッセージのうち、頻出メッセージがパスおよびＩＤとともに格納される。
【００８３】
なお、パス（サービス）で区別することなくメッセージの出現回数を計数する場合、複数の処理サーバ４００が実行する異種のサービスに共通のログ管理情報が、頻出メッセージ抽出テーブル４９に格納される。異種のサービスでは、例えば、メッセージ”file not found”が出力される頻度は、互いに異なり、あるサービスでは頻出メッセージでも、他のサービスでは頻出メッセージでない場合がある。したがって、サービス毎にメッセージの発生頻度が異なる場合にも、頻出メッセージに反映させることが困難である。この結果、本来、頻出メッセージでないメッセージがＩＤに置き換わるため、処理サーバ４００のエージェント４３および変換部４４のオーバヘッドが発生する。
【００８４】
また、パス（サービス）で区別することなくメッセージの出現回数を計数する場合、特定のサービスでしか発生しない頻出メッセージに対応するログ管理情報が、他のサービスを実行する処理サーバ４００にも転送される。これにより、各処理サーバ４００の頻出メッセージ抽出テーブル４９には、全く出力されないメッセージに対応する無駄なログ管理情報が格納されてしまう。エージェント４３は、頻出メッセージ抽出テーブル４９に保持された有用なログ管理情報だけでなく、無駄なログ管理情報も検索して頻出メッセージを判定するため、エージェント４３のオーバヘッドはさらに増大する。
【００８５】
図６は、図３に示す管理サーバ５００が有する統計テーブル５６、頻出メッセージ管理テーブル５７および対応ホスト管理テーブル５８の一例を示す。
【００８６】
統計テーブル５６は、ログが格納されるログファイルの格納場所を示すパスと、ログに含まれるメッセージと、メッセージの出現回数とを格納する複数のレコードを有する。例えば、統計テーブル５６には、各サービスが出力した全てのログに含まれる全てのメッセージが格納される。パス毎に新たなメッセージが統計テーブル５６に格納された場合、出現回数は”１”に設定される。また、新たに発生したログに含まれるメッセージが、統計テーブル５６に既に格納されている場合、出現回数は”１”増加される。
【００８７】
頻出メッセージ管理テーブル５７は、ログに含まれる頻出メッセージと、ログが格納されるログファイルの格納場所を示すパスと、頻出メッセージに代えて置き換えられるＩＤとを含むログ管理情報を格納する複数のレコードを有する。頻出メッセージ管理テーブル５７には、統計テーブル５６に格納されたメッセージのうち、例えば、出現回数が所定の閾値（例えば、１００回）に到達したメッセージに対応する情報が格納される。換言すれば、出現回数が閾値に到達したメッセージは、発生頻度が所定の頻度以上である頻出メッセージとして扱われる。なお、図６では、ＩＤは、文字”Ａ”、”Ｂ”、”Ｃ”、”Ｄ”で示されるが、メッセージの情報量より小さければ、ＩＤは他の文字列または数字列でもよい。
【００８８】
統計テーブル５６および頻出メッセージ管理テーブル５７は、記憶部の一例であり、統計テーブル５６および頻出メッセージ管理テーブル５７のレコードは、記憶領域の一例である。なお、統計テーブル５６および頻出メッセージ管理テーブル５７との代わりに、１つのテーブルが、管理サーバ５００に設けられてもよい。この場合、例えば、テーブルは、統計テーブル５６の各レコードにＩＤを格納する領域を追加することで設けられ、頻出メッセージ管理テーブル５７は削除される。
【００８９】
対応ホスト管理テーブル５８は、ログが格納されるログファイルの格納場所を示すパスと、パスで示されるログファイルにログを格納する処理サーバ４００（すなわち、ホスト）を識別するホスト名とを格納する複数のレコードを有する。すなわち、対応ホスト管理テーブル５８は、各ログファイルがどの処理サーバ４００に保持されているかを示す。ホストとパスとの組み合わせは、装置管理情報の一例である。
【００９０】
図７は、図３に示す情報処理システム１０２の動作の一例を示す。説明を分かりやすくするため、統計テーブル５６には、状態（１）で示すパスとメッセージとの５つの組み合わせ以外は格納されないものとする。すなわち、管理サーバ５００が各ホストから受信するログに含まれるメッセージは、５つの組み合わせのメッセージのいずれかであるとする。また、説明を分かりやすくするため、統計テーブル５６には、出現回数が１００回に到達したメッセージに対応するレコードに符号”＊”を付している。
【００９１】
状態（１）では、パスとメッセージとの５つの組み合わせと、出現回数とが、頻出ログ抽出部５３により統計テーブル５６に格納済みである。５つの組み合わせのうちの２つは、メッセージの出現回数が１００回に到達している。ログ情報管理部５４は、出現回数が１００回に到達したメッセージを頻出メッセージに決定し、頻出メッセージにＩＤを付与する。そして、ログ情報管理部５４は、頻出メッセージとパスとＩＤとの組み合わせを含むログ管理情報を頻出メッセージ管理テーブル５７に格納する。
【００９２】
状態（１）において、頻出メッセージ管理テーブル５７の一番上のレコードに示す破線の矢印は、ログ管理情報が、パス”/var/log/nova/nova-api.log”に対応するホストＮＯＶＡ１、ＮＯＶＡ２に転送されたことを示す。頻出メッセージ管理テーブル５７の上から２番目のレコードに示す破線の矢印は、ログ管理情報が、パス”/var/log/neutron/server.log”に対応するホストＮＥＵＴＲＯＮ１に転送されたことを示す。
【００９３】
各状態（１）−（４）の右側に矢印で示すように、頻出メッセージ管理テーブル５７に格納されたログ管理情報は、パスに対応するホストのみに転送される。このため、ログ管理情報を情報処理システム１０２が有する全てのホストに転送する場合に比べて、管理ネットワーク６０２の負荷を減らすことができる。換言すれば、ログ管理情報をパス毎に管理することで、各ホストが有する頻出メッセージ抽出テーブル４９の更新頻度を下げることができ、管理ネットワーク６０２の負荷を減らすことができる。
【００９４】
頻出ログ抽出部５３は、ホストのいずれかから転送されるログに基づいて、統計テーブル５６の出現回数を更新する。但し、出現回数が１００回に到達したメッセージは、ＩＤに置き換えられてホストから転送される。例えば、状態（１）の統計テーブル５６の一番上のレコードに保持されるパス”/var/log/nova/nova-api.log”に保持されたメッセージ”file not found”は、ＩＤ（＝”Ａ”）に置き換えられてホストＮＯＶＡ１、ＮＯＶＡ２から転送される。同様に、状態（１）の統計テーブル５６の上から２番目のレコードに保持されるパス”/var/log/neutron/server.log”に保持されたメッセージ”neutron error”は、ＩＤ（＝”Ｂ”）に置き換えられてホストＮＥＵＴＲＯＮ１から転送される。このため、状態（１）の統計テーブル５６の上から１番目と２番目のレコードに対応するログ管理情報が、対応するホストに登録された後、これらレコードに含まれる出現回数は増加しない。
【００９５】
なお、状態（１）では、パス”/var/log/neutron/server.log”に格納されたログに含まれるメッセージ”file not found”は、頻出メッセージに設定されていない。すなわち、ログにメッセージ”file not found”が発生する頻度は、サービスによって異なる。このため、ホストＮＥＵＴＲＯＮ１は、メッセージ”file not found”をＩＤに置き換えることなく管理サーバ５００に転送する。頻出メッセージをパス毎に管理することで、頻出メッセージの種類がサービス毎に異なる特性に対応してログを管理することができ、頻出ログ抽出部５３により真の頻出ログ情報を抽出する精度を向上することができる。
【００９６】
次に、状態（２）では、パス”/var/log/neutron/server.log”に格納されたログに含まれるメッセージ”file not found”の出現回数が１００回に到達する。ログ情報管理部５４は、統計テーブル５６の上から３番目のレコードのメッセージ”file not found”を頻出メッセージとして検出し、頻出メッセージにＩＤ（＝”Ｃ”）を付与する。ログ情報管理部５４は、統計テーブル５６の上から３番目のレコードに対応する頻出メッセージとパスと、付与したＩＤとをログ管理情報として頻出メッセージ管理テーブル５７に格納する。
【００９７】
ログ情報管理部５４は、頻出メッセージ管理テーブル５７の上から３番目のレコードに新たに格納したログ管理情報を、対応するホストに転送する指示を転送部５１に発行する。転送部５１は、ログ情報管理部５４からの指示に基づいて、頻出メッセージ管理テーブル５７に新たに格納されたログ管理情報を、ログ管理情報に含まれるパス”/var/log/neutron/server.log”に対応するホストＮＥＵＴＲＯＮ１に転送する。
【００９８】
ここで、ログ情報管理部５４は、頻出メッセージ管理テーブル５７に新たに格納されたパスと同じパスを保持する対応ホスト管理テーブル５８（図３）のレコードに保持されたホスト名により示されるホストを、ログ管理情報の転送先に設定する。ここでは、ログ管理情報がホストＮＥＵＴＲＯＮ１に転送される。ログ管理情報を受信したホストＮＥＵＴＲＯＮ１は、パス”/var/log/neutron/server.log”に格納されたログに含まれるメッセージ”file not found”を、ＩＤ（＝”Ｃ”）に置き換え、管理サーバ５００に転送する。
【００９９】
このように、管理サーバ５００は、処理サーバ４００から受信する実際のログに基づいて、頻出メッセージを管理する統計テーブル５６、頻出メッセージ管理テーブル５７および対応ホスト管理テーブル５８を動的に更新することができる。すなわち、人手を介することなく、頻出メッセージを自動的に更新することができ、頻出メッセージを人手等により予想して設定する場合に比べて、処理サーバ４００は、ログを効率的に圧縮することができる。
【０１００】
次に、状態（３）では、例えば、サービスＮＯＶＡの処理負荷が増加し、サービスＮＯＶＡを実行するホストＮＯＶＡ３が増設され、サービスＮＯＶＡは、ホストＮＯＶＡ１、ＮＯＶＡ２に加えて、ホストＮＯＶＡ３で実行される。そして、管理サーバ５００は、ホストＮＯＶＡ３で実行されたサービスＮＯＶＡが出力したログを受信する。例えば、ホストＮＯＶＡ３から転送されるログは、パス”/var/log/nova/nova-api.log”で示されるログファイル”nova-api.log”に含まれ、メッセージ”file not found”を含む。
【０１０１】
ログ情報管理部５４は、頻出ログ抽出部５３によりパスとメッセージとが統計テーブル５６に格納された場合、パスとログに付加されたホスト名とに基づいて、対応ホスト管理テーブル５８に未登録のパスとホスト名との組み合わせが存在するか否かを検出する。なお、ログ情報管理部５４は、ログを受信する毎に対応ホスト管理テーブル５８を参照する。対応ホスト管理テーブル５８に未登録のパスとホスト名との組み合わせが存在するか否かを検出する。
【０１０２】
この例では、後述する図８の状態（１）に示すように、パス”/var/log/nova/nova-api.log”とホスト名”ＮＯＶＡ３”との組み合わせが対応ホスト管理テーブル５８に登録されていない。このため、ログ情報管理部５４は、パス”/var/log/nova/nova-api.log”とホスト名”ＮＯＶＡ３”との新たな組み合わせを対応ホスト管理テーブル５８に登録する。対応ホスト管理テーブル５８が更新される例は、図８で説明される。
【０１０３】
また、ログ情報管理部５４は、パス”/var/log/nova/nova-api.log”を含む頻出メッセージ管理テーブル５７のレコードのログ管理情報を、ホスト名”ＮＯＶＡ３”に対応するホストＮＯＶＡ３に転送する指示を転送部５１に発行する。転送部５１は、状態（３）の頻出メッセージ管理テーブル５７の一番上のレコードに保持されたパス”/var/log/nova/nova-api.log”を含むログ管理情報をホストＮＯＶＡ３に転送する。これ以降、ホストＮＯＶＡ３は、パス”/var/log/nova/nova-api.log”に格納されたログに含まれるメッセージ”file not found”をＩＤ（＝”Ａ”）に変換し、管理サーバ５００に転送する。このように、管理サーバ５００は、対応ホスト管理テーブル５８を用いることで、ホストの増設を検出し、増設を検出したホストにログ管理情報を転送することができる。
【０１０４】
次に、状態（４）では、管理サーバ５００は、ホストＮＯＶＡ３からパス”/var/log/nova/nova-compute.log”で示されるログファイル”nova-compute.log”に含まれるログを受信する。ログは、メッセージ”nova error”を含む。頻出ログ抽出部５３は、抽出したメッセージ”nova error”をパス”/var/log/nova/nova-compute.log”とともに統計テーブル５６に格納する。ここで、メッセージ”nova error”とパス”/var/log/nova/nova-compute.log”との組み合わせの出現回数が１００回に到達したとする。
【０１０５】
ログ情報管理部５４は、状態（４）の上から４番目のレコードのメッセージを頻出メッセージとして検出し、頻出メッセージにＩＤ（＝”Ｄ”）を付与する。ログ情報管理部５４は、上から４番目のレコードに対応する頻出メッセージとパスと付与したＩＤとをログ管理情報として頻出メッセージ管理テーブル５７に格納する。
【０１０６】
この時点では、ホスト名”ＮＯＶＡ１”、”ＮＯＶＡ２”の各々と、パス”/var/log/nova/nova-compute.log”との２つの組み合わせが対応ホスト管理テーブル５８に登録済みである。一方、メッセージ”nova error”を含むログの転送元のホストＮＯＶＡ３と、パス”/var/log/nova/nova-compute.log”との組み合わせは、対応ホスト管理テーブル５８に保持されていない。このため、ログ情報管理部５４は、ホストＮＯＶＡ３と、パス”/var/log/nova/nova-compute.log”との組み合わせを、対応ホスト管理テーブル５８に登録する。なお、状態（４）は、図６の統計テーブル５６と頻出メッセージ管理テーブル５７との状態と同じである。
【０１０７】
ログ情報管理部５４は、状態（４）の頻出メッセージ管理テーブル５７の上から４番目のレコードに新たに格納したログ管理情報を転送するホストを、対応ホスト管理テーブル５８に保持された情報に基づいて決定する。対応ホスト管理テーブル５８には、パス”/var/log/nova/nova-compute.log”に対応して、ホスト名”ＮＯＶＡ１”、”ＮＯＶＡ２”、”ＮＯＶＡ３”が登録済みである。このため、ログ情報管理部５４は、頻出メッセージ管理テーブル５７に新たに格納されたログ管理情報を、ホストＮＯＶＡ１−ＮＯＶＡ３のそれぞれに転送することを決定し、転送部５１に指示する。転送部５１は、ログ情報管理部５４からの指示に基づいて、頻出メッセージ管理テーブル５７に新たに格納されたログ管理情報を、ホストＮＯＶＡ１−ＮＯＶＡ３に転送する。
【０１０８】
図８は、図３に示す情報処理システム１０２において、対応ホスト管理テーブル５８が更新される動作の一例を示す。
【０１０９】
状態（１）は、図７の状態（２）に対応し、対応ホスト管理テーブル５８は、パスとホスト名との５つの組み合わせを保持する。なお、図７の状態（２）に示すように、パス”/var/log/nova/nova-compute.log”に保持されたログに含まれる各メッセージは、出現回数が１００回未満であり、頻出メッセージでない。このため、図８の状態（１）において、対応ホスト管理テーブル５８の上から１番目と２番目のレコードに保持されたパス”/var/log/nova/nova-compute.log”は、頻出メッセージ管理テーブル５７に未登録である。
【０１１０】
状態（２）は、図７の状態（３）に対応する。管理サーバ５００は、ホストＮＯＶＡ３が実行するサービスＮＯＶＡに伴い、ホストＮＯＶＡ３のログデータベース４２のパス”/var/log/nova/nova-api.log”に格納されたログを受信する。管理サーバ５００は、ログに付加されたパス”/var/log/nova/nova-api.log”とホスト名”ＮＯＶＡ３”との組み合わせが、対応ホスト管理テーブル５８に未登録であることを検出する。そして管理サーバ５００は、パス”/var/log/nova/nova-api.log”とホスト名”ＮＯＶＡ３”との組み合わせを対応ホスト管理テーブル５８に登録する。この後、図７の状態（３）で説明したように、管理サーバ５００は、パス”/var/log/nova/nova-api.log”を含む頻出メッセージ管理テーブル５７のレコードのログ管理情報を、ホストＮＯＶＡ３に転送する。
【０１１１】
状態（３）は、図６および図７の状態（４）に対応する。管理サーバ５００は、ホストＮＯＶＡ３のログデータベース４２のパス”/var/log/nova/nova-compute.log”に格納されたログを受信する。管理サーバ５００は、ログに含まれるメッセージ”nova error”とパス”/var/log/nova/nova-compute.log”との組み合わせの出現回数が１００回に到達したことを検出する。このため、管理サーバ５００は、メッセージ”nova error”とパス”/var/log/nova/nova-compute.log”とＩＤ（＝”Ｄ”）とをログ管理情報として頻出メッセージ管理テーブル５７に格納する。
【０１１２】
管理サーバ５００は、ログに付加されたパス”/var/log/nova/nova-compute.log”とホスト名”ＮＯＶＡ３”との組み合わせが、対応ホスト管理テーブル５８に未登録であることを検出する。このため、管理サーバ５００は、パス”/var/log/nova/nova-compute.log”とホスト名”ＮＯＶＡ３”との組み合わせを対応ホスト管理テーブル５８に登録する。
【０１１３】
管理サーバ５００は、状態（３）の頻出メッセージ管理テーブル５７の上から４番目のレコードに新たに格納したログ管理情報を、対応するホストに転送する。この際、管理サーバ５００は、対応ホスト管理テーブル５８において、ログ管理情報に含まれるパス”/var/log/nova/nova-compute.log”を含むレコードからホスト名ＮＯＶＡ１、ＮＯＶＡ２、ＮＯＶＡ３を抽出する。そして、管理サーバ５００は、ログ管理情報をホストＮＯＶＡ１、ＮＯＶＡ２、ＮＯＶＡ３に転送する。
【０１１４】
図９は、図３に示す処理サーバ４００の動作の一例を示す。すなわち、図９は、処理サーバ４００による情報処理方法および処理サーバ４００が実行するプログラムの一例を示す。
【０１１５】
まず、ステップＳ１００において、処理サーバ４００は、ログデータベース４２を参照し、サービス実行部４１から新たなログが出力されることで、サービスに対応するログファイルが更新されたか否かを判定する。処理サーバ４００は、ログファイルの更新を検出した場合、処理をステップＳ１０２に移行し、ログファイルの更新を検出するまでステップＳ１００の判定を繰り返す。
【０１１６】
ステップＳ１０２において、処理サーバ４００は、ログデータベース４２にアクセスし、サービス実行部４１が新たに出力したログを収集する。なお、処理サーバ４００は、複数のサービスの各々に対応する複数のログファイルが更新された場合、複数のログファイルのそれぞれから新たに格納されたログを収集する。すなわち、処理サーバ４００は、ログをパス毎（サービス毎）に収集する。
【０１１７】
次に、ステップＳ１０４において、処理サーバ４００は、頻出メッセージ抽出テーブル４９が空であるか判定する。頻出メッセージ抽出テーブル４９の全てのレコードが空の場合、処理サーバ４００は、頻出メッセージを検出する処理を実行できないため、処理をステップＳ１１２に移行する。頻出メッセージ抽出テーブル４９のレコードのいずれかに頻出メッセージとパスとＩＤとの組み合わせが格納されている場合、処理サーバ４００は、ログに含まれる頻出メッセージを検出するため、処理をステップＳ１０６に移行する。
【０１１８】
ステップＳ１０６からステップＳ１１０の処理は、パス毎に実行される。ステップＳ１０６において、処理サーバ４００は、ステップＳ１０２で収集したログのパスが頻出メッセージ抽出テーブル４９に登録されているか判定する。パスが頻出メッセージ抽出テーブル４９に登録済みの場合、対象パスのログに頻出メッセージが存在する可能性がある。このため、処理サーバ４００は、頻出メッセージ抽出テーブル４９において当該パスが登録されたレコードを対象レコードとして記録し、処理をステップＳ１０８に移行する。パスが頻出メッセージ抽出テーブル４９に登録されていない場合、検索対象のログに頻出メッセージが存在しないため、処理サーバ４００は処理をステップＳ１１２に移行する。
【０１１９】
ステップＳ１０８において、処理サーバ４００は、ステップＳ１０２で収集した検索対象のログに、頻出メッセージ抽出テーブル４９の各対象レコードに登録された頻出メッセージが含まれるか判定する。頻出メッセージが検索対象のログに含まれる場合、処理サーバ４００は、検索対象のログに含まれる頻出メッセージをＩＤに変換するために、処理をステップＳ１１０に移行する。頻出メッセージが検索対象のログに含まれない場合、検索対象のログに頻出メッセージが存在しないため、処理サーバ４００は、処理をステップＳ１１２に移行する。例えば、ステップＳ１００からステップＳ１０８の処理は、エージェント４３により実行される。
【０１２０】
ステップＳ１１０において、処理サーバ４００は、頻出メッセージ抽出テーブル４９の対象レコードを参照し、ステップＳ１０８で判定した検索対象のログに含まれる頻出メッセージをＩＤに変換し、処理をステップＳ１１２に移行する。処理サーバ４００は、頻出メッセージをＩＤに置き換えたログを、ログ保持部４８に格納する。例えば、ステップＳ１１０の処理は、変換部４４により実行される。
【０１２１】
ステップＳ１０６からステップＳ１１０の処理をパス毎に実行することで、エージェント４３は、頻出メッセージ抽出テーブル４９におけるログのパスを含む対象レコードのみを用いて、ログに含まれる全てのメッセージの各々が頻出メッセージか判定できる。これにより、頻出メッセージ抽出テーブル４９の全てのレコードを用いて、ログに含まれる頻出メッセージを判定する場合に比べて、頻出メッセージの検索効率を向上することができる。また、検索対象のログのパスが頻出メッセージ抽出テーブル４９に含まれない場合、頻出メッセージの検索は実行されないため、頻出メッセージ抽出テーブル４９の検索頻度を下げることができる。この結果、頻出メッセージをパス毎に管理せずに、頻出メッセージを複数のパスに対応する複数のログに共通に設定する場合に比べて、エージェント４３および変換部４４のオーバヘッドを削減することができる。
【０１２２】
次に、ステップＳ１１２において、処理サーバ４００は、管理サーバ５００に転送していない所定量のログがログ保持部４８に貯まったか否かを判定する。処理サーバ４００は、所定量のログが貯まった場合、ログの圧縮を指示して処理をステップＳ１１２に移行し、所定量のログが貯まっていない場合、処理をステップＳ１００に戻す。例えば、ステップＳ１１２の処理は、エージェント４３により実行される。
【０１２３】
ステップＳ１１４において、処理サーバ４００は、管理サーバ５００に転送していない各ログにホスト名とパスとを付加し、ログとホスト名とパスとを含む情報を、辞書式圧縮法等のデータ圧縮アルゴリズムを使用して圧縮する。例えば、ステップＳ１１４の処理は、圧縮部４５により実行される。次に、ステップＳ１１６において、処理サーバ４００は、ログとホスト名とパスとを含む圧縮した情報を管理サーバ５００に転送し、処理をステップＳ１００に戻す。例えば、ステップＳ１１６の処理は、転送部４６により実行される。
【０１２４】
図１０は、図３に示す管理サーバ５００の動作の一例を示す。すなわち、図１０は、管理サーバ５００による情報処理方法および管理サーバ５００が実行するプログラムの一例を示す。
【０１２５】
まず、ステップＳ２００において、管理サーバ５００は、処理サーバ４００のいずれかからログを受信した場合、受信したログを解凍部５２に転送して処理をステップＳ２０２に移行し、ログを受診していない場合、ステップＳ２００の判定を繰り返す。例えば、ステップＳ２００の処理は、転送部５１により実行される。
【０１２６】
ステップＳ２０２において、管理サーバ５００は、処理サーバ４００のいずれかから受信したログを解凍し、解凍により得られたログと、ログに付加されたホスト名とパスとをログ保持部５９に格納する。例えば、ステップＳ２０２によるログの解凍は、辞書式圧縮法等のデータ圧縮アルゴリズムを使用して、解凍部５２により実行される。
【０１２７】
次に、ステップＳ２０４において、管理サーバ５００は、一定時間が経過した場合、処理をステップＳ２０６に移行し、一定時間が経過していない場合、処理をステップＳ２００に戻す。例えば、一定時間は、ステップＳ２００で受信するログの受信間隔（すなわち、処理サーバ４００によるログの送信間隔）より長い。一定時間は、一定時間が経過する毎に繰り返し測定される。ログの受信間隔より長い一定時間毎に、ステップＳ２０６以降の処理を実行することで、ログの受信毎にステップＳ２０６以降の処理を実行する場合に比べて、メッセージの抽出数を多くすることができる。したがって、パス毎のメッセージの出現回数の増分を大きくすることができ、頻出メッセージを検出するために実行されるステップＳ２０６以降の処理の頻度を減らすことができる。これにより、頻出ログ抽出部５３およびログ情報管理部５４の負荷を減らすことができる。
【０１２８】
ステップＳ２０６において、管理サーバ５００は、ステップＳ２０２による解凍で得られたログを検索し、ログに含まれる全てのメッセージを抽出する。なお、管理サーバ５００は、メッセージを一度抽出したログを再び検索しない。なお、管理サーバ５００は、一定時間の経過を待つことなく、処理サーバ４００のいずれかからログを受信する毎に、ステップＳ２０６の処理を実行してもよい。
【０１２９】
次に、ステップＳ２０８において、管理サーバ５００は、ステップＳ２０６で抽出したメッセージとパスとの複数の組み合わせの各々が統計テーブル５６に登録されているか判定する。管理サーバ５００は、メッセージとパスとの複数の組み合わせの全てが統計テーブル５６に登録済みの場合、処理をステップＳ２１２に移行する。管理サーバ５００は、メッセージとパスとの複数の組み合わせの少なくともいずれかが統計テーブル５６に登録されていない場合、処理をステップＳ２１０に移行する。ステップＳ２０８の処理は、統計テーブル５６において、判定対象のパスを含むレコードのみを検索することで実行されるため、全てのレコードを検索する場合に比べて、検索回数を削減することができ、検索効率を向上することができる。
【０１３０】
ステップＳ２１０において、管理サーバ５００は、ステップＳ２０８で判定した未登録のメッセージとパスとの組み合わせを統計テーブル５６に登録し、処理をステップＳ２１２に移行する。ステップＳ２１２において、管理サーバ５００は、ステップＳ２０８での判定結果に基づいて、統計テーブル５６に保持された出現回数を更新する。例えば、管理サーバ５００は、抽出したメッセージとパスとの組み合わせが統計テーブル５６に登録済みである場合、統計テーブル５６において、抽出したメッセージとパスとを保持するレコードに保持された出現回数を”１”増加する。また、管理サーバ５００は、抽出したメッセージとパスとの組み合わせが統計テーブル５６に未登録の場合、統計テーブル５６において、ステップＳ２１０でメッセージとパスとを新たに登録したレコードに保持された出現回数を初期値の”０”から”１”増加する。例えば、ステップＳ２０６からステップＳ２１２の処理は、頻出ログ抽出部５３により実行される。
【０１３１】
次に、ステップＳ２１４において、管理サーバ５００は、出現回数が閾値（例えば、１００回）に到達したメッセージとパスとの組み合わせが統計テーブル５６に存在するか判定する。管理サーバ５００は、出現回数が閾値に到達したメッセージとパスとの組み合わせが統計テーブル５６に存在する場合、処理をステップＳ２２２に移行する。管理サーバ５００は、出現回数が閾値に到達したメッセージとパスとの組み合わせが統計テーブル５６に存在しない場合、処理をステップＳ２１６に移行する。ステップＳ２１４の実際の処理では、統計テーブル５６の各レコードに保持された出現回数に基づいて、処理はレコード毎にステップＳ２２２またはステップＳ２１６に移行される。
【０１３２】
なお、出現回数が閾値に一度到達したメッセージとパスとの組み合わせを頻出ログ抽出部５３が抽出した場合、ステップＳ２１４の処理では、常にステップＳ２１６への移行が判定される。出現回数が閾値に到達済みか否かは、統計テーブル５６に保持された出現回数を参照することで判定される。但し、出現回数が閾値に一度到達したメッセージは、処理サーバ４００によりＩＤに変換される。このため、管理サーバ５００が、出現回数が閾値に一度到達したメッセージを受信するケースは、メッセージの出現回数が閾値に到達した後、対応するログ管理情報が処理サーバ４００の頻出メッセージ抽出テーブル４９に登録されるまでの期間に限定される。
【０１３３】
ステップＳ２１６において、管理サーバ５００は、ログ保持部５９を参照し、ステップＳ２０２による解凍で得られたログの格納場所であるパスとログの送信元を示すホスト名との組み合わせが、対応ホスト管理テーブル５８に登録済みか判定する。管理サーバ５００は、当該組み合わせが対応ホスト管理テーブル５８に登録済みの場合、当該組み合わせがログ管理情報の転送対象に設定済みであるため、処理をステップＳ２００に戻す。管理サーバ５００は、当該組み合わせが対応ホスト管理テーブル５８に未登録の場合、当該組み合わせがログ管理情報の転送対象に設定されていないため、処理をステップＳ２１８に移行する。ステップＳ２１８において、管理サーバ５００は、ステップＳ２１６で未登録と判定したパスとホスト名との組み合わせを対応ホスト管理テーブル５８に登録し、処理をステップＳ２２０に移行する。
【０１３４】
ステップＳ２２０において、管理サーバ５００は、ステップＳ２１８で新たな登録したホスト名により示されるホストに、ステップＳ２１８で新たに登録したパスに対応して頻出メッセージ管理テーブル５７に保持されているログ管理情報を転送する。これにより、ホストが増設された場合、増設されたホストが実行するサービスが出力するログに対応するログ管理情報を、増設されたホストに迅速に転送することができる。ステップＳ２２０の後、処理はステップＳ２００に戻される。
【０１３５】
ステップＳ２２２において、管理サーバ５００は、ステップＳ２１４で判定した出現回数が閾値に到達したメッセージとパスとの組み合わせにＩＤを付与する。また、管理サーバ５００は、ＩＤを付与したメッセージとパスとの組み合わせを、ＩＤとともにログ管理情報として頻出メッセージ管理テーブル５７の空いているレコードに登録し、処理をステップＳ２２４に移行する。
【０１３６】
ステップＳ２２４において、管理サーバ５００は、出現回数が閾値に到達したメッセージを含むログの格納場所を示すパスと、ログの送信元のホストとの組み合わせが、対応ホスト管理テーブル５８に登録されているかを判定する。管理サーバ５００は、当該組み合わせが対応ホスト管理テーブル５８に登録済みの場合、処理をステップＳ２２８に移行する。管理サーバ５００は、当該組み合わせが対応ホスト管理テーブル５８に未登録の場合、当該組み合わせを対応ホスト管理テーブル５８に登録するため、処理をステップＳ２２６に移行する。ステップＳ２２６において、管理サーバ５００は、出現回数が閾値に到達したメッセージを含むログの格納場所を示すパスと、ログの送信元のホストとの組み合わせを、対応ホスト管理テーブル５８に登録し、処理をステップＳ２２８に移行する。
【０１３７】
ステップＳ２２８において、管理サーバ５００は、対応ホスト管理テーブル５８を参照し、ステップＳ２２２で新たに登録したログ管理情報に含まれるパスと同じパスを含むレコードが保持するホスト名を検索する。管理サーバ５００は、検索により見つけたホスト名が示すホストにステップＳ２２２で登録したログ管理情報を転送し、処理をステップＳ２００に移行する。これにより、出現回数が閾値に到達したメッセージを含むログの格納場所を示すパスに対応する全てのホストに、ログ管理情報を転送することができる。また、対応ホスト管理テーブル５８に未登録のホストから受信したログに含まれるメッセージの出現回数が閾値に到達した場合にも、未登録のホストを含む全ての対象ホストに、ログ管理情報を転送することができる。
【０１３８】
以上、図３から図１０に示す実施形態においても、図１および図２に示す実施形態と同様の効果を得ることができる。例えば、頻出メッセージをパス毎に管理することで、エージェント４３は、頻出メッセージをパス毎に管理しない場合に比べて、頻出メッセージの検索効率を向上でき、頻出メッセージ抽出テーブル４９の検索頻度を下げることができる。したがって、頻出メッセージをパス毎に管理しない場合に比べて、ログが伝送される管理ネットワーク６０２の負荷を軽減しつつ、処理サーバ４００のオーバヘッドを削減することができる。
【０１３９】
また、管理サーバ５００は、処理サーバ４００から受信する実際のログに基づいて、頻出メッセージを管理する統計テーブル５６、頻出メッセージ管理テーブル５７および対応ホスト管理テーブル５８を動的に更新することができる。すなわち、人手を介することなく、頻出メッセージを自動的に更新することができるため、頻出メッセージを人手等により予想して設定する場合に比べて、処理サーバ４００は、ログを効率的に圧縮することができる。
【０１４０】
頻出メッセージをパス毎に管理することで、頻出メッセージの種類がサービス毎に異なる特性に対応してログを管理することができ、真の頻出ログ情報を抽出する精度を向上することができる。統計テーブル５６とは別に頻出メッセージ管理テーブル５７を設けることで、管理サーバ５００は、頻出メッセージ管理テーブル５７の該当するレコードをアクセスするだけで、頻出メッセージとパスとＩＤとを含むログ管理情報のみを取得できる。
【０１４１】
さらに、図３から図１０に示す実施形態では、共通のサービスを実行する処理サーバ４００が増設される場合にも、パスが共通であることを利用して、物理的に異なる格納場所に格納されたログをサービス毎のログとして管理することができる。換言すれば、共通のサービスを実行する処理サーバ４００が増設される場合にも、管理サーバ５００に処理サーバ４００の増設を通知することなく、物理的に異なる格納場所に格納されたログをサービス毎のログとして管理することができる。また、処理サーバ４００の増設前と増設後において、管理サーバ５００の動作フローを同じにすることができる。
【０１４２】
ログ管理情報をパス毎に管理することで、情報処理システム１０２が有する全てのホストにログ管理情報を転送する場合に比べて、管理ネットワーク６０２の負荷を減らすことができる。換言すれば、ログ管理情報をパス毎に管理することで、各ホストが有する頻出メッセージ抽出テーブル４９の更新頻度を下げることができ、管理ネットワーク６０２の負荷を減らすことができる。
【０１４３】
ログの受信間隔より長い一定時間毎に、頻出ログ抽出部５３およびログ情報管理部５４を動作させることで、頻出メッセージを検出するために実行される図１０のステップＳ２０６以降の処理の頻度を減らすことができる。この結果、頻出ログ抽出部５３およびログ情報管理部５４の負荷を減らすことができる。
【０１４４】
図１１は、図１に示す管理装置２０および図３に示す管理サーバ５００のハードウェア構成の一例を示す。管理装置２０および管理サーバ５００のハードウェア構成は、互いに同様のため、以下では、管理サーバ５００の構成が説明される。なお、図１に示すログ送信装置１０と、図３に示す処理サーバ４００および端末装置７００も、図１１と同一または同様のハードウェア構成を有する。
【０１４５】
管理サーバ５００は、マザーボード等の本体部７０と、本体部７０に接続されるモニタ８０、マウス８２およびキーボード８４とを有する。本体部７０は、バスＢＵＳを介して相互に接続されるＣＰＵ等のプロセッサ７１、メモリ７２、７３、グラフィック処理部７４、ＨＤＤ（Hard Disk Drive）７５、入力インタフェース７６、入出力インタフェース７７および通信インタフェース７８を有する。なお、本体部７０は、ＦＰＧＡを有してもよい。
【０１４６】
プロセッサ７１は、演算処理を実行する複数のプロセッサコア７１ａを有する。なお、本体部７０は、複数のプロセッサ７１を有してもよい。プロセッサコア７１ａのいずれかは、プログラムを実行することで、図１に示す管理装置２０または図３に示す管理サーバ５００の機能を実現する。なお、本体部７０に複数のプロセッサ７１が設けられる場合、複数のプロセッサ７１のいずれかにプログラムを実行させてもよい。
【０１４７】
例えば、メモリ７２は、複数のＳＤＲＡＭが搭載されたメモリモジュールであり、メモリ７３は、フラッシュメモリである。グラフィック処理部７４は、プロセッサ７１からの指示に基づいて、モニタ８０に表示させる画像データ等をモニタ８０に出力する。ＨＤＤ７５は、プロセッサ７１が実行する各種プログラム等を保持する。なお、プロセッサ７１は、ＨＤＤ７５からメモリ７２に転送された各種プログラムを実行する。
【０１４８】
入力インタフェース７６は、マウス８２およびキーボード８４等の入力装置から受信する信号をプロセッサ７１に送信する。入出力インタフェース７７は、プロセッサ７１からの指示に基づいて、記録媒体８６から各種プログラムまたはデータ等の情報を読み出し、読み出した情報をＨＤＤ７５等に書き込む。また、入出力インタフェース７７は、プロセッサ７１からの指示に基づいて、ＨＤＤ７５等に格納された情報を読み出し、読み出した情報を記録媒体８６に書き込む。記録媒体８６は、ＣＤ（Compact Disc：登録商標）、ＤＶＤ（Digital Versatile Disc：登録商標）またはＵＳＢ（Universal Serial Bus）メモリ等である。通信インタフェース７８は、管理ネットワーク６０２等のネットワークを介して、ネットワークに接続される他の装置との間で情報を送受信する。
【０１４９】
以上の図１から図１１に示す実施形態に関し、さらに以下の付記を開示する。
（付記１）
ログ送信装置からログを受信する情報処理装置において、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理する管理部と、
前記ログ管理情報を前記ログ送信装置に送信する送信部と、
前記ログ送信装置が前記ログ管理情報に基づいて前記頻出ログ情報を前記識別子に変換したログを受信する受信部と
を備えることを特徴とする情報処理装置。
（付記２）
前記管理部は、
前記ログ送信装置から受信するログに含まれる前記複数のログ情報の各々と、各ログ情報を含むログに対応するパスとの組み合わせ毎にログ情報の受信回数を管理する回数管理部と、
前記受信回数が所定の閾値に到達したログ情報を前記頻出ログ情報に決定し、決定した前記頻出ログ情報に前記識別子を付与する付与部と
を備え、
前記送信部は、前記付与部が前記識別子を付与する毎に、付与した前記識別子を含む前記ログ管理情報を、付与した前記識別子を含む前記ログ管理情報に含まれるパスに対応する前記ログ送信装置に送信することを特徴とする付記１に記載の情報処理装置。
（付記３）
前記情報処理装置は、さらに、
前記複数のログ情報の各々とパスと前記受信回数との組み合わせがそれぞれ格納される複数の記憶領域を含む第１の記憶部と、
前記頻出ログ情報とパスと前記識別子との組み合わせがそれぞれ格納される複数の記憶領域を含む第２の記憶部を備え、
前記回数管理部は、前記ログ送信装置から受信したログに基づいて、前記複数のログ情報の各々とパスと前記受信回数とを前記第１の記憶部の複数の記憶領域のいずれかに格納し、
前記付与部は、前記第１の記憶部において前記受信回数が前記所定の閾値に到達した記憶領域が保持するログ情報を頻出ログ情報として、パスおよび付与した識別子とともに前記第２の記憶部の空いている記憶領域に格納することを特徴とする付記２に記載の情報処理装置。
（付記４）
前記回数管理部は、前記ログ送信装置からのログの受信間隔より長い一定時間毎に、前記ログ送信装置から受信した複数のログに基づいて前記記憶部が保持する情報を更新することを特徴とする付記３に記載の情報処理装置。
（付記５）
前記情報処理装置は、所定のサービスを実行する複数のサービス実行部のそれぞれによりログが格納される複数の前記格納場所のそれぞれに対応する複数の前記ログ送信装置からログを受信し、互いに同じサービスを実行する複数のサービス実行部の各々がログを格納する前記格納場所を示すパスは共通であり、
前記管理部は、複数の前記ログ送信装置の各々と、複数の前記ログ送信装置の各々に対応する前記格納場所を示すパスとの組み合わせを示す装置管理情報を管理し、
前記管理部は、さらに、
前記装置管理情報に基づいて、パスが共通のサービス実行部に対応する前記ログ送信装置の各々に、共通のパスに対応する前記ログ管理情報を送信する指示を前記送信部に発行するログ情報管理部を備えることを特徴とする付記１ないし付記４のいずれか１項に記載の情報処理装置。
（付記６）
前記管理部は、さらに、
受信したログに基づいてログ送信装置とパスとの新たな組み合わせを検出した場合、前記新たな組み合わせに含まれるパスを含む前記ログ管理情報を前記新たな組み合わせに含まれるログ送信装置に送信する指示を前記送信部に発行する新規管理部を備えることを特徴とする付記１ないし付記５のいずれか１項に記載の情報処理装置。
（付記７）
前記識別子の情報量は、前記頻出ログ情報の情報量よりも小さいことを特徴とする付記１ないし付記６のいずれか１項に記載の情報処理装置。
（付記８）
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を、ログを管理する管理装置から受信する受信部と、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定する判定部と、
前記判定部が一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換する変換部と、
前記変換部が変換した識別子を含むログを前記管理装置に送信する送信部と
を備えることを特徴とする情報処理装置。
（付記９）
ログを送信する第１の情報処理装置と、前記第１の情報処理装置から受信するログを管理する第２の情報処理装置とを備える情報処理システムにおいて、
前記第１の情報処理装置は、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を前記第２の情報処理装置から受信する受信部と、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定する判定部と、
前記判定部が一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換する変換部と、
前記変換部が変換した識別子を含むログを前記第２の情報処理装置に送信する送信部と
を備え、
前記第２の情報処理装置は、
前記ログ管理情報を管理する管理部と、
前記ログ管理情報を前記第１の情報処理装置に送信する送信部と、
前記第１の情報処理装置の前記変換部が変換した識別子を含むログを受信する受信部と
を備えることを特徴とする情報処理システム。
（付記１０）
ログ送信装置からログを受信する情報処理装置に、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理し、
前記ログ管理情報を前記ログ送信装置に送信し、
前記ログ送信装置が前記ログ管理情報に基づいて前記頻出ログ情報を前記識別子に変換したログを受信する
処理を実行させることを特徴とするプログラム。
（付記１１）
ログを送信するログ送信装置に、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を、ログを管理する管理装置から受信し、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定し、
一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換し、
変換した識別子を含むログを前記管理装置に送信する
処理を実行させることを特徴とするプログラム。
（付記１２）
ログ送信装置からログを受信する情報処理装置に、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を管理し、
前記ログ管理情報を前記ログ送信装置に送信し、
前記ログ送信装置が前記ログ管理情報に基づいて前記頻出ログ情報を前記識別子に変換したログを受信する
処理を実行させるプログラムを記憶したことを特徴とする記録媒体。
（付記１３）
ログを送信するログ送信装置に、
ログに含まれる複数のログ情報のうち他のログ情報より発生頻度の高い頻出ログ情報と、前記頻出ログ情報を識別する識別子と、ログの発生元毎に割り当てられるログの格納場所を示すパスとの対応を示すログ管理情報を、ログを管理する管理装置から受信し、
前記ログ管理情報に含まれるパスで示される前記格納場所に格納されたログに含まれるログ情報が、前記ログ管理情報に含まれる頻出ログ情報と一致するかを判定し、
一致を判定した頻出ログ情報を前記ログ管理情報に含まれる識別子に変換し、
変換した識別子を含むログを前記管理装置に送信する
処理を実行させるプログラムを記憶したことを特徴とする記録媒体。
【０１５０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１５１】
１０…ログ送信装置；１１…サービス実行部；１２…ログデータベース；１３…受信部；１４…頻出ログ情報保持部；１５…判定部；１６…変換部；１７…送信部；２０…管理装置；２１…受信部；２２…管理部；２３…回数管理部；２４…付与部；２６…ログ情報保持部；２７…頻出ログ情報保持部；２８…ログデータベース；２９…送信部；４１（４１Ａ、４１Ｂ、４１Ｃ）…サービス実行部；４２…ログデータベース；４３…エージェント；４４…変換部；４５…圧縮部；４６…転送部；４７…記憶部；４８…ログ保持部；４９…頻出メッセージ抽出テーブル；５１…転送部；５２…解凍部；５３…頻出ログ抽出部；５４…ログ情報管理部；５５…記憶部；５６…統計テーブル；５７…頻出メッセージ管理テーブル；５８…対応ホスト管理テーブル；５９…ログ保持部；１００、１０２…情報処理システム；４００（４００Ａ、４００Ｂ、４００Ｃ）…処理サーバ；５００…管理サーバ；６０２…管理ネットワーク；６０４…ユーザネットワーク；６０６…ネットワーク；７００（７００Ａ、７００Ｂ）…端末装置
【図１】
2019106001.tif 000003
【図２】
2019106001.tif 000004
【図３】
2019106001.tif 000005
【図４】
2019106001.tif 000006
【図５】
2019106001.tif 000007
【図６】
2019106001.tif 000008
【図７】
2019106001.tif 000009
【図８】
2019106001.tif 000010
【図９】
2019106001.tif 000011
【図１０】
2019106001.tif 000012
【図１１】
2019106001.tif 000013