JP5746585B2 - Log management system, log management method, application server, and log server - Google Patents
Log management system, log management method, application server, and log server Download PDFInfo
- Publication number
- JP5746585B2 JP5746585B2 JP2011170450A JP2011170450A JP5746585B2 JP 5746585 B2 JP5746585 B2 JP 5746585B2 JP 2011170450 A JP2011170450 A JP 2011170450A JP 2011170450 A JP2011170450 A JP 2011170450A JP 5746585 B2 JP5746585 B2 JP 5746585B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- unit
- server
- file
- application server
- 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.)
- Expired - Fee Related
Links
Images
Description
クラウド環境における、ログの管理を行うログ管理システム、ログ管理方法、アプリケーションサーバ、およびログサーバに関する。 The present invention relates to a log management system, a log management method, an application server, and a log server that manage logs in a cloud environment.
近年、クラウドコンピューティングシステムと呼ばれる技術が注目を集めている。クラウドコンピューティングシステムにおいて、クラウドサービスベンダーは、インターネット上に、仮想的なサーバ(VM:Virtual Machine)やストレージ、また種々のサービスを提供する。アプリケーション開発者は、クラウドサービスベンダーに利用料を支払い、それらのサービスを使用することで、クラウドアプリケーションの開発が可能となる。 In recent years, a technology called a cloud computing system has attracted attention. In a cloud computing system, a cloud service vendor provides a virtual server (VM), storage, and various services on the Internet. An application developer pays a usage fee to a cloud service vendor and uses those services to develop a cloud application.
ここで、クラウドコンピューティングシステムにおける、ログの管理方法について考える。クラウドサービスでは、複数のサーバ(VM)上でサービスが提供されており、それぞれのサービスで、ログが出力される。特許文献1では、サーバ上に実装されたクライアントが、各サーバ上で出力されたログをログ管理サーバに送信する。これにより、ログの一元的な管理が可能となり、ログの集計や、表示、出力といった作業のパフォーマンス、および効率を上げることが出来る。 Here, a log management method in a cloud computing system is considered. In the cloud service, services are provided on a plurality of servers (VMs), and a log is output from each service. In Patent Document 1, a client mounted on a server transmits a log output on each server to a log management server. As a result, unified management of logs is possible, and performance and efficiency of operations such as log aggregation, display, and output can be improved.
クラウドサービスのように、多くのユーザが使用し、かつ、異なる人物が、同じユーザID(アカウント)等を用いてログイン可能なシステムを考える。このとき、各ユーザが同一のイベント(例えば、プリント等)の処理を行うことが可能であるため、イベントを特定する項目からのみでは、収集したログが、すでに保持管理しているログと重複しているかどうかの判断はできない。 Consider a system that can be used by many users and logged in using different user IDs (accounts) or the like, such as a cloud service. At this time, since each user can process the same event (for example, printing), the collected log overlaps with the log that is already held and managed only from the item specifying the event. Judgment is not possible.
また、あるクライアントがログを送信できない状態に陥っている場合に、サーバがログの集計を行うと、あるクライアントから集めるべきログが収集できないため、その間のログの記録漏れが発生する。 In addition, when a certain client falls into a state in which logs cannot be transmitted, if the server performs log aggregation, logs to be collected from a certain client cannot be collected, and log recording during that time occurs.
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、ユーザからの要求に応じてサービスを提供するアプリケーションサーバと、前記アプリケーションサーバが提供したサービスのログを蓄積するログサーバとを含むログ管理システムであって、前記アプリケーションサーバは、ユーザからの要求に応じて行った処理のログをファイルに出力するログファイル出力手段と、前記ログファイル出力手段にてログが出力されたファイルのうち、収集対象となるファイルから前記ログを収集して前記ログサーバに送信する1以上のログデータ収集手段と、前記1以上のログデータ収集手段を一意に特定するための識別子を生成し、当該識別子を前記ログサーバに提供する提供手段とを有し、前記ログサーバは、前記アプリケーションサーバから送信されたログを受信し、記憶部に記憶する記憶手段を有し、前記記憶手段は、受信したログに対応付けられた前記アプリケーションサーバから提供された識別子とすでに前記記憶部に記憶されているログに対応付けられた識別子とが一致し、かつ受信したログに含まれる当該ログを一意に特定するための他の情報とすでに前記記憶部に記憶されているログに含まれる当該ログを一意に特定するための他の情報とが一致している場合に当該受信したログを記憶させず、それ以外の場合に当該受信したログを記憶することを特徴とするログ管理システム。 In order to solve the above problems, the present invention has the following configuration. That is, a log management system including an application server that provides a service in response to a request from a user and a log server that accumulates a log of the service provided by the application server, the application server receiving a request from the user Log file output means for outputting a log of processing performed according to the file, and the log server that collects the log from the files to be collected among the files output by the log file output means One or more log data collecting means for transmitting to the log, and an providing means for generating an identifier for uniquely identifying the one or more log data collecting means and providing the identifier to the log server. The server receives the log transmitted from the application server and stores it in the storage unit. And the storage means receives an identifier provided by the application server associated with the received log and an identifier associated with the log already stored in the storage unit, and receives The other information for uniquely identifying the log included in the recorded log matches the other information for uniquely identifying the log included in the log already stored in the storage unit The log management system is characterized in that the received log is not stored in, and the received log is stored in other cases.
本発明により、複数のユーザからの要求に応じて並行して処理を行うシステムにおいて、処理を行った結果としてのログに対し、重複したログの保存を防止し、かつ、ログの記録漏れを避けることが可能となる。 According to the present invention, in a system that performs processing in parallel in response to requests from a plurality of users, it is possible to prevent duplicate logs from being saved and avoid omission of log recording for logs as a result of processing. It becomes possible.
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[システム構成]
図1は、本発明の一実施形態に係るログ管理システムの全体構成を示している。ネットワーク100を介して、PC101、アプリケーションサーバ102、ログサーバ103、ストレージサーバ104、およびバッチアプリケーションサーバ105が接続されている。アプリケーションサーバ102は、PC101からのネットワーク100を介して送信されるリクエストを受信し、処理を行う。ログサーバ103は、アプリケーションサーバ102から送信されるログを受信し、ストレージサーバ104に保存させる機能、および、バッチアプリケーションサーバ105からのログデータの出力要求を受信し、該当の処理を行う機能を備える。ストレージサーバ104は、ログサーバ103が収集したログを保存する。
[System configuration]
FIG. 1 shows the overall configuration of a log management system according to an embodiment of the present invention. A PC 101,
ネットワーク100は、上述の各装置間での情報をやりとりのための通信回線として働き、有線、無線と回線の形態は問わない。また、ネットワーク100は、インターネットなどの外部ネットワークやLANなどの内部ネットワークを組み合わせて構成されるものとする。
The
また、図1において、2台のアプリケーションサーバ102を示しているが、これに限定するものではない。同様に各サーバも1台構成に限定するものではなく、複数台の物理的な構成を備えていても構わない。また、本実施形態において、各サーバを機能ごとに別個の装置として示しているが、単一の装置にて実現するようにしても構わない。例えば、ログサーバ103、ストレージサーバ104、およびバッチアプリケーションサーバ105を1台の装置にて構成するようにしても構わない。また、物理的に1台の装置において複数のVMが動作するように構成してもよいし、複数の物理的な装置が協働して複数のVMが動作するように構成してもよい。
In FIG. 1, two
[ハードウェア構成]
図2は、本発明の一実施形態に係るハードウェア構成を示している。なお、図1に示した各装置も同様の構成を有するものとし、ここではアプリケーションサーバ102を例にとって説明する。
[Hardware configuration]
FIG. 2 shows a hardware configuration according to an embodiment of the present invention. It is assumed that each device shown in FIG. 1 has the same configuration, and here, the
アプリケーションサーバ102は、CPU(Central Processing Unit)201、直接記憶部202、間接記憶部203、およびネットワークインタフェース204を備える。CPU201は、各記憶部に格納された所定のプログラムを実行し、アプリケーションサーバ102の各種制御を指示するユニットである。直接記憶部202は、CPU201がプログラムを実行する際に使用するワークメモリであり、CPU201が実行するプログラムは直接記憶部202にロードされる。直接記憶部202は、RAM(Randam Access Memory)により実現される。間接記憶部203は、アプリケーションプログラム、およびOS(Operating System)を含む各種プログラムが記憶されている。
The
間接記憶部203に記憶されている各種プログラムは、CPU201がプログラムを実行する際に直接記憶部202へ読みだされる。間接記憶部203は、ROM(Read Only Memory)、HDD(Hard Disc Drive)、または、SSD(Solid State Drive)により実現される。なお、CPU201は、マルチプロセッサでも良い。また、アプリケーションサーバ102内の各構成要素は、内部バス(不図示)によって互いに通信可能なように接続されている。ネットワークインタフェース204は、ネットワーク100に接続されており、ネットワーク100に接続されている他の装置と通信が可能となる。PC101、ログサーバ103、ストレージサーバ104、およびバッチアプリケーションサーバ105も同様のハードウェア構成をしているため、説明は割愛する。また、各装置は、ここに示していない構成要素を備えていても構わず、汎用的なコンピュータにて実現可能である。
Various programs stored in the
[ソフトウェア構成]
図3は、本発明の一実施形態に係るシステムを構成する各装置の機能ブロック図(ソフトウェア構成)を示す。まず、PC101についての説明を行う。PC101は、ネットワーク通信部313、ユーザインタフェース312、ウェブブラウザ311から構成される。ユーザインタフェース312は、ユーザが、PC101によって提供される各種アプリケーション(不図示)を使用するためのインタフェースである。これを介して入力されるユーザ操作に従って、PC101は、各種アプリケーションを実行する。アプリケーションの1種であるウェブブラウザ311は、ネットワーク100を介して、ネットワーク通信部313から送受信される情報に応じて、各種情報の表示を行う。
Software configuration
FIG. 3 is a functional block diagram (software configuration) of each device constituting the system according to the embodiment of the present invention. First, the
ウェブブラウザ311は、図2の間接記憶部203に保存されているプログラムが、直接記憶部202にロードされ、CPU201により実行されることで実現される。本実施形態では、PC101を操作するユーザが、ユーザインタフェース312、ネットワーク通信部313を介してアプリケーションサーバ102のリクエスト処理部3211と通信を行い、データの送受信を行う。
The
次に、アプリケーションサーバ102上に実装されるアプリケーション部321に含まれるリクエスト処理部3211、ログファイル出力部3212、リクエスト処理部状態監視部3213に関して説明する。リクエスト処理部3211は、PC101からのリクエストを受信し、受信した内容に応じた処理を行う。例えば、アプリケーションサーバ102がオンライン上でのプリントサービスを実現しているとする。ユーザは、PC101を用いて印刷をする対象のドキュメントを選択し、また印刷設定などを指定し、アプリケーションサーバ102に対して、印刷処理のリクエストを送信する。アプリケーションサーバ102は、受信したリクエストに従ってドキュメントを印刷可能な形式に変換し、プリントサーバ(不図示)に送信するといった処理を行う。
Next, the
ここでは、一例としてプリントシステムの例を述べたが、アプリケーションサーバ102にて実現される機能に制限は存在しない。リクエスト処理部3211は、一般的なWebサーバと同等の機能を持ち、同期処理を行うことが可能である。リクエスト処理部3211は、ネットワーク100を介して、別のアプリケーションサーバ102と通信することも可能である。また、リクエスト処理部3211は、定期的にリクエスト処理部状態監視部3213に対して、動作中を表すパケットを送信する。
Here, an example of a print system has been described as an example, but there is no limitation on the functions realized by the
ログファイル出力部3212は、リクエスト処理部3211の処理内容に応じて、その処理のログをファイルに出力する。この際、出力されるログには、そのリクエストに対する処理が行われた時間が記録されている必要がある。その他の項目(例えば、ユーザカウントや、処理の内容に関するログ)に関しては、任意の項目を出力してもよい。ログのフォーマットに関する制約は特に存在せず、任意のフォーマット、例えばコンマ区切りやタブ区切り等、種々の形式での出力が可能である。また、処理内容やアプリケーションごとに、異なるファイルにログを出力することができる。
The log
リクエスト処理部状態監視部3213は、リクエスト処理部3211から定期的にパケットが送信されてくるか否かを監視する。パケットが送信されてこなかった場合には、リクエスト処理部状態監視部3213は、リクエスト処理部3211が動作継続不能状態になっているものとし、フェールオーバーを行う。フェールオーバーのフローに関しては、図14を用いて後述する。
The request processing unit
次に、アプリケーションサーバ102上に実現されるログ収集エージェント部322に関して説明する。ログ収集エージェント部322は、複数の処理部(ログデータ収集部3221、ログデータ送信部3222、ステータス送信部3223、ログフィルタ部3224、およびID管理部3225)から構成される。以下に、各処理部の説明を記載する。
Next, the log
まず、ログデータ収集部3221は、ログファイル出力部3212がファイルに出力したログファイルから、ログを読み込む。前述したようにログファイル出力部3212は、任意のフォーマットで記述されたログをファイルに出力する。ストレージサーバ104のログDB部341に定義されたスキーマに沿ってログを保存するためには、任意のフォーマットで記載されたログを、スキーマに従った形式に変換する必要がある。そこで、ログフィルタ部3224を用いて、ファイルに記載されたログのフォーマットを、スキーマに適する形式に変換する。
First, the log
ログフィルタ部3224は、ログデータ収集部3221から渡されたログをスキーマに従った形式に変換し、ログデータ収集部3221に返す。ログフィルタ部3224が適切な形式に変換することにより、任意のフォーマットへの対応が可能となる。ログフィルタ部3224の詳細については図5を用いて説明する。ここで、1つのアプリケーションサーバ102には、複数のログ収集エージェント部322を動作させることが出来る。ログ収集エージェント部322は、設定ファイルを備え、それぞれに対して、収集対象とするログファイルの名前等を定義することが出来る。
The
また、ログフィルタ部3224も、それぞれに対して設定することが出来る。これにより、例えばログファイル出力部3212が複数のログファイルを、異なるフォーマットで出力する場合にも、対応することが出来る。
The
ログデータ収集部3221は、ログフィルタ部3224によって変換されたログデータを、ログデータ送信部3222に渡す。ログデータ送信部3222は、ログデータ収集部3221から渡された、ログデータをログDBリクエスト処理部331に送信する。ログDBリクエスト処理部331は、受信したログデータをログDB部341に保存する。ログDB部341に保存されるログデータには、時刻やログを発生させる処理を行ったユーザID、処理の内容等の情報が記載されており、それらの情報を基にユーザに対して、サービスの使用量に応じた請求をすることも可能である。ログDB部341のスキーマについては後述する。
The log
また、ログデータ収集部3221は、ログデータの送信処理が正常に終了した場合には、ステータス送信部3223に対して、ログファイルからログを収集した時刻を通知する。ステータス送信部3223は、その時刻をステータスDBリクエスト処理部333に送信する。この際、ログ収集エージェント部322を識別するための情報として、各ログ収集エージェント部に対して割り当てられたIDを対応付けて送信する。ステータスDBリクエスト処理部333は、受信したIDと時刻との組を、ストレージサーバ104のステータスDB部342に保存する。このIDと時刻との組をステータスとして扱い、ステータスはステータスに含まれるIDを備えるログ収集エージェント部322が何時までのログを保存しているかを示す情報となる。
In addition, when the log data transmission process ends normally, the log
また、ログ収集エージェント部322には、IDを発行するための処理部として、ID管理部3225が存在する。ID管理部3225は、ログ収集エージェント部322の起動と同時に処理を開始し、当該ログ収集エージェント部に固有のIDを発行し、ログデータ収集部3221にそのID情報を通知する。このIDは、アプリケーションサーバ102上のファイル(IDファイル)として管理される。IDファイルのフォーマット、ファイル名、および保存パス等に関しては図6を用いて後述する。
The log
次に、バッチアプリケーションサーバ105に含まれる各処理部を説明する。バッチアプリケーションサーバ105上では、ログDB部341に格納されたログを出力するためのアプリケーション(アーカイブアプリケーション)が実装されている。まず、取得日時指定部351では、ログDB部341から取得する時刻の範囲を指定し、その範囲を、ログデータ取得部353に対して通知する。
Next, each processing unit included in the
次に、ステータス確認部352は、ログサーバ103のステータスDBリクエスト処理部333に対して、ステータス取得のリクエストを送信する。また、ステータス確認部352は、ログサーバ103のログDBリクエスト処理部331に対して、ログDB部341に保存されているログの中で、最も古い時刻を持つログの時刻の取得リクエストを送信する。ログDBリクエスト処理部331はリクエストを受信したら、ログDB部341に格納されているログの時刻から、最も古い時刻を取得し、ステータス確認部352に送信する。その後、ステータス確認部352は、受信した最も古い時刻のログの時刻と、ステータスに記録されている時刻とをログデータ取得部353に通知する。
Next, the
ログデータ取得部353は、取得日時指定部351、およびステータス確認部352から通知された時刻を比較する。比較のロジックに関しては、後述のフローチャートの説明にて詳細に述べる。比較の結果、取得日時指定部351より通知された範囲のログデータの取得が可能と判断した場合には、ログDBリクエスト処理部331に対してログ取得要求のリクエストを送信する。ログDBリクエスト処理部331は、リクエストを受信したら、ログDB部341からログを取得し、ログデータ取得部353に送信する。ログデータ取得部353は、受信したデータをログデータ出力部354に渡す。ログデータ出力部354は、受け取ったログデータの形式を整形し、ファイルに出力する。
The log
次に、ログサーバ103について説明する。まず、ログDBリクエスト処理部331は、アプリケーションサーバ102、およびバッチアプリケーションサーバ105から送信されるストレージサーバ104のログDB部341に対する処理に関するリクエストを受信する。そして、ログDBリクエスト処理部331は、受信したリクエストに応じた処理を行う。また、ログDBリクエスト処理部331は、リクエストを受信した際には、ログDBI/O部332に対して、処理のリクエストを送信する。ログDBI/O部332は、ログDBリクエスト処理部331から受信したリクエストに応じた処理をログDB部341に対して実行する。同様に、ステータスDBリクエスト処理部333は、アプリケーションサーバ102、およびバッチアプリケーションサーバ105から送信されるステータスDB部342に対する処理に関するリクエストを受信する。そして、ステータスDBリクエスト処理部333は、受信したリクエストに応じた処理を行う。また、ステータスDBリクエスト処理部333は、リクエストを受信した際には、ステータスDBI/O部334に対して、処理のリクエストを行う。ステータスDBI/O部334は、ステータスDBリクエスト処理部333から受信したリクエストに応じた処理をステータスDB部342に対して実行する。
Next, the
次に、ストレージサーバ104について説明する。ログDB部341は、ログサーバ103を介して収集した各ログを蓄積し、保存する。ステータスDB部342は、アプリケーションサーバ102が有する各ログ収集エージェント部のステータスとIDとを対応付けて保持する。ここでのデータ構造に関しては、図8を用いて後述する。また、各DB(データベース)部は、ストレージサーバ104が備える間接記憶部等によって実現される。
Next, the
[ログ収集エージェント部の設定ファイル]
図4を用いて、各ログ収集エージェント部が備える設定ファイルに設定可能な項目の説明を行う。まずログフィルタ部3224に関する設定項目であるフィルタ名4011、およびアセンブリ名4012に関して説明する。本実施形態において、アプリケーションサーバ102は、VMの技術を利用して物理的な1台の装置において、複数の仮想的に異なるサーバを提供することができる。この場合には、設定ファイルも1台の装置の中に複数保持することとなる。前述したようにログ収集エージェント部322はログフィルタ部3224を備える。ログフィルタ部3224は、収集対象のログファイルのフォーマットによって変わりうるため、ログデータ収集部3221を変更することなく、ログフィルタ部3224を変更可能なようにすることが望ましい。そこで、実行時にリンクすることが可能な形式(例えば、Windows(登録商標)であればdll(Dynamic Link Library)ファイル)で、ログフィルタ部3224を実装する。
[Setting file for log collection agent section]
The items that can be set in the setting file included in each log collection agent unit will be described with reference to FIG. First, the filter name 4011 and the assembly name 4012 which are setting items related to the
また、設定ファイルに、そのアセンブリパスを記載し、ログデータ収集部3221が実行時に、動的に読み込むことが出来るようにすることで、ログフィルタ部3224を容易に変更可能とする。ここで、設定ファイル中のlogFilterタグは複数作成することが出来、複数のログフィルタ部に関する設定を1つの設定ファイルに記述することが出来る。その際、各logFilterタグに割り振られたフィルタ名4011は一意となるように設定する必要がある。
In addition, the assembly path is described in the setting file so that the log
次にagentタグについて説明する。agentタグには、ログデータ収集部3221に関する設定を記述する。以下に設定項目に関する説明を述べる。Agent名4013は、agentを一意に識別する名前である。agentタグは、複数記述することが出来、各agentタグに割り当てられたAgent名4013はログデータ収集部3221を特定するために一意となる必要がある。
Next, the agent tag will be described. In the agent tag, settings related to the log
次に、interval4014には、agent(ログデータ収集部3221)の起動間隔を設定する。指定された間隔に応じて、ログデータ収集部3221は、各サービスのログファイルからのログの読み込み処理を行う。dir4015は、ログデータ収集部3221が、収集を行う対象のログファイルが存在するフォルダパスを記述する。また、filenameRegEx4017は、収集対象のファイル名の正規表現を記載する。ログデータ収集部3221は、dir4015に存在し、filenameRegEx4017に一致する全てのファイルを収集対象とする。
Next, in interval 4014, the activation interval of the agent (log data collection unit 3221) is set. In accordance with the specified interval, the log
includeSubDir4016には、dir4015以下に存在するサブフォルダに含まれるログも、収集対象とする否かを設定する。logFilter−ref4018には、使用するフィルタ名4011を設定する。ここで設定したlogFilter名に一致するアセンブリをロードし、ログフィルタ部3224を作成する。logServer4019、およびstatuServer4020には、ログデータ収集部3221が接続するログDBリクエスト処理部331、およびステータスDBリクエスト処理部333のアドレスを設定する。ログ収集エージェント部322は、その起動時にこの設定ファイルを読み込み、その設定に従って処理を行う。詳細な処理フローに関しては、図12を用いて後述する。
In the includeSubDir 4016, it is set whether or not the logs included in the subfolders existing under the dir 4015 are to be collected. A log name 4011 to be used is set in logFilter-ref 4018. The assembly that matches the logFilter name set here is loaded, and the
[ログフィルタI/F]
図5(a)に、ログフィルタI/Fの定義例を示す。ログ収集エージェント部322のログフィルタ部3224を作成する場合には、ログフィルタI/F501を実装したモジュールを作成する必要がある。図5(a)に示した例では、プログラミング言語としてC#を選択し、C#に基づいたI/F定義の例を記載している。しかしながら、プログラミング言語を限定するものではなく、ログ収集エージェント部322がロードできるモジュールの作成が可能であれば、いずれのプログラム言語を用いても構わない。
[Log Filter I / F]
FIG. 5A shows a definition example of the log filter I / F. When creating the
プログラム言語としてC#を用いた場合、図5(a)に示すようにインタフェース定義部分は、クラス5011、戻り値5012、関数5013、引数5014から構成される。ログフィルタ部3224の作成者は、クラス5011を継承したクラスを作成したクラスを作成し、そのクラスで関数5013を備える関数を実装する。この関数には、ログ収集エージェント部322がログファイルから読みだした1行の文字列が引数5014に与えられる。ログフィルタ部3224の作成者は、引数5014を解析し、図5(b)に示す様なプロパティを備えるクラスを作成し、戻り値5012として返す関数を実装する。
When C # is used as the program language, the interface definition portion is composed of a class 5011, a
図5(b)に、LogDataクラスのプロパティの定義例を示す。本プロパティの定義も同様に、プログラミング言語としてC#を用いた場合の定義例を示している。 FIG. 5B shows a definition example of properties of the LogData class. Similarly, the definition of this property shows a definition example when C # is used as a programming language.
以下に、各プロパティの説明を記載する。TimeStamp5021は、ログに記載されている時刻(タイムスタンプ)を設定するためのプロパティである。TenantId5022には、ログを出力するきっかけとなった操作を行ったユーザが所属するテナント(会社、組織)を識別するためのIDを設定するためのプロパティである。UserId5023は、ログを出力する起因となった操作を行ったユーザを識別するためのIDを設定するためのプロパティである。ServiceId5024は、ユーザが行った操作の内容、例えば、Print、Scanといった操作の種類を表すためのIDである。最後に、ObjetctID5025には、処理の対象、例えばプリントの場合であれば、プリントしたドキュメントの名前などを設定するためのプロパティである。
A description of each property is given below.
図5(b)における本定義例では、上記5つのプロパティを定義したが、これに限定するものではない。その他の項目をログとして記録したい場合には、LogDataクラス502にプロパティを追加し、関数5013の実装にて、その項目に値を設定するように、ログフィルタ部3224の実装を行う。また、TimeStamp5021以外の項目をログとして記録しない場合には、プロパティをクラスの定義から削除しても構わない。
In this definition example in FIG. 5B, the above five properties are defined, but the present invention is not limited to this. When other items are to be recorded as a log, a property is added to the
[IDファイル]
図6を用いて、IDファイルの説明を行う。本実施形態に係るIDファイルは図6に示す様なスキーマによって構成される。IDファイルはagentId6011タグから構成され、その属性であるidには、ログ収集エージェント部322を一意に識別するための識別子(GUID:Global Unique IDentifier)を設定する。GUIDは、ログ収集エージェント部322が起動する際に、ログ収集エージェント部322自身で作成する。この作成されるIDファイルは、前述したログ収集エージェント部322の設定ファイルにおいてdir4015が示すフォルダに保存される。もし、フォルダが存在しない場合には、ログ収集エージェント部322は起動しない。また、IDファイルのファイル名は、設定ファイルのfilenameRegEx4017から生成される文字列を使用する。
[ID file]
The ID file will be described with reference to FIG. The ID file according to the present embodiment is configured by a schema as shown in FIG. The ID file is composed of an
前述したようにfilenameRegEx4017には正規表現が設定されるため、「?」や「¥」等のファイル名には指定出来ない文字列が設定される可能性がある。そのため、filenameRegEx4017に指定された文字列から、ファイル名に使用できる文字列への変換処理を行う。具体的には、Base64エンコーディングを用いて文字列変換することや、「¥」などの文字列を「bs」などの文字列に置き換えることがあげられる。ここで、変換の際の条件として、変換前の文字列と変換後の文字列が写像関係になっていることが挙げられる。 Since a regular expression is set in filenameRegEx 4017 as described above, a character string that cannot be specified in a file name such as “?” Or “¥” may be set. Therefore, a conversion process is performed from a character string specified in filenameRegEx 4017 to a character string that can be used as a file name. Specifically, character string conversion using Base64 encoding or replacement of a character string such as “¥” with a character string such as “bs” can be given. Here, as a condition at the time of conversion, there is a mapping relationship between the character string before conversion and the character string after conversion.
なお、本実施形態では、1台の物理的な装置の中に複数のVM(アプリケーションサーバ)を動作させている場合には、各VMそれぞれのログ収集エージェント部322ごとにIDファイルが生成されることとなる。
In this embodiment, when a plurality of VMs (application servers) are operated in one physical device, an ID file is generated for each log
[レコードファイル]
前述したように、ログデータ収集部3221は、定期的にログファイルを読み込む。そして、ログデータ収集部3221は、新規に追加されたログのみに対して、ログフィルタ部3224を用いて整形し、ストレージサーバ104のログDB部341にログデータを格納する。このように新規に追加されたログのみを対象とすることで、パフォーマンスを向上させることが出来る。新規に追加されたログのみを対象とするために、前回の収集時に、ログデータ収集部3221が収集を行ったファイルの位置や、収集を行った時間などを記録する必要がある。そのデータを、ログの収集状況を示すレコードファイルと呼ばれるファイルに記載する。ここで、レコードファイルはログ収集エージェント部322が存在するフォルダに、動的に作成される。また、レコードファイルのファイル名は、ログ収集エージェント部322の設定ファイルにおいて、Agent名4013の末尾に「.xml」を追記したファイル名とする。
[Record file]
As described above, the log
図7を用いて、本実施形態に係るレコードファイルの説明を行う。レコードファイルは、図7に示す様な形式のファイルである。recordタグは、filename7011、updateTime7012、offset7013、lineNumber7014の4つの属性から構成される。recordタグは、ログデータ収集部3221が収集対象とするファイルの数だけ作成される。filename7011は、ログデータ収集部3221が収集しているログファイルの名称が設定される。updateTime7012には、ログデータ収集部3221が、前回の収集を行った時間を設定する。filename7011が示すファイルに対して、過去に収集処理を行っていない場合には、初期値として“1970/01/01 00:00:00”が設定される。
The record file according to the present embodiment will be described with reference to FIG. The record file is a file having a format as shown in FIG. The record tag is composed of four attributes: filename 7011, updateTime 7012, offset 7013, and lineNumber 7014. The record tags are created for the number of files to be collected by the log
offset7013には、ログデータ収集部3221が収集が完了した個所への、ファイル先頭からのバイト数(データサイズ)が設定される。最後に、lineNumber7014には、収集が完了したログの行番号が設定される。filename7011が示すファイルに対して、収集処理を行っていない場合には、offset7013、およびlineNumber7014には、“0”が設定される。ログデータ収集部3221は、前述したinterval4014毎に起動し、レコードファイルを読み込む。その後、filename7011の更新時間をチェックし、その時間とupdateTime7012とを比較する。updateTime7012の方が古い場合には、ログデータ収集部3221は、ファイル先頭からoffset7013が示すバイト数だけファイルを移動し、ログの収集を開始する。ログの収集が完了した場合には、各項目の更新を行う。このようにすることで、新規に追加されたログのみを収集することが出来る。図7にはXML(extensible Markup Language)のフォーマットで各情報が記載されているが、XML形式である必要はなく。コンマ区切り(CSV形式)等で、各項目が記載されていても問題はない。
In offset 7013, the number of bytes (data size) from the beginning of the file to the location where the log
[ログDB]
図8を用いて、本実施形態に係るログDB部341にて保持されるログDB801の説明をする。まず、ログDB801に必要な項目としては、TimeStamp8011、AgentID8012、FileName8013、LineNumber8014の4つの項目が存在する。TimeStamp8011には、そのログに記録されている事象が発生していた時間が格納される。AgentID8012には、そのログを収集したログ収集エージェント部322が有する、IDファイルに記載されているIDが格納される。FileName8013には、そのログが記録されていたログファイルのファイルパスが記載される。最後にLineNumber8014には、そのログのログファイルに置ける行番号が格納される。
[Log DB]
The
これらの4つの項目は、ログDB部341のログDB801への、同じログを2度以上重複して記録すること(以下、2重記録)を防ぐために必要となる。例えば、前述したレコードファイルが、何らかの理由で読み込めなくなった場合、ログデータ収集部3221は、収集対象のフォルダに存在する全てのファイルの先頭から、再度収集を行ってしまう。その際、すでに収集したログをログDB部341に再度格納するため、その結果として2重記録が発生する。そこで、本実施形態では、上記4つの項目が一意となるようにログDB801に制約を張る。例えば、RDBMS(Relatinal DataBase Managemenet System)の場合には、上記4つの項目をUniqueとなるように制約を張ることで、2重記録防止の対応が可能となる。また、Key−Value Storeの場合には、上記4つの文字列の組み合わせをキーとして定義することで、同じキーを持つデータの格納が出来なくなり、重複した記録を防止する対応が可能となる。
These four items are necessary to prevent the same log from being recorded twice or more in the
上記4つの項目以外の項目に関しては、ログとして残す必要がある項目に応じて、任意に追加することが可能である。例えば、図8の場合、TenantID8015、UserID8016、ServiceID8017、ObjectID8018がログの項目として列挙されている。TenantID8015には、その処理を行ったユーザが所属する組織(例えば会社等)が記録される。UserID8016には、その処理を行ったユーザを特定するための情報が記録される。ここで、UserIDのみでそのユーザが特定される必要はなく、例えばTenantIDとの組み合わせでそのユーザを一意に特定できればよい。
Items other than the above four items can be arbitrarily added depending on the items that need to be left as a log. For example, in the case of FIG. 8,
ServiceID8017には、そのユーザが使用したサービスのIDが記録される。例えばユーザ追加機能や、Print、Scanといった機能のサービスIDが記録される。最後に、ObjectID8018には、処理を行った対象が記録される。例えばユーザの追加処理(Add User)であれば、追加されたユーザIDが記録される。また、Printや、Scanであれば、その対象のドキュメント名などが記録される。上記で上げた項目以外を記録した場合には、その項目のカラムなどを追加することで、新しい項目を記録することが可能となる。
なお、本実施形態では、TimeStamp8011、AgentID8012、FileName8013、LineNumber8014の4つの項目をキーとして、ログを格納するか否かを判定している。しかし、これに限定するものではなく、AgentID8012以外の項目については、これらの項目のうちのいずれかであってもよいし、更に別の項目を追加するようにしてもよい。つまり、AgentID8012を必須のキー項目とし、更に1以上の他のキー項目の情報を用いて、ログの特定を行うようにすることができる。なお、ここで用いる項目を変更する場合には、図5(b)に示すLogDataクラス502にて取得する情報も変更する必要が有る。
In this embodiment, it is determined whether or not to store a log using four items of
[ステータスDB]
図9(a)、(b)を用いて、本実施形態に係るステータスDB部342にて保持されるステータスDBの説明を行う。ストレージサーバ104のステータスDB部342には、ステータスDBとしてログ収集エージェント部322のID(AgentID9011、9021)と、そのログ収集エージェント部322がログの収集をした時刻(LastCrawlTime9012、9022)とが記録される。このLastCrawlTimeに記録されている時刻は、この時刻までにログファイルに出力されていたログは、全てログDB部341に格納されている、という事を保証するための値である。
[Status DB]
The status DB held by the status DB unit 342 according to the present embodiment will be described with reference to FIGS. In the status DB unit 342 of the
まず図9(a)を用いて、初回登録時に、ステータスDB部342に登録される内容についての説明を行う。ログ収集エージェント部322は、その起動時にIDファイルを読み込む(または作成する)。そこで作成したIDをステータスDB部342に送信することで、自身のIDに対応するデータをステータスDB部342に登録する。その際、LastCrawlTime9012は、初期登録ステータスを表す時刻(1970/01/01 00:00:00)が登録される。本実施形態では、初期登録時刻として、“1970/01/01 00:00:00”を使用しているが、例えば現在時刻より1年以上過去の値を使っても特に問題はない。ここで用いられる初期登録の値としての条件は、このシステムを使用する日時とは、等しくならないことである。
First, the contents registered in the status DB unit 342 at the time of initial registration will be described with reference to FIG. The log
ログ収集エージェント部322は初期登録後、ログデータ収集部3221がログの収集処理を行う。ログ収集エージェント部322は、ログDB部341へのログの格納処理が成功した後に、ステータスDBリクエスト処理部333に対して、自身のIDと、現在時刻を対応付けて送信する。ステータスDBリクエスト処理部333は、受信したデータからIDを取出し、IDと等しいAgentID9011、9021を有するエンティティのLastCrawlTime9022を受信した時刻で更新する。このように、ログ収集エージェント部322はステータスDB部342の更新を行う。
After initial registration of the log
[アーカイブアプリケーションの設定ファイル]
図10を用いて、本実施形態に係るバッチアプリケーションサーバ105で動作する、アーカイブアプリケーション(不図示)の設定ファイル10000の定義を示す。ここで、アーカイブアプリケーションは、ログDB部341に格納されているログデータをファイルに出力する機能を備えるアプリケーションである。アーカイブアプリケーションの設定ファイルは、図10に記載されているように、XML形式で記載される。ここで、設定ファイルのフォーマットは、XML形式のみではなく、例えばコンマ等で各項目が区切られたCSV形式(Comma Separated Values)などでも良い。
[Archive application settings file]
The definition of the
アーカイブアプリケーションは、設定ファイル10000にて、まずarchiveSettingタグを有する。このタグは、saveDirectory10001、logDbUri10002、statusDbUri10003、startDate10004、およびendDate10005から構成される。saveDirectory10001は、アーカイブアプリケーションが出力するファイルを保存するディレクトリパスを示す。アーカイブアプリケーションは、日付毎にログを取得し、その取得した日付をファイル名としたファイルを作成する。
The archive application first has an archiveSetting tag in the
例えば、2011年1月1日のログを、DBから取得した場合には、「20110101.csv」の様なファイル名を有するファイルをsaveDirectory10001が示すフォルダに保存する。logDbUri10002には、ログDBリクエスト処理部331のアドレスを記述する。statusDbUri10003には、ステータスDBリクエスト処理部333のアドレスを記載する。startDate10004には、ログを保管する期間の開始日を記載する。図10に示した例の場合、ログDB部341に格納されているログのTimeStamp8011が「2011年1月5日0時0分0秒」以降のログを対象とする。endDate10005は、ログを保管する期間の終了日を記載する。図10に示した例の場合、ログDB部341に格納されているログのTimeStamp8011が「2011年1月20日0時0分0秒」未満のログを対象とする。
For example, when the log of January 1, 2011 is acquired from the DB, a file having a file name such as “201110101.csv” is stored in the folder indicated by the saveDirectory 10001. In logDbUri10002, the address of the log DB
アーカイブアプリケーションを用いて、ログDB部341に格納されているログを外部に保管することが出来る。保管されたログはログDB部341からの削除が可能となるため、ストレージ容量の確保、およびストレージの仕様に関するコストを削減することが出来る。また、図10には示されていないが、設定ファイル10000内に、AgentIDを指定するようにしても構わない。この場合には、特定のログ収集エージェント部が収集したログのみを出力するようにもできる。
The log stored in the
[フローチャート]
図11乃至図14を用いて、本発明における、アプリケーションサーバ102、ログサーバ103、バッチアプリケーションサーバ105、ストレージサーバ104の処理の流れを詳細に説明する。
[flowchart]
The flow of processing of the
[ログ収集エージェント部の起動]
まず、図11を用いて、ログ収集エージェント部322の起動時の処理の流れについて説明する。本処理フローは、本実施形態において、アプリケーションサーバ102、およびログサーバ103がそれぞれ備えるCPUが、間接記憶部に記憶されたプログラムを直接記憶部に読み出し、実行することで実現される。
[Start Log Collection Agent]
First, the flow of processing when the log
S1101では、アプリケーションサーバ102のOS(不図示)は、ログ収集エージェント部322を起動する。
In step S <b> 1101, the OS (not shown) of the
S1102では、ログ収集エージェント部322は、図4に示すような設定ファイルを読み込む。設定ファイルの読み込みに失敗した場合には(S1103にてNO)、S1123に遷移する。設定ファイルの読み込みが成功した場合には(S1103にてYES)、S1104に遷移する。
In S1102, the log
S1104では、ログ収集エージェント部322は、設定ファイルに記載されたagentsタグに含まれる全agentタグの設定に基づいて全てのagentを生成したかどうかをチェックする。つまり、ログ収集エージェント部322は、設定ファイルのagentsタブに定義された全てのログデータ収集部を生成したか否かを判定する。全てのagentタグに基づいてagentを生成した場合には(S1104にてYES)、S1118に遷移する。全てのagentを生成していない場合には(S1104にてNO)、S1105に遷移する。
In S1104, the log
S1105では、ログ収集エージェント部322は、設定ファイルに記載されたdir4015で示されたagent(ログデータ収集部)によるログの収集対象となるフォルダが存在するかどうかをチェックする。フォルダが存在しない場合には(S1105にてNO)、S1123に遷移する。フォルダが存在していない場合には(S1105にてYES)、S1106に遷移する。S1106では、ログ収集エージェント部322は、存在しているフォルダ内にfilenameRegEx4017から生成されるファイル名を有するIDファイルが存在しているかチェックする。IDファイルが存在していない場合には(S1106にてNO)、S1109に遷移する。また、IDファイルが存在している場合には(S1106にてYES)、S1107に遷移する。
In step S1105, the log
S1109では、ログ収集エージェント部322は、IDファイルを作成し、ファイルにIDを記載する。このとき、ファイルの作成に失敗した場合には(S1110にてNO)、S1123に遷移する。ファイルの作成に成功した場合には(S1110にてYES)、S1111に遷移する。
In S1109, the log
S1107では、ログ収集エージェント部322は、図6に示すようなIDファイルから当該ログ収集エージェント部に対応するIDの情報を読み込む。このとき、IDファイルの読み込み処理に失敗した場合には(S1108にてNO)、S1123に遷移する。IDファイルの読み込み処理に成功した場合には(S1108にてYES)、S1111に遷移する。
In step S1107, the log
S1111では、ログ収集エージェント部322は、図4の設定ファイルに記載されているアセンブリ名4012が示すモジュールをロードし、図5に示すログフィルタ部3224を作成する。
In S1111, the log
S1112では、ログ収集エージェント部322は、ログデータ収集部3221を生成する。S1113では、ログ収集エージェント部322は、図4の設定ファイルのAgent名4013の末尾に「.xml」が追記されたファイル、例えば図7に示すようなレコードファイル、が存在するか否かをチェックする。レコードファイルが存在する場合には(S1113にてYES)、S1114に遷移する。レコードファイルが存在しない場合には(S1113にてNO)、S1115に遷移する。
In S1112, the log
S1114では、ログ収集エージェント部322は、レコードファイルを読みこむ。S1115では、ログ収集エージェント部322は、レコードファイルを作成する。ここで、レコードファイルには、設定ファイルのdir4015に指定されたフォルダパスに存在し、filenameRegEx4017に一致するファイル名を持つ全ログファイルを、レコードファイルに初期登録する。つまり、図7のレコードファイル701に示すrecordタブから構成される要素がログファイルの数だけ登録される。
In S1114, the log
S1116では、ログ収集エージェント部322は、図6に示すような自身のエージェントIDをログサーバ103のステータスDBリクエスト処理部333に送信する。S1112では、ログサーバ103は、受信したステータスIDを用いて、ストレージサーバ104のステータスDB部342に初期登録する。
In S <b> 1116, the log
S1118では、ログ収集エージェント部322は、設定ファイルから生成された全てのログデータ収集部3221の処理を開始したか否かを確認する。全てログデータ収集部3221が処理を開始していない場合には(S1118にてNO)、S1119に遷移する。全てのagentタグから生成されたログデータ収集部3221が処理開始済みである場合には(S1118にてYES)、S1123に遷移する。
In S1118, the log
S1119では、ログ収集エージェント部322は、ログデータ収集部3221の処理を開始する。S1120では、ログ収集エージェント部322は、ログを収集し、ログサーバ103に送信する。この処理の詳細に関しては、図12を用いたフローチャートの説明にて行う。S1121では、ログサーバ103は、受信したデータをストレージサーバ104のログDB部341に格納する。
In step S <b> 1119, the log
S1122では、ログ収集エージェント部322は、設定ファイルのinterval4014にて設定された秒数後に、ログデータ収集部3221が、処理を再開するようにタイマーを設定し、待機する。そして、所定の時間が経過した場合には、ログデータ収集部3221は処理を再開する。S1123では、ログ収集エージェント部322は、処理中にエラーが発生したものとし、処理を停止する。
In S1122, the log
[ログデータ収集部の処理の流れ]
図12を用いて、ログデータ収集部3221の処理の流れについて説明する。本処理フローは、本実施形態において、アプリケーションサーバ102、およびログサーバ103がそれぞれ備えるCPUが、間接記憶部に記憶されたプログラムを直接記憶部に読み出し、実行することで実現される。
[Processing flow of the log data collection unit]
The processing flow of the log
S1201では、アプリケーションサーバ102のOS/タイマーは、ログデータ収集部3221の処理の再開命令を発行する。ここで、再開命令を発行する場合とは、図11の1122にて示したように、待機状態にあるログデータ収集部3221の処理を再開させる場合が該当する。S1202では、ログデータ収集部3221は、ログ収集エージェント部322の停止命令の有無をチェックする。停止命令があった場合には(S1202にてYES)、S1217に遷移する。また、停止命令がなかった場合は(S1202にてNO)、S1203に遷移する。
In step S <b> 1201, the OS / timer of the
S1203では、ログデータ収集部3221は、図4に示す設定ファイルのdir4015に記載のフォルダパスに存在し、かつ、filenameRegEx4017に一致するファイル名を有するファイルの一覧を取得する。S1204では、ログデータ収集部3221は、S1203で取得したファイルの一覧の中で、レコードファイルに記録されていないファイル名を有するファイルを、レコードファイルに初期登録する。
In step S1203, the log
S1205では、ログデータ収集部3221は、レコードファイルに記録された、updateTime7012と、ファイルの更新時間とを比較し、updateTime7012が示す時間以降に更新されたファイルの一覧を取得する。S1206では、ログデータ収集部3221は、S1205で取得したファイルの一覧の数を確認する。ファイルの数が“0”、つまり更新されたログファイルが存在しない場合には(S1206にてNO)、S1213に遷移する。また、ファイルの数が1以上、つまり更新されたファイルが存在する場合には(S1206にてYES)、S1207に遷移する。
In step S1205, the log
S1207では、ログデータ収集部3221は、S1205で取得したファイルの一覧に対して、S1208乃至S1211の処理を行ったかどうかを確認する。つまり、ログデータ収集部3221は、全ログファイルを収集済みか否かを判定する。S1208乃至S1211の処理を行っていない場合には(S1207にてNO)、S1208に遷移する。ファイルの一覧に含まれる全てのファイルに対して、S1208乃至S1211の処理を行った場合には(S1207にてYES)、S1212に遷移する。
In step S1207, the log
S1208では、ログデータ収集部3221は、S1205で取得したファイルの一覧に含まれる一つのファイルから、ログを読み込む。そして、ログデータ収集部3221は、ログフィルタ部3224を用いてログを整形し、ログサーバ103のログDBリクエスト処理部331に対して、整形したログを送信する。送信の際には、ログフィルタ部3224によって整形されたデータに、ログデータ収集部3221が読み込んだファイル名、ログの行数、および自身に割り当てられたIDを対応付けて送信する。
In step S1208, the log
S1209では、ログサーバ103は、S1208にてログデータ収集部3221より送信されたログデータを受信し、そのデータをストレージサーバ104のログDB部341に格納する。そして、ログサーバ103は、ログDB部341に格納が成功したかどうかをログデータ収集部3221に送信する。
In S1209, the
S1210では、ログデータ収集部3221は、ログサーバ103から送信された処理結果を受信し、ログサーバ103によるログの格納が成功したか否かを判定する。処理結果が格納が成功した旨を示す正常終了であれば(S1210にてYES)、S1211に遷移する。処理結果が異常終了を示すものであれば(S1210にてNO)、S1207に遷移する。
In step S <b> 1210, the log
S1211では、ログデータ収集部3221は、レコードファイルを更新する。具体的には、updateTime7012を現在時刻とし、offset7013をファイル末尾のバイト数、lineNumber7014をファイルの最後の行の行番号とする。レコードファイルの更新後、S1207に遷移する。
In S1211, the log
S1212では、ログデータ収集部3221は、S1205で取得した全てのファイルに対して、S1208乃至S1211の処理が成功したかどうかを確認する。全てのファイルに対して、S1208乃至S1211の処理が成功した場合には(S1212にてYES)、S1213に遷移する。一つ以上のログファイルに対して、S1208乃至S1211の処理が失敗していた場合には(S1212にてNO)、S1215に遷移する。
In step S1212, the log
S1213では、ログデータ収集部3221は、ログサーバ103のステータスDBリクエスト処理部333に対して、LastCrawlTimeを表す時刻と、自身のIDとを関連付けたデータを送信する。ここで、送信するLastCrawlTimeを表す時刻は、S1208にてログファイルからログを読み込む前に取得した時刻とする。
In step S <b> 1213, the log
S1214では、ログサーバ103は、ログデータ収集部3221より送信された、IDとLastCrawlTimeとが関連付けられたデータを受信する。受信した後に、ログサーバ103は、受信したIDと等しいAgentIDを有するステータスDBのエンティティに含まれるLastCrawlTimeを、受信したLastCrawlTimeで更新する。
In S <b> 1214, the
S1215では、ログデータ収集部3221は、ログ収集エージェント部322の停止命令の有無をチェックする。停止命令があった場合には(S1215にてYES)、S1217に遷移する。また、停止命令がなかった場合は(S1215にてNO)、S1216に遷移する。
In step S1215, the log
S1216では、ログデータ収集部3221は、設定ファイルのinterval4014に記載されていた秒数後に、S1201の処理が呼び出されるように、タイマーを設定する。S1217では、ログデータ収集部3221は、処理を停止する。
In S1216, the log
[バッチアプリケーションサーバ105の処理の流れ]
図13を用いて、バッチアプリケーションサーバ105に存在する、アーカイブアプリケーション(不図示)の処理フローについて説明する。本処理フローは、本実施形態において、ログサーバ103、およびバッチアプリケーションサーバ105がそれぞれ備えるCPUが、間接記憶部に記憶されたプログラムを直接記憶部に読み出し、実行することで実現される。
[Processing flow of batch application server 105]
A processing flow of an archive application (not shown) existing in the
S1301では、アーカイブアプリケーションは、図10に示す設定ファイルに記載されているStartDate10004、およびEndDate10005から、ログを保管する期間を取得する。以下の説明においては、StartDate10004が表す時間を「ログ取得開始日」、EndDate10005が示す時間を「ログ取得終了日」と記載する。S1302では、アーカイブアプリケーションは、ログサーバ103のステータスDBリクエスト処理部333に対して、ログ取得可能範囲の終了日の取得要求を発行する。
In S1301, the archive application obtains a log storage period from StartDate 10004 and EndDate 10005 described in the setting file shown in FIG. In the following description, the time indicated by StartDate 10004 is referred to as “log acquisition start date”, and the time indicated by EndDate 10005 is referred to as “log acquisition end date”. In S <b> 1302, the archive application issues a request for acquiring the end date of the log acquirable range to the status DB
S1303では、ログサーバ103のステータスDBリクエスト処理部333は、ストレージサーバ104のステータスDB部342からLastCrawlTime9022の一覧を取得する。S1304では、ステータスDBリクエスト処理部333は、取得したLastCrawlTimeの一覧に要素が含まれるかどうかを確認する。取得したLastCrawlTimeの一覧に要素が含まれていない場合には(S1304にてNO)、S1316に遷移する。また、要素が含まれている場合には(S1304にてYES)、S1305に遷移する。
In S <b> 1303, the status DB
S1305では、ステータスDBリクエスト処理部333は、S1303で取得したLastCrawlTimeの一覧の中に、初期値(本実施形態では、「1970/01/01」)が存在するか否かを確認する。一覧の中に初期値が存在する場合には(S1305にてYES)、S1316に遷移する。また、一覧の中に初期値が存在しない場合には(S1305にてNO)、S1306に遷移する。
In S1305, the status DB
S1306では、ステータスDBリクエスト処理部333は、S1303で取得したLastCrawlTimeの一覧の中で、最も古い時間を取得する。そして、ステータスDBリクエスト処理部333は、取得した時間を、バッチアプリケーションサーバ105のアーカイブアプリケーションに対して送信する。
In S1306, the status DB
S1307では、アーカイブアプリケーションは、受信した時間と、ログ取得終了日とを比較する。ここで、S1306で取得した時間が、ログ取得終了日が示す時間よりも新しい場合には(S1308にてYES)、S1321に遷移する。また、S1306で取得した時間が、ログ取得終了日が示す時間よりも古い場合には(S1308にてNO)、S1309に遷移する。 In step S1307, the archive application compares the received time with the log acquisition end date. If the time acquired in S1306 is newer than the time indicated by the log acquisition end date (YES in S1308), the process proceeds to S1321. If the time acquired in S1306 is older than the time indicated by the log acquisition end date (NO in S1308), the process proceeds to S1309.
S1309では、アーカイブアプリケーションは、ログサーバ103のログDBリクエスト処理部331に対し、ストレージサーバ104のログDB部341に存在するログの中で最も古いTimeStampを持つログのTimeStampの取得要求を発行する。
In S <b> 1309, the archive application issues a request for acquiring a TimeStamp of a log having the oldest TimeStamp among logs existing in the
S1310では、ログDBリクエスト処理部331は、ログDB部341の中でも最も古いTimeStampを有するログのTimeStampを取得し、バッチアプリケーションサーバ105に対して送信する。
In step S <b> 1310, the log DB
S1311では、アーカイブアプリケーションは、ログサーバ103から取得した時間と、ログ取得開始日とを比較する。ここで、ログ取得開始日の方が新しい場合には(SS1312にてYES)、S1313に遷移する。また、ログ取得開始日が、取得した時間よりも古い場合には(S1312にてNO)、S1321に遷移する。
In S1311, the archive application compares the time acquired from the
S1313では、アーカイブアプリケーションは、ログサーバ103のログDBリクエスト処理部331に対して、ログ取得開始日からログ取得終了日の間のログの取得要求を発行する。S1314では、ログサーバ103のログDBリクエスト処理部331は、受信したログ取得開始日からログ取得終了日に該当するTimeStampを有するログを、ログDB部341から全て取得する。
In S1313, the archive application issues a log acquisition request between the log acquisition start date and the log acquisition end date to the log DB
S1314では、ログサーバ103のログDBリクエスト処理部331は、終了コードに正常終了を示す値を設定する。ここで、正常終了を示すコードに対する値の制約は特にない。つまり、正常終了を示すものであれば、コードをどのように定義しても構わない。S1316では、ログDBリクエスト処理部331は、終了コードに異常終了を示すコードを設定する。
In S <b> 1314, the log DB
S1317では、ログDBリクエスト処理部331は、S1314で取得した全ログデータと、S1315、もしくはS1316で設定した終了コードとの組をバッチアプリケーションサーバ105のアーカイブアプリケーションに送信する。
In S1317, the log DB
S1318では、バッチアプリケーションサーバ105のアーカイブアプリケーションは、ログサーバ103のログDBリクエスト処理部331から送信されたログデータの集合と、終了コードとの組を受信する。S1319では、アーカイブアプリケーションは、受信した終了コードがエラーコードであるか、否かを確認する。終了コードが異常終了を示すものである場合には(S1319にてNO)、S1321に遷移する。また、終了コードが正常終了コードである場合は(S1319にてYES)、S1320に遷移する。
In S <b> 1318, the archive application of the
S1320では、アーカイブアプリケーションは、受信したログデータを、CSV形式に整形して、ファイルに出力する。ここで、出力ファイルのフォーマットはCSV形式である必要はなく、任意のフォーマットで出力してもよい。S1321にて、アーカイブアプリケーションは、処理を終了する。 In S1320, the archive application formats the received log data into the CSV format and outputs it to a file. Here, the format of the output file need not be the CSV format, and may be output in an arbitrary format. In S1321, the archive application ends the process.
[フェールオーバー時の処理の流れ]
フェールオーバーした際の、アプリケーションサーバ102の処理の流れについて説明する。ここで、フェールオーバーとは、一般的にコールドスタンバイや、ホットスタンバイと呼ばれる形式の仕組みを指す。上記の方式では、例えば、あるアプリケーションサーバにおいて処理の継続が不能状態に陥った場合、そのアプリケーションサーバを再起動することで、状態を回復させるのではなく、異なるアプリケーションサーバに処理を移譲する。これにより、システム全体としての処理を継続させ、サービスの提供を復旧させる。
[Flow of processing during failover]
A process flow of the
本システムでは、図9に示すように、ストレージサーバ104のステータスDB部342に、AgentIDをキーとし、そのAgentIDと等しいIDを有するログ収集エージェント部322が記録されている。また、当該ログ収集エージェント部322に対応付けて、収集を完了した日時がLastCrawlTimeに記録されている。
In this system, as shown in FIG. 9, the status DB unit 342 of the
ここで、異なるアプリケーションサーバにて、ログ収集エージェント部322が起動したとする。ログ収集エージェント部322は、図11のS1109にて、新しいIDを作成し、S1116にて、ログサーバ103のステータスDBリクエスト処理部333に対して、作成したIDを送信し、登録作業を行う。この場合において、図9(c)に示す様に、新しいエンティティ(AgentID「CE209997・・・」)がストレージサーバ104のステータスDB903に登録される。
Here, it is assumed that the log
ここで、AgentID「BE209997・・・」を有するエンティティのLastCrawlTime9032は、更新されずに古い値を保持したままとなる。バッチアプリケーションサーバ105のアーカイブアプリケーションは、ストレージサーバ104のステータスDB部342に記録されている全てのLastCrawlTimeのうち、最も古い時刻までのTimeStampを持つログを出力可能とする。図9(c)の場合、最も古い時刻は、「2011/01/03 01:00:00」であり、またこの値は更新されないため、永久にアーカイブアプリケーションは「2011/01/03 01:00:00」までのログしか出力できないことになる。
Here, the
そこで、本実施形態では、フェールオーバーの際に、異なるアプリケーションサーバに処理が委譲された場合においても、フェールオーバの前後でIDが引き継がれ、LastCrawlTimeが更新されるための、アプリケーションサーバのフローを以下に記述する。つまり、フェールオーバーの際に処理が委譲された場合にも、図9(c)に示すように新たなAgentIDが追加されることなく、図9(b)のように委譲元のAgentIDに対応するLastCrawlTimeが更新されるようにする。また、下記フローにおいて、アプリケーションサーバ1は、動作不能となりフェールオーバーする対象のサーバとし、アプリケーションサーバ2は、処理が移譲されるサーバとする。また、アプリケーションサーバ1と、アプリケーションサーバ2のログ収集エージェント部が有する設定ファイルに記載されるDir4015とFilenameRegEx4017の文字列は、同じものとする。
Therefore, in this embodiment, even when processing is delegated to a different application server at the time of failover, the application server flow for updating the LastCrawlTime after the ID is taken over before and after the failover is as follows. Describe. In other words, even when the process is delegated at the time of failover, a new Agent ID is not added as shown in FIG. 9C, and it corresponds to the Agent ID of the delegation source as shown in FIG. 9B. LastCrawlTime is updated. Also, in the following flow, the application server 1 is a server that is inoperable and fails over, and the
なお、本処理フローは、本実施形態において、各アプリケーションサーバが備えるCPUが、間接記憶部に記憶されたプログラムを直接記憶部に読み出し、実行することで実現される。 In the present embodiment, this processing flow is realized by the CPU included in each application server reading and executing the program stored in the indirect storage unit directly into the storage unit.
S1401では、アプリケーションサーバ1上のリクエスト処理部状態監視部3213は、アプリケーションサーバ1の動作継続不能を検知する。S1402では、アプリケーションサーバ1は、ログファイルを出力していたフォルダに存在する全てのファイルを、アプリケーションサーバ2上の同一フォルダパス上に存在するフォルダにコピーする。ここで、アプリケーションサーバ1に対応するIDファイルも同一フォルダ上に存在するため、IDファイルも同様にコピーされる。
In step S1401, the request processing unit
S1403では、アプリケーションサーバ2は、コピーの成否をアプリケーションサーバ1に通知する。S1404では、アプリケーションサーバ1は、アプリケーションサーバ1から通知されたコピーの成否を確認する。そして、コピーが成功していた場合には(S1404にてYES)、S1405に遷移する。また、コピーが失敗していた場合には(S1404にてNo)、S1407に遷移し、フェールオーバー失敗とする。
In S1403, the
S1405では、アプリケーションサーバ2は、ログ収集エージェント部322を起動する。ログ収集エージェント部322が、起動した後のフローは、図11にて示したフローと同じであるため、説明は割愛する。S1406では、アプリケーションサーバ2は、アプリケーション部321を起動する
以上説明したように、図11乃至図14に従って処理することにより、アプリケーションサーバとログサーバとが独立して構築され、複数のユーザから依頼を並列して処理するような大規模システムにおいて、ログを重複して記録することを防止することができる。更に、記録しているログのうち、ある期間のログを出力する際に、重複したログの出力を防止することが可能となる。また、フェールオーバーなどによって、異なるアプリケーションサーバに処理が委譲され、別のログ収集エージェント部が動作した場合にも、委譲元に対応するIDを用いることで、ログを漏れなく収集、管理することが出来る。
In step S1405, the
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
Claims (16)
前記アプリケーションサーバは、
ユーザからの要求に応じて行った処理のログをファイルに出力するログファイル出力手段と、
前記ログファイル出力手段にてログが出力されたファイルのうち、収集対象となるファイルから前記ログを収集して前記ログサーバに送信する1以上のログデータ収集手段と、
前記1以上のログデータ収集手段を一意に特定するための識別子を生成し、当該識別子を前記ログサーバに提供する提供手段と
を有し、
前記ログサーバは、
前記アプリケーションサーバから送信されたログを受信し、記憶部に記憶する記憶手段を有し、
前記記憶手段は、受信したログに対応付けられた前記アプリケーションサーバから提供された識別子とすでに前記記憶部に記憶されているログに対応付けられた識別子とが一致し、かつ受信したログに含まれる当該ログを一意に特定するための他の情報とすでに前記記憶部に記憶されているログに含まれる当該ログを一意に特定するための他の情報とが一致している場合に当該受信したログを記憶させず、それ以外の場合に当該受信したログを記憶することを特徴とするログ管理システム。 A log management system including an application server that provides a service in response to a request from a user, and a log server that accumulates a log of the service provided by the application server,
The application server is
Log file output means for outputting a log of processing performed in response to a request from a user to a file;
One or more log data collection means for collecting the logs from the files to be collected out of the files whose logs are output by the log file output means, and transmitting the logs to the log server;
Providing means for generating an identifier for uniquely identifying the one or more log data collection means, and providing the identifier to the log server;
The log server
Receiving a log transmitted from the application server, and storing the storage unit in a storage unit;
The storage means includes an identifier provided from the application server associated with the received log and an identifier associated with the log already stored in the storage unit, and is included in the received log. The log received when the other information for uniquely identifying the log matches the other information for uniquely identifying the log included in the log already stored in the storage unit A log management system that stores the received log in other cases without storing
前記他のアプリケーションサーバの提供手段は、当該コピーされたデータにて指定された識別子を前記ログサーバに提供することを特徴とする請求項7に記載のログ管理システム。 When the application server fails over to another application server when processing cannot be continued, it is included in the folder in which the log file to be collected by the log data collecting means is stored. And copy means for copying the existing data together with data specifying the identifier stored in the providing means to the same folder location of the other application server,
8. The log management system according to claim 7, wherein the providing unit of the other application server provides the log server with an identifier specified by the copied data.
前記記憶手段は更に、前記記憶部に、前記ステータス送信手段から受信した情報を記憶することを特徴とする請求項1乃至10のいずれか一項に記載のログ管理システム。 The application server further includes a status transmission unit that transmits, to the log server, information that associates the identifier of the log data collection unit with the time when the log data collection unit last collected the log. ,
The log management system according to claim 1, wherein the storage unit further stores information received from the status transmission unit in the storage unit.
前記出力手段は、前記記憶部に記憶された前記ログデータ収集手段がログの収集を最後に行った時刻が、前記指定された期間を経過している場合にログの出力を行うことを特徴とする請求項11に記載のログ管理システム。 The log management system further includes output means for outputting a log stored in the storage unit for a specified period,
The output means outputs the log when the log data collection means stored in the storage unit last collects the log when the specified period has passed. The log management system according to claim 11.
ユーザからの要求に応じて行った処理のログをファイルに出力するログファイル出力手段と、
前記ログファイル出力手段にてログが出力されたファイルのうち、収集対象となるファイルから前記ログを収集して前記ログサーバに送信する1以上のログデータ収集手段と、
前記1以上のログデータ収集手段を一意に特定するための識別子を生成し、当該識別子を前記ログサーバに提供する提供手段と
を有し、
前記ログデータ収集手段は、当該ログデータ収集手段の識別子、およびログを一意に特定するための他の情報を当該ログのデータに含めることを特徴とするアプリケーションサーバ。 An application server in a log management system including an application server that provides a service in response to a request from a user and a log server that accumulates a log of the service provided by the application server,
Log file output means for outputting a log of processing performed in response to a request from a user to a file;
One or more log data collection means for collecting the logs from the files to be collected out of the files whose logs are output by the log file output means, and transmitting the logs to the log server;
Providing means for generating an identifier for uniquely identifying the one or more log data collection means, and providing the identifier to the log server;
The log data collection unit includes an identifier of the log data collection unit and other information for uniquely identifying the log in the data of the log.
アプリケーションサーバから送信されたログを受信し、記憶部に記憶する記憶手段を有し、
前記記憶手段は、受信したログに対応付けられた前記アプリケーションサーバから提供された識別子とすでに前記記憶部に記憶されているログに対応付けられた識別子とが一致し、かつ受信したログに含まれる当該ログを一意に特定するための他の情報とすでに前記記憶部に記憶されているログに含まれる当該ログを一意に特定するための他の情報とが一致している場合に当該受信したログを記憶させず、それ以外の場合に当該受信したログを記憶することを特徴とするログサーバ。 One or more log data collection means for transmitting a log of processing executed when a service is provided in response to a request from a user to a log server, and an identifier for uniquely identifying the one or more log data collection means A log server in a log management system comprising: an application server having a providing means for providing to a log server; and the log server for accumulating logs of services provided by the application server,
Receiving a log transmitted from the application server and storing in a storage unit;
The storage means includes an identifier provided from the application server associated with the received log and an identifier associated with the log already stored in the storage unit, and is included in the received log. The log received when the other information for uniquely identifying the log matches the other information for uniquely identifying the log included in the log already stored in the storage unit A log server characterized by storing the received log in other cases without storing the log.
前記アプリケーションサーバにおいて、
ログファイル出力手段が、ユーザからの要求に応じて行った処理のログをファイルに出力するログファイル出力工程と、
1以上のログデータ収集手段がそれぞれ、前記ログファイル出力手段にてログを出力されたファイルのうち、収集対象となるファイルから前記ログを収集して前記ログサーバに送信するログデータ収集工程と、
提供手段が、前記1以上のログデータ収集手段を一意に特定するための識別子を生成し、当該識別子を前記ログサーバに提供する提供工程と
を有し、
前記ログサーバにおいて、
記憶手段が、前記アプリケーションサーバから送信されたログを受信し、記憶部に記憶する記憶工程を有し、
前記記憶工程において、受信したログに対応付けられた前記アプリケーションサーバから提供された識別子とすでに前記記憶部に記憶されているログに対応付けられた識別子とが一致し、かつ受信したログに含まれる当該ログを一意に特定するための他の情報とすでに前記記憶部に記憶されているログに含まれる当該ログを一意に特定するための他の情報とが一致している場合に当該受信したログを記憶させず、それ以外の場合に当該受信したログを記憶することを特徴とするログ管理方法。 A log management method in a log management system including an application server that provides a service in response to a request from a user and a log server that accumulates a log of the service provided by the application server,
In the application server,
A log file output step in which the log file output means outputs a log of processing performed in response to a request from the user to a file;
One or more log data collection means each collects the log from a file to be collected out of the files output by the log file output means, and sends the log data to the log server; and
Providing means for generating an identifier for uniquely identifying the one or more log data collection means, and providing the identifier to the log server;
In the log server,
The storage means has a storage step of receiving the log transmitted from the application server and storing it in the storage unit,
In the storage step, the identifier provided from the application server associated with the received log matches the identifier associated with the log already stored in the storage unit, and is included in the received log. The log received when the other information for uniquely identifying the log matches the other information for uniquely identifying the log included in the log already stored in the storage unit A log management method characterized by storing the received log in other cases without storing the log .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011170450A JP5746585B2 (en) | 2011-08-03 | 2011-08-03 | Log management system, log management method, application server, and log server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011170450A JP5746585B2 (en) | 2011-08-03 | 2011-08-03 | Log management system, log management method, application server, and log server |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013037403A JP2013037403A (en) | 2013-02-21 |
JP5746585B2 true JP5746585B2 (en) | 2015-07-08 |
Family
ID=47886992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011170450A Expired - Fee Related JP5746585B2 (en) | 2011-08-03 | 2011-08-03 | Log management system, log management method, application server, and log server |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5746585B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10244075B2 (en) * | 2014-03-20 | 2019-03-26 | Rakuten, Inc. | Information processing device, information processing method, program and storage medium |
JP6562980B2 (en) * | 2017-07-27 | 2019-08-21 | キヤノン株式会社 | System, system control method, information processing apparatus, information processing apparatus control method, and program |
CN110019054B (en) * | 2017-12-29 | 2023-01-31 | 阿里巴巴集团控股有限公司 | Log duplicate removal method and system, and content distribution network system |
JP2020154381A (en) * | 2019-03-18 | 2020-09-24 | ヤフー株式会社 | Information processing system, information processing device, information processing method, and program |
CN110209553B (en) * | 2019-06-11 | 2023-06-20 | 湖南快乐阳光互动娱乐传媒有限公司 | Data acquisition method and device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4462163B2 (en) * | 2005-10-12 | 2010-05-12 | 日本電気株式会社 | Log management system, log management manager, log management method and program |
JP4881760B2 (en) * | 2007-02-16 | 2012-02-22 | 株式会社野村総合研究所 | Log management apparatus, log management method, program, and recording medium |
JP2009110102A (en) * | 2007-10-26 | 2009-05-21 | Chugoku Electric Power Co Inc:The | Log monitoring system and log monitoring method |
-
2011
- 2011-08-03 JP JP2011170450A patent/JP5746585B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013037403A (en) | 2013-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6522812B2 (en) | Fast Crash Recovery for Distributed Database Systems | |
JP6619406B2 (en) | Log record management | |
JP6196368B2 (en) | Avoiding system-wide checkpoints in distributed database systems | |
US7933872B2 (en) | Database backup, refresh and cloning system and method | |
US20180018241A1 (en) | Visualizing restoration operation granularity for a database | |
EP2545472B1 (en) | Distributed catalog, data store, and indexing | |
JP5068062B2 (en) | System, method, and program for integrating databases | |
US10146629B1 (en) | Extensible workflow manager for backing up and recovering microsoft shadow copy compatible applications | |
US8019727B2 (en) | Pull model for file replication at multiple data centers | |
JP5360978B2 (en) | File server and file operation notification method in file server | |
US7676503B2 (en) | Hybrid computer restore using network service | |
US11010267B2 (en) | Method and system for automatic maintenance of standby databases for non-logged workloads | |
JP5746585B2 (en) | Log management system, log management method, application server, and log server | |
US10949413B2 (en) | Method and system for supporting data consistency on an active standby database after DML redirection to a primary database | |
JP2016511486A (en) | Database system with database engine and separate distributed storage service | |
US10747732B2 (en) | Virtual database administrator | |
US8190947B1 (en) | Method and system for automatically constructing a replica catalog for maintaining protection relationship information between primary and secondary storage objects in a network storage system | |
JP2016045930A (en) | Management system and method for controlling management system | |
JP2008310591A (en) | Cluster system, computer, and failure recovery method | |
JP5535998B2 (en) | Data management system and data management method | |
US11561681B2 (en) | System and method of smart framework for troubleshooting performance issues | |
CN113934575A (en) | Big data backup system and method based on distributed copy | |
JP2007086987A (en) | Data base duplex system, center server, remote server, data base duplex method and program | |
CN113792022A (en) | Gene data-oriented federal analysis system, method, equipment and medium | |
JP2012181759A (en) | Server system, control method thereof, and program therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150319 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150508 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5746585 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |