JP6295176B2 - Message processing apparatus and message processing method - Google Patents
Message processing apparatus and message processing methodInfo
- Publication number
- JP6295176B2 JP6295176B2 JP2014206280A JP2014206280A JP6295176B2 JP 6295176 B2 JP6295176 B2 JP 6295176B2 JP 2014206280 A JP2014206280 A JP 2014206280A JP 2014206280 A JP2014206280 A JP 2014206280A JP 6295176 B2 JP6295176 B2 JP 6295176B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- messages
- stored
- output
- unit
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Digital Computer Display Output (AREA)
Description
本発明は、入力されたメッセージについて、所定のパターンにマッチするメッセージを分類および抽出するメッセージ処理装置およびメッセージ処理方法に関し、特に、リアルタイム性を有するものに関する。 The present invention relates to a message processing apparatus and a message processing method for classifying and extracting a message that matches a predetermined pattern with respect to an input message, and more particularly to a message processing method having real-time characteristics.
オペレーティングシステム(OS)やアプリケーションソフトウェアが出力するログメッセージには、しばしば障害やエラーを示す情報が含まれている。これらのメッセージをパターンマッチングにより検出し、自動的に所定の復旧処理や報告処理といったエラーハンドリングを行うことは有用である。また、ログメッセージは、内容が変化しない固定的な範囲の他、動的に変化するパラメータを含むことがあり、そのパラメータの内容に依存したエラーハンドリングを行うこともある。 Log messages output by an operating system (OS) or application software often include information indicating a failure or error. It is useful to detect these messages by pattern matching and automatically perform error handling such as predetermined restoration processing and reporting processing. The log message may include a dynamically changing parameter in addition to a fixed range in which the content does not change, and error handling depending on the content of the parameter may be performed.
上記ログメッセージは、一つの発生事象につき複数のメッセージに分けて出力されることがある。特に、エラーハンドリングに必要なパラメータが前述の複数のメッセージに渡っている場合、これらの複数のメッセージを一連のメッセージとしてまとめて検出する必要がある。さらには、複数のコンテキストにおいて、一連のメッセージを出力する同種のイベントが同時期に発生した場合、一連のメッセージを構成するメッセージが互いに入り混じることがある。この場合、どのメッセージとどのメッセージが本来の一連のメッセージを構成していたか一概には判断できない。適切なエラーハンドリングを行うためには、混在した一連のメッセージを分離し、元の一連のメッセージを再構成する必要がある。 The log message may be output by being divided into a plurality of messages for one occurrence event. In particular, when parameters necessary for error handling are included in the plurality of messages described above, it is necessary to detect these plurality of messages collectively as a series of messages. Furthermore, in a plurality of contexts, when the same type of event that outputs a series of messages occurs at the same time, the messages that make up the series of messages may be mixed together. In this case, it is not possible to unconditionally determine which message and which message made up the original series of messages. In order to perform proper error handling, it is necessary to separate a series of mixed messages and reconstruct the original series of messages.
さらには、エラーの種別やSLO(Service Level Objective)によっては早急な自動復旧処理が必要とされることがあり、その場合、前述のメッセージ検出や一連のメッセージの再構成処理はリアルタイム要件を満たすことが求められる。すなわち、予測可能な時間内に処理可能である必要がある。 In addition, depending on the type of error and SLO (Service Level Objective), immediate automatic recovery processing may be required, and in this case, the above-mentioned message detection and series of message reconstruction processing satisfy real-time requirements. Is required. That is, it must be possible to process within a predictable time.
特に、混在した一連のメッセージの分離および再構成処理に関しては、技術分野は異なるが、ネットワーク監視技術の応用が考えられる(例えば、特許文献1)。 In particular, regarding the separation and reconfiguration processing of a series of mixed messages, although the technical field is different, application of network monitoring technology can be considered (for example, Patent Document 1).
特許文献1では、パケットに付属する送受信ポートやIPアドレス情報を用いてストリームを区別することを前提としている。しかし、ログメッセージの解析処理においては、通常は、ログメッセージには出力コンテキストを区別するための情報が付加されていないため、一意に出力コンテキストを区別することはできない。これは、一連のメッセージの終端を一意に定めることができないことも意味する。このとき、特許文献1の方式によりツリー状態インジケータを用いてツリーを再構築する場合、すなわち元の一連のメッセージを再構築する場合、必要なメモリサイズは無制限となる。つまり、一連のメッセージの構成規則を満たす全てのメッセージの組み合わせについてツリーを保持する必要があり、さらに一連のメッセージの終端が不明瞭なため、保持期限も無制限となる。 In Patent Document 1, it is assumed that streams are distinguished using transmission / reception ports and IP address information attached to packets. However, in the log message analysis processing, since information for distinguishing the output context is not usually added to the log message, the output context cannot be uniquely identified. This also means that the end of a series of messages cannot be uniquely determined. At this time, when the tree is reconstructed using the tree state indicator by the method of Patent Document 1, that is, when the original series of messages is reconstructed, the necessary memory size is unlimited. That is, it is necessary to hold a tree for all combinations of messages that satisfy a series of message composition rules. Further, since the end of a series of messages is unclear, the holding period is unlimited.
計算機システムにおいて、メモリを動的に確保する処理は、メモリの内容を二次記憶装置に退避したり、メモリ解放を待つなど、長時間を要することがある。したがって、リアルタイム性を確保するには、動的なメモリ確保はせず、有限サイズのメモリを事前確保しておく必要がある。しかし前記の通り、特許文献1の方式では必要メモリサイズを有限に定めることができないため、リアルタイム性を確保することができない。 In a computer system, the process of dynamically securing memory may take a long time, such as saving the contents of the memory to a secondary storage device or waiting for memory release. Therefore, in order to ensure real-time performance, it is necessary to reserve memory of a finite size in advance without dynamically securing memory. However, as described above, since the required memory size cannot be finitely determined by the method of Patent Document 1, real-time performance cannot be ensured.
本発明により上記課題を解決する代表的なメッセージ処理装置の一つは、複数のコンテキストから出力されたメッセージを順に受け付ける入力インタフェースから、所定の時間内に受け取った前記メッセージを順に格納する記憶部と、前記記憶部に格納された前記メッセージを、前記複数のコンテキストの出力側で予め定められたメッセージの出力単位である要素メッセージに分解するメッセージ抽出部と、予め定められた前記要素メッセージの出現パターンにマッチする要素メッセージを選出し、前記メッセージを再構築するメッセージ再構築部と、を備えることを特徴とするメッセージ処理装置として構成される。 One of the typical message processing devices that solve the above-described problems according to the present invention includes a storage unit that sequentially stores the messages received within a predetermined time from an input interface that sequentially receives messages output from a plurality of contexts. A message extraction unit that decomposes the message stored in the storage unit into element messages that are predetermined message output units on the output side of the plurality of contexts; and a predetermined occurrence pattern of the element message And a message restructuring unit that reconstructs the message.
また、本発明は、上記メッセージ処理装置で行われるメッセージ処理方法としても把握される。 The present invention is also grasped as a message processing method performed by the message processing apparatus.
本発明によれば、メッセージ処理に必要な主たるメモリのサイズは、所定の時間内に出力されるメッセージを格納するのに十分な記憶領域に限定することができる。そのため、予め必要なサイズのメモリを確保しておけば、メモリ枯渇による処理遅延を回避でき、予測可能な時間内での処理が可能となる。 According to the present invention, the size of the main memory required for message processing can be limited to a storage area sufficient to store messages output within a predetermined time. Therefore, if a memory of a necessary size is secured in advance, processing delay due to memory exhaustion can be avoided, and processing within a predictable time becomes possible.
図1は、本発明によるメッセージ処理装置のハードウェア構成の一例であり、少なくともソフトウェアプログラムを実行する演算装置11と、前記プログラムおよびその実行に必要なデータを格納する記憶装置12を備えた計算機10上に実装される。また、通信装置13を備え、外部の監視端末20に備わった通信装置21と接続し、メッセージ処理結果を伝えてもよい。監視端末20は、例えば、二重系を構成する別の計算機に置き換えることも可能であり、例えば、メッセージ処理結果を伝えて主従系切り替えを実施してもよい。ディスプレイ14は、メッセージ処理結果の出力などに使用し、キーボード15は設定変更などに利用する。
FIG. 1 is an example of a hardware configuration of a message processing apparatus according to the present invention, and a
ここでは、Linux(登録商標) OSにおいて、カーネルが出力するメッセージについて、本発明を適用する場合を例に実施の一形態を説明する。 Here, an embodiment will be described by taking as an example a case where the present invention is applied to a message output by a kernel in a Linux (registered trademark) OS.
図3、図4は、プロセスP1、P2、およびP3の三つのコンテキストにおいて、それぞれ同時に、SCSIディスク上で発生したエラーに関するメッセージを出力する例である。特に、図3は、各プロセスが出力する一連のメッセージを示し、図4は、図3のメッセージ群が互いに入り混じった結果の一例を示している。例えば、プロセスP2が出力するメッセージは、名前sdbで識別されるSCSIディスクに対して発行したRead(10)コマンドがタイムアウトしたことを示している。しかし、図4に示したように、類似した一連のメッセージと入り混じると、元々のメッセージが不明瞭となる。例えば、本来タイムアウトが発生したのはSCSIディスクsdbであるが、図4の例ではあたかもsdcで発生したかのように見える。なお図3、図4に示した例は、説明のため、実際に出力されるメッセージより若干簡素化している。 FIG. 3 and FIG. 4 are examples of outputting messages regarding errors occurring on the SCSI disk at the same time in the three contexts of processes P1, P2 and P3. In particular, FIG. 3 shows a series of messages output by each process, and FIG. 4 shows an example of the result of mixing the message groups of FIG. For example, the message output by the process P2 indicates that the Read (10) command issued to the SCSI disk identified by the name sdb has timed out. However, as shown in FIG. 4, when mixed with a series of similar messages, the original message becomes unclear. For example, it is the SCSI disk sdb that originally timed out, but in the example of FIG. 4, it appears as if it occurred in sdc. Note that the examples shown in FIGS. 3 and 4 are slightly simplified from the actually output messages for the sake of explanation.
図2は、本発明を実施する一形態における、機能ブロック図である。入力インタフェース30は、メッセージ抽出部40がメッセージを読み込むためのインタフェースであり、このインタフェースに対して読み込みを行うと、それまでに出力されたメッセージを時系列順に得ることができる。Linux(登録商標) OSでは、/proc/kmsg 擬似ファイルなどが入力インタフェース30に該当する。
FIG. 2 is a functional block diagram according to one embodiment of the present invention. The
メッセージ抽出部40は、図6で説明する手順で入力インタフェース30からメッセージを読み取り、メッセージ記憶領域70に格納する。さらに、メッセージ抽出部40は、メッセージ記憶領域70内のメッセージの中から、不可分なメッセージ単位である要素メッセージを抽出する。不可分なメッセージ単位とは、例えば、入力インタフェース30が受け取るメッセージを出力する他のシステムや装置側であらかじめ定められたメッセージの出力単位である。
The
図5は、図3および図4の例について要素メッセージを抽出した結果を示しており、各行が一つの要素メッセージであることを意味する。図5の種別欄は、要素メッセージの種類ごとに便宜上与えた名称であり、後の説明で参照する。例えば、「sd 4:0:0:0: [sdc] CDB: Read(10)」というメッセージXは、実際には「sd 4:0:0:0: [sdc] 」、「CDB: 」、「Read(10)」の3回に分けて出力されるが、一度に出力されたメッセージは不可分であり、前記三つのメッセージがそれぞれ要素メッセージとなる。要素メッセージの抽出は、正規表現マッチングなど良く知られたパターンマッチング技術により容易に実現可能である。 FIG. 5 shows the result of extracting element messages for the examples of FIGS. 3 and 4, meaning that each row is one element message. The type column in FIG. 5 is a name given for convenience for each type of element message, and will be referred to in later description. For example, the message X "sd 4: 0: 0: 0: [sdc] CDB: Read (10)" is actually "sd 4: 0: 0: 0: [sdc]", "CDB:" Although “Read (10)” is output in three steps, the messages output at a time are inseparable, and the three messages are element messages. The extraction of the element message can be easily realized by a well-known pattern matching technique such as regular expression matching.
抽出した要素メッセージは要素メッセージテーブル80で管理する。具体的には、例えば、要素メッセージ文字列を参照するポインタを、元になったメッセージの入力順に並べることで管理する。例えば、上述したメッセージXの場合には、その中から抽出された要素メッセージである「sd 4:0:0:0: [sdc] 」、「CDB: 」、「Read(10)」に対応する種別は、それぞれSdev、CDB、Cmdであると認識し、その順序を記憶することにより、メッセージから要素メッセージの抽出順序や要素メッセージからメッセージの再構築順序を管理する。 The extracted element message is managed in the element message table 80. Specifically, for example, management is performed by arranging pointers that refer to element message character strings in the input order of the original message. For example, in the case of the message X described above, it corresponds to the element messages “sd 4: 0: 0: 0: [sdc]”, “CDB:”, “Read (10)” extracted from the message X. The types are recognized as Sdev, CDB, and Cmd, respectively, and by storing the order, the extraction order of element messages from messages and the reconstruction order of messages from element messages are managed.
メッセージ再構築部50は、予め定められた要素メッセージの出現パターンにマッチする要素メッセージ列を選出し、その一連の要素メッセージ列を、元々出力された一連のメッセージとして出力インタフェース60に送る。ここで、出力インタフェース60に送る情報は、必ずしも元々の一連のメッセージの完全な再現である必要はなく、元々の一連のメッセージの内容を一意に特定できるものであれば何でも良い。例えば、上記メッセージXを例にとると、そのメッセージに含まれる要素メッセージ「sd 4:0:0:0: [sdc] 」、「CDB: 」、「Read(10)」の順に抽出されるため、各要素メッセージに対応する種別Sdev、CDB、Cmdを順に抽出し、抽出した一連の要素メッセージ列を出力インタフェース60に出力する。
The
出力インタフェース60は、メッセージ再構築部50が再構築した一連のメッセージの後処理を行うものであり、様々な形態が考えられる。例えば、再構築した一連のメッセージを表示するディスプレイや、外部の監視端末へ通知するための通信装置13や、自動復旧処理などを行うエラーハンドラ呼び出しがある。
The
図6は、メッセージ抽出部40、およびメッセージ再構築部50の動作フローの一例を示し、図7は、メッセージ抽出部40が入力メッセージをメッセージ記録領域70へ格納する様子の詳細を示している。
FIG. 6 shows an example of an operation flow of the
図6に基づくメッセージ抽出部40の動作は以下の通りである。
ステップ400:メッセージ抽出部40は、入力インタフェース30に対し、新規メッセージが到着するまで待つ。
The operation of the
Step 400: The
ステップ401:メッセージ抽出部40は、入力インタフェース30から、この時点で読み込み可能なメッセージを全て読み込み、メッセージ記憶領域70に格納する。このとき使用した領域を前半部分71とし、その時刻をt1とする(図7)。
Step 401: The
ステップ402:メッセージ抽出部40は、所定の時間Tが経過するのを待つ。ここでTは、一連のメッセージの出力に要する時間に対し、十分大きな値に設定する。例えば、前述のSCSIエラーメッセージの例において、一つのコンテキストが一連のエラーメッセージを出力するのに要する時間が十数μ秒であったとすると、Tは1ミリ秒程度に設定すれば十分である。なお、所定の時間Tの値は、設定入力部90に対して、時間Tを記載した設定ファイルなどを入力し、変更可能としても良い。
Step 402: The
ステップ403:メッセージ抽出部40は、入力インタフェース30から、この時点で読み込み可能なメッセージを全て読み込み、メッセージ記憶領域70内の前記前半部分71の直後に格納する。このとき使用した領域を後半部分72とし、その時刻をt2とする(図7)。なお、新規メッセージの入力がなかった場合、後半部分72は空となる。
Step 403: The
ステップ404:よく知られたパターンマッチング技術を用い、メッセージ抽出部40は、上記前半部分71および後半部分72を含む記憶領域70全体に格納されたメッセージの中から要素メッセージを抽出し、抽出結果を要素メッセージテーブル80に格納する。例えば、図5における要素メッセージ「Sense Key : Recovered Error」、および「Sense Key : Medium Error」を抽出する手段として、正規表現「Sense Key : .+」によるパターンマッチングが利用できる。
Step 404: Using a well-known pattern matching technique, the
ステップ405:メッセージ抽出部40は、メッセージ再構築部50に通知を送り、メッセージ再構築部50の処理を開始、あるいは再開する。
Step 405: The
ステップ406:メッセージ抽出部40は、メッセージ再構築部50の処理完了の通知505を受けるまで待つ。
Step 406: The
ステップ407:ステップ403のメッセージ読み込みにおいて、メッセージ抽出部40が一つもメッセージを読めなかった場合(T秒間の間、新規メッセージの入力がなかった)、ステップ408に進む。一つでもメッセージを読んだ場合、ステップ402に戻る。
Step 407: When the
図6に基づくメッセージ再構築部50の動作は以下の通りである。
ステップ500:メッセージ再構築部50は、メッセージ抽出部40から、入力メッセージのメッセージ記憶領域70への格納と、抽出した要素メッセージの要素メッセージテーブル80への格納が完了した旨の通知405を受けるのを待つ。
The operation of the
Step 500: The
ステップ501:メッセージ再構築部50は、予め設定しておいた要素メッセージの出現パターンにマッチする要素メッセージ列を選出する。具体的に図3〜5の例を用いて説明すると、SCSIディスク上でメディアエラーが発生した場合の要素メッセージ列は、図5に示す種別では、Sdev、Res、Sdev、SenseME、Sdev、CDB、Cmdの順になる。このような前記要素メッセージの出現パターンは、事前のエラー注入テストの結果やエラーメッセージ出力ソースコードを確認することで決定できる。また、前記予め設定しておいた要素メッセージの出現パターンにマッチする要素メッセージ列の選出は、良く知られた有限オートマトンによるパターンマッチングにより実現可能である。
Step 501: The
ここで、図5において、前記要素メッセージの出現パターンにマッチする要素メッセージ列の一つは、「sd 3:0:0:0: [sdb] 」、「Result: driverbyte=DRIVER_TIMEOUT」、「sd 2:0:0:0: [sda] 」、「Sense Key : Medium Error」、「CDB: 」、「Read(10)」である。また別の一つは、「sd 4:0:0:0: [sdc] 」、「Result: driverbyte=DRIVER_SENSE」、「sd 4:0:0:0: [sdc] 」、「Sense Key : Medium Error」、「CDB: 」、「Read(10)」である。 Here, in FIG. 5, one of the element message strings that match the appearance pattern of the element message is “sd 3: 0: 0: 0: [sdb]”, “Result: driverbyte = DRIVER_TIMEOUT”, “sd 2 : 0: 0: 0: [sda] "," Sense Key: Medium Error "," CDB: "," Read (10) ". Another one is "sd 4: 0: 0: 0: [sdc]", "Result: driverbyte = DRIVER_SENSE", "sd 4: 0: 0: 0: [sdc]", "Sense Key: Medium “Error”, “CDB:”, “Read (10)”.
図3のプロセスP3の欄に示したように、実際に出力された一連のメッセージは後者の要素メッセージ列に対応するが、前者のように実際のメッセージ出力と異なる要素メッセージ列を選出することもある。すなわち、前記選出処理は擬陽性を持つ。ある種のルールを課し、ルールに合致しない選出結果を除外することで、擬陽性の選出結果を削減することは可能である。しかし、その手法は対象とするメッセージの具体的な内容に依存するため、ここではさらに詳細には言及しない。 As shown in the column of process P3 in FIG. 3, a series of actually output messages corresponds to the latter element message sequence, but an element message sequence different from the actual message output may be selected as in the former case. is there. That is, the selection process has a false positive. It is possible to reduce false positive selection results by imposing certain rules and excluding selection results that do not match the rules. However, since the method depends on the specific contents of the target message, no further details will be mentioned here.
ステップ502:メッセージ再構築部50は、ステップ501により選出した要素メッセージ列について、その内容に応じたメッセージを再構築する。これは、前記要素メッセージ列を単純に連結したものでもよいし、前記要素メッセージ列に含まれる情報を厳選してより簡素なメッセージに変換してもよい。例えば、メッセージ再構築部50は、上記後者の要素メッセージ列をそのまま順に連結し、入力されたメッセージとして再構築する。
Step 502: The
ステップ503:メッセージ再構築部50は、再構築したメッセージに応じたエラーハンドリングを実行する。例えば、エラーが発生したコンポーネントをリセットする、前記再構築したメッセージをログファイル、ディスプレイ14、あるいは外部の監視端末20に通知する、主従系切り替えを実施する、などが考えられる。
Step 503: The
もしステップ501で複数の要素メッセージ列を選出可能である場合、その数だけステップ501〜503を繰り返す。
If a plurality of element message strings can be selected in
ステップ504:メッセージ再構築部50は、処理が完了したメッセージを記憶領域70および要素メッセージテーブル80から削除する。具体的には、時刻t0からt1までに読み込んだメッセージを格納した前半部分71と、前半部分71から抽出した要素メッセージを削除する。一方、時刻t1からt2までに読み込んだ後半部分72のメッセージと、後半部分72から抽出した要素メッセージはこの時点では削除しない。理由を以下に示す。
Step 504: The
後半部分72に含まれるメッセージの中には、時刻t1の直前に出力が開始された一連のメッセージの前半部分を含むことがある。この場合、前記一連のメッセージに対応する要素メッセージ列は、この時点では完全な形で要素メッセージテーブル80に含まれていないので、ステップ501において当該一連のメッセージが選出されることはない。ここでもし、ステップ502において後半部分72も削除すると、次のメッセージ読み込み時には前記一連のメッセージの後半部分のみがメッセージ記憶領域70および要素メッセージテーブル80に残ることになる。このときも、ステップ501では当該一連のメッセージは選出されない。これは、ステップ503にてエラーハンドリングすべきメッセージを喪失することを意味する。これを防ぐため、後半部分72の内容は削除せずに、次回の処理における前半部分73として残しておく。
The message included in the
ステップ505:次のメッセージを受け付けるため、メッセージ再構築部50は、メッセージ抽出部40に通知を送る。この通知を受けたメッセージ抽出部40は、ステップ400に戻り、同様の処理を繰り返す。
Step 505: The
図8は、図6に示したメッセージ抽出部40、メッセージ再構築部50が行う処理のイメージ図である。図8上部に示すように、メッセージ抽出部40は、t0からt1、t1からt2までの時間を、一連のメッセージの出力時間に対し十分大きな時間とする。このとき、t0〜t1までに入力された一連のメッセージは、メッセージの全体を含むケース(A)とメッセージの前半部分のみを含むケース(B)が生じる。この場合、t0〜t1までに読み込まれたバッファの内容で要素メッセージの抽出と一連のメッセージの再構築処理が行われると、上記(B)を正しく再構築することができない。しかし、t0〜t2までに読み込まれたバッファの内容でこれらの処理を実行すると、上記(B)の再構築は可能である。この場合には、さらに(D)がメッセージの前半部分のみを含むため、正しく再構築することができないが、次のタイミングで上記同様の処理を行うことにより、(D)を正しく再構築することができる。
FIG. 8 is an image diagram of processing performed by the
つまり、図8下部に示すように、t0〜t2の間に読み込まれたバッファに記憶されているメッセージについて処理を行うと、(A)、(B)、(C)については正しく再構築できるが、(D)は正しく再構築できない。一方、t1〜t3の間に読み込まれたバッファに記憶されているメッセージについて処理を行うと、(B)は正しく再構築できないが、 (C)および(D)は正しく再構築することができる。すなわち、tn〜tn+2の間に読み込まれたバッファに記憶されているメッセージに対し、tn〜tn+1の範囲の先頭にあるメッセージに含まれる要素メッセージを含む一連のメッセージについて再構築処理を行うことで、どのようなタイミングでも上記一連のメッセージを正しく再構築することができる。 In other words, as shown in the lower part of FIG. 8, if processing is performed on the message stored in the buffer read between t0 and t2, (A), (B), and (C) can be correctly reconstructed. (D) cannot be reconstructed correctly. On the other hand, if a message stored in the buffer read between t1 and t3 is processed, (B) cannot be reconstructed correctly, but (C) and (D) can be reconstructed correctly. That is, for the message stored in the buffer read between tn and tn + 2, the reconstruction process is performed on a series of messages including the element message included in the message at the head of the range of tn to tn + 1. By doing so, the series of messages can be correctly reconstructed at any timing.
このように、本処理では、メッセージ抽出部40、メッセージ再構築部50が、メッセージ記憶領域70のうち、ある一定時間内に読み込まれたメッセージを記憶する部分である第1の部分(例えば、前半部分71)、その次の一定時間内に読み込まれたメッセージを記憶する部分である第2の部分(例えば、後半部分72)に格納されたメッセージ、さらに次の一定時間内に読み込まれたメッセージを記憶する部分である第3の部分(例えば、次の前半部分71)に格納されているメッセージのうち、最初に、上記前半部分71および後半部分72に記憶されている先頭の要素メッセージを含むメッセージ(例えば、図8下部の(A)、(B))について抽出、再構築する。続いて、後半部分72および次の前半部分71記憶され、最初のタイミングでは上記先頭の要素メッセージを含まなかった(C)、(D)について抽出、再構築する。
In this way, in this process, the
すなわち、本処理では、メッセージ記憶領域70に記憶されているメッセージを再構築する処理対象となる範囲をウィンドウに見立て、あたかもそのウィンドウを、メッセージを読み込むタイミングでシフトさせ、処理対象となるウィンドウにあるメッセージを順次抽出、再構築する処理を繰り返すことにより、メモリサイズの容量を抑えつつ、正しくメッセージを再構築することができるようになっている。
In other words, in this process, the range to be processed for reconstructing the message stored in the
本方式において、特に必要となるメモリサイズは、メッセージ記憶領域70と要素メッセージテーブル80である。以下、そのサイズの概算方法を示す。
In this method, the memory size particularly required is the
最低限必要なメッセージ記憶領域70のサイズは、図7における前半部分71と後半部分72の合計であることから、所定の待ち時間Tと、最大メッセージ流量Mより、2TMとして概算することができる。最大メッセージ流量Mは、例えば前述のLinux(登録商標)カーネルが出力するメッセージの例の場合、次のように予測することができる。Linux(登録商標)カーネルが出力するメッセージのうち、大量に出力される可能性があるものについては、流量制限がかけられている。その制限は既定値では5秒間に10メッセージである。この制限はメッセージの種類ごとにかけられているケースがあるので、その分を係数として掛け、<係数>×<平均メッセージ長>×10/5 により概算することができる。ネットワークを通してメッセージが入力される場合は、そのネットワーク帯域を流量とすることができる。
Since the minimum required size of the
要素メッセージテーブル80の最低限必要なメモリサイズは、メッセージ記憶領域70に含まれ得る最大要素メッセージ数に比例する値となる。したがって、抽出対象の要素メッセージの最小サイズとメッセージ記憶領域70のサイズより、容易に求められる。
The minimum required memory size of the element message table 80 is a value proportional to the maximum number of element messages that can be included in the
以上により、入力メッセージ流量が制限される状況においては、必要なメモリサイズを有限サイズに固定することができ、動的メモリ確保とメモリ枯渇による処理遅延を防止することが可能となる。 As described above, in a situation where the flow rate of the input message is limited, the necessary memory size can be fixed to a finite size, and it becomes possible to prevent processing delay due to dynamic memory reservation and memory exhaustion.
本実施例では、実施例1において、メッセージ記憶領域70と要素メッセージテーブル80のサイズを拡大し、リングバッファ状に取り扱うことで、メッセージ抽出部40とメッセージ再構築部50の処理を非同期的に動作可能とするものである。これにより、メッセージ再構築部50の処理中にメッセージ抽出部40によるメッセージ読み込みが行われないことに起因する、メッセージ溢れ(メッセージの喪失)のリスクを削減する。
In this embodiment, in the first embodiment, the
具体的には、まず図6のステップ406において、メッセージ抽出部40がメッセージ記憶領域70の空き領域が不足するまで通知待ちを行わないように変更する。さらに、ステップ401および403において、メッセージ抽出部40は、当該ステップで読み取ったメッセージをメッセージ記憶領域70に追記していく。このとき、図7の前半部分71、後半部分72のように、当該ステップで入力したメッセージがどの範囲にあるか意識しながら格納する点については変更しない。要素メッセージテーブルの扱いについてもメッセージ記憶領域70と同様である。
Specifically, first, in
一方、メッセージ再構築部50は、ステップ500において、メッセージ記憶領域70内に二つ以上の部分(例えば、前半部分71および後半部分72)が残っている場合、待ちを行わないように変更する。そしてステップ501では、メッセージ記憶領域70内の最古の部分(前半部分71)とその次の部分(後半部分72)から抽出された要素メッセージ列に対し、前述のパターンマッチング処理を行うように変更する。例えば、直近のステップ504で削除されたのが時刻tnに格納された部分(前半部分71の1つ前の部分)であった場合、メッセージ再構築部50は、時刻tn+1(前半部分71)とtn+2(後半部分72)に格納された部分を対象に処理を行う。
On the other hand, in
本実施例は実施例1において、メッセージ抽出部40が所定時間待ってメッセージを読む代わりに、随時メッセージを読み込み、その時刻をタイムスタンプとして各メッセージに付与するようにした変形方式である。予めメッセージにタイムスタンプが付与されている場合、改めてタイムスタンプを付与する必要はない。
In this embodiment, instead of the
具体的には、図6のステップ401〜403において、メッセージ抽出部40は、2T時間(Tは前述の所定の待ち時間)の間、メッセージを読み続け、各メッセージに読み込み時刻のタイムスタンプを付加し、メッセージ記憶領域70に格納するように変更する。さらに、ステップ501では、メッセージ再構築部50が、前述の2T時間内にメッセージ記憶領域70に格納されたメッセージについて、最初のT時間に属するメッセージを前半部分71、次のT時間に属するメッセージを後半部分72として、実施例1と同様に後続の処理を行うように変更する。
Specifically, in
本実施例は、実施例1において所定時間待つ代わりに、一定の区切り位置やタイミングが到来するまで出力中の一連のメッセージの出力完了を待つように変更した変形例である。例えば、前述のLinux(登録商標)カーネルが出力する一連のメッセージの場合、基本的に一連のメッセージの出力は連続的に行われ、その間にプロセススイッチが行われるポイントがない(ただし、プリエンプティブカーネルである場合を除く)。したがって、メッセージ抽出部40は、演算装置11上の並列実行可能な全ての単位について、少なくとも1回以上、入力インタフェース30が受け取るメッセージを出力する他のシステムや装置側においてプロセススイッチが行われることを待つことにより、間接的に出力中の一連のメッセージの出力完了を待ち、あるプロセススイッチから次のプロセススイッチまでの間に出力されたメッセージについて、要素メッセージの抽出、一連のメッセージの再構築を行うことができる。つまり、メッセージ抽出部40は、複数のコンテキストの出力側においてプロセススイッチのような一定の区切り位置またはタイミングが到来するまでメッセージの出力を待ち、その区切り位置またはタイミングの間に出力されたメッセージを対象として記要素メッセージに分解することができる。
The present embodiment is a modified example in which, instead of waiting for a predetermined time in the first embodiment, the completion of outputting a series of messages being output is waited until a certain break position or timing arrives. For example, in the case of a series of messages output by the above-mentioned Linux (registered trademark) kernel, basically a series of messages are output continuously, and there is no point during which process switching is performed (however, in a preemptive kernel) Except in some cases). Therefore, the
本実施例は、実施例1の図6のステップ501において、メッセージ記憶領域70の後半部分72に先頭の要素メッセージを含む一連の要素メッセージを、選出の対象外とするように変更するものである。結果として、当該一連の要素メッセージは、後半部分72が次の周回における前半部分73(図7)になったときのみ、選出されることになる。すなわち、メッセージ再構築部50は、選出された要素メッセージの中から、後半部分72に先頭の要素メッセージを含むメッセージ記憶領域70から削除されていないメッセージから得られた先頭の要素メッセージを選出する。つまり、一連の要素メッセージの先頭から終端までが、あるタイミングにおける後半部分72内に完全に含まれる場合、二重に再構築処理(ステップ502)とエラーハンドリング処理(ステップ503)を実施することを防止することができる。
In the present embodiment, in
30…入力インタフェース、40…メッセージ抽出部、50…メッセージ再構築部、60…出力インタフェース、70…メッセージ記憶領域、80…要素メッセージテーブル。 30 ... input interface, 40 ... message extraction unit, 50 ... message reconstruction unit, 60 ... output interface, 70 ... message storage area, 80 ... element message table.
Claims (7)
前記記憶部に格納された前記メッセージを、前記複数のコンテキストの出力側で予め定められたメッセージの出力単位である要素メッセージに分解するメッセージ抽出部であって、次の所定の時間内に前記入力インタフェースから受け取ったメッセージを、前記記憶部から削除されていないメッセージに追加して格納し、前記記憶部から削除されていないメッセージと追加して格納したメッセージとを含む新たに格納されたメッセージを前記要素メッセージに分解する前記メッセージ抽出部と、
予め定められた前記要素メッセージの出現パターンにマッチする要素メッセージを選出し、前記メッセージを再構築するメッセージ再構築部であって、前記要素メッセージから前記メッセージを再構築した後、前記記憶部に格納されているメッセージのうちの再構築済みのメッセージを削除し、前記新たに格納されたメッセージから得られた要素メッセージの中から、前記出現パターンにマッチする要素メッセージを選出し、前記メッセージを再構築する前記メッセージ再構築部と、
を備えることを特徴とするメッセージ処理装置。 A storage unit that sequentially stores the messages received within a predetermined time from an input interface that sequentially receives messages output from a plurality of contexts;
A message extraction unit that decomposes the message stored in the storage unit into element messages that are predetermined message output units on the output side of the plurality of contexts , and the input is performed within a predetermined time period A message received from the interface is added to and stored in a message that has not been deleted from the storage unit, and a newly stored message including a message that has not been deleted from the storage unit and a message that has been added and stored The message extractor for decomposing into element messages ;
A message reconstruction unit that selects an element message that matches a predetermined occurrence pattern of the element message, reconstructs the message , and stores the message in the storage unit after reconstructing the message from the element message Delete the reconstructed message from the stored messages, select the element message that matches the appearance pattern from the element messages obtained from the newly stored message, and reconstruct the message Said message restructuring unit to
A message processing apparatus comprising:
前記メッセージ抽出部は、前記記憶部のうち前記所定の時間に受け取ったメッセージを記憶する部分である第1の部分とその次の前記所定の時間内に受け取ったメッセージを記憶する部分である第2の部分とに格納されたメッセージを処理対象範囲とした第1の抽出処理と、前記第2の部分と次の前記所定の時間内に読み込まれたメッセージを記憶する部分である第3の部分とに格納されているメッセージ処理対象範囲とした第2の抽出処理と、を繰り返し実行し、
前記メッセージ再構築部は、各抽出処理で得られた要素メッセージの中から前記出現パターンにマッチする要素メッセージを選出して前記メッセージを再構築する、
ことを特徴とするメッセージ処理装置。 The message processing device according to claim 1,
The message extraction unit is a first part that stores a message received at the predetermined time in the storage unit and a second part that stores a message received within the next predetermined time. A first extraction process in which the message stored in the part is a processing target range, a second part and a third part which is a part for storing a message read in the next predetermined time, And the second extraction processing as the message processing target range stored in
The message reconstructing unit reconstructs the message by selecting an element message that matches the appearance pattern from among the element messages obtained in each extraction process.
A message processing device.
さらに、前記所定の時間の変更を受け付ける設定入出部を備え、
前記メッセージ抽出部は、変更された時間内に前記記憶部に格納された前記メッセージを前記要素メッセージに分解する、
ことを特徴とするメッセージ処理装置。 The message processing device according to claim 1,
In addition, a setting input / output unit that accepts a change in the predetermined time,
The message extraction unit decomposes the message stored in the storage unit into the element message within a changed time;
A message processing device.
前記メッセージ再構築部は、選出された要素メッセージの中から、前記削除されていないメッセージから得られた先頭の要素メッセージを選出する、
ことを特徴とするメッセージ処理装置。 The message processing device according to claim 1 ,
The message restructuring unit selects a head element message obtained from the message not deleted from the selected element messages.
A message processing device.
前記メッセージ抽出部は、前記複数のコンテキストの出力側において一定の区切り位置またはタイミングが到来するまでメッセージの出力を待ち、前記区切り位置またはタイミングの間に出力されたメッセージについて、前記要素メッセージに分解する、
ことを特徴とするメッセージ処理装置。 The message processing device according to claim 1,
The message extraction unit waits for the output of a message until a certain delimiter position or timing arrives on the output side of the plurality of contexts, and disassembles the message output during the delimiter position or timing into the element message ,
A message processing device.
所定の時間内に受け取った前記メッセージを、前記複数のコンテキストの出力側で予め定められたメッセージの出力単位である要素メッセージに分解する抽出ステップにおいて、次の所定の時間内に入力インタフェースから受け取ったメッセージを、記憶部から削除されていないメッセージに追加して格納する格納ステップと、前記記憶部から削除されていないメッセージと追加して格納したメッセージとを含む新たに格納されたメッセージを前記要素メッセージに分解する分解ステップとを含み、
予め定められた前記要素メッセージの出現パターンにマッチする要素メッセージを選出し、前記メッセージを再構築する再構築ステップにおいて、前記要素メッセージから前記メッセージを再構築した後、前記記憶部に格納されているメッセージのうちの再構築済みのメッセージを削除する削除ステップを含み、前記新たに格納されたメッセージから得られた要素メッセージの中から、前記出現パターンにマッチする要素メッセージを選出し、前記メッセージを再構築する、
ことを特徴とするメッセージ処理方法。 A reception step for sequentially receiving messages output from a plurality of contexts;
The message received within a predetermined time is received from the input interface within the next predetermined time in the extraction step of decomposing the message into element messages that are predetermined message output units on the output side of the plurality of contexts A newly stored message including a storing step for storing a message in addition to a message that has not been deleted from the storage unit, a message that has not been deleted from the storage unit, and a message that has been added and stored, and the element message And a decomposition step that decomposes into
The element message that matches a predetermined occurrence pattern of the element message is selected, and in the reconstruction step for reconstructing the message, the message is reconstructed from the element message and then stored in the storage unit. A deletion step of deleting a reconstructed message of the messages, selecting an element message that matches the occurrence pattern from among the element messages obtained from the newly stored message, and re-storing the message To construct,
Message processing wherein a call.
前記抽出ステップでは、記憶部のうち前記所定の時間に受け取ったメッセージを記憶する部分である第1の部分とその次の前記所定の時間内に受け取ったメッセージを記憶する部分である第2の部分とに格納されたメッセージを処理対象範囲とした第1の抽出処理と、前記第2の部分と次の前記所定の時間内に読み込まれたメッセージを記憶する部分である第3の部分とに格納されているメッセージ処理対象範囲とした第2の抽出処理と、を繰り返し実行し、
前記再構築ステップでは、各抽出処理で得られた要素メッセージの中から前記出現パターンにマッチする要素メッセージを選出して前記メッセージを再構築する、
ことを特徴とするメッセージ処理方法。 The message processing method according to claim 6 ,
In the extraction step, a first part which is a part for storing a message received at the predetermined time and a second part which is a part for storing a message received within the predetermined time next to the storage part Are stored in the first extraction process in which the message stored in the process range is processed, and in the second part and the third part which is a part for storing the message read within the next predetermined time. The second extraction process as the message processing target range that has been performed,
In the reconstruction step, the element message that matches the appearance pattern is selected from the element messages obtained in each extraction process, and the message is reconstructed.
A message processing method.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014206280A JP6295176B2 (en) | 2014-10-07 | 2014-10-07 | Message processing apparatus and message processing method |
PCT/JP2015/076707 WO2016056381A1 (en) | 2014-10-07 | 2015-09-18 | Message processing device and message processing method |
GB1703481.0A GB2547345B (en) | 2014-10-07 | 2015-09-18 | Message processing device and message processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014206280A JP6295176B2 (en) | 2014-10-07 | 2014-10-07 | Message processing apparatus and message processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016076099A JP2016076099A (en) | 2016-05-12 |
JP6295176B2 true JP6295176B2 (en) | 2018-03-14 |
Family
ID=55652999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014206280A Active JP6295176B2 (en) | 2014-10-07 | 2014-10-07 | Message processing apparatus and message processing method |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6295176B2 (en) |
GB (1) | GB2547345B (en) |
WO (1) | WO2016056381A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024127474A1 (en) * | 2022-12-12 | 2024-06-20 | 日本電信電話株式会社 | Alarm information updating device, alarm information updating method, and program |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9014112D0 (en) * | 1990-06-25 | 1990-08-15 | Secretary Trade Ind Brit | Communications system |
EP1903441B1 (en) * | 2005-07-14 | 2016-03-23 | Fujitsu Ltd. | Message analyzing device, message analyzing method and message analyzing program |
US7437359B2 (en) * | 2006-04-05 | 2008-10-14 | Arcsight, Inc. | Merging multiple log entries in accordance with merge properties and mapping properties |
US8364813B2 (en) * | 2010-11-02 | 2013-01-29 | International Business Machines Corporation | Administering incident pools for event and alert analysis |
US8706698B2 (en) * | 2011-09-21 | 2014-04-22 | International Business Machines Corporation | Coordination of event logging operations and log management |
-
2014
- 2014-10-07 JP JP2014206280A patent/JP6295176B2/en active Active
-
2015
- 2015-09-18 GB GB1703481.0A patent/GB2547345B/en active Active
- 2015-09-18 WO PCT/JP2015/076707 patent/WO2016056381A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
GB201703481D0 (en) | 2017-04-19 |
JP2016076099A (en) | 2016-05-12 |
WO2016056381A1 (en) | 2016-04-14 |
GB2547345B (en) | 2021-09-22 |
GB2547345A (en) | 2017-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392385B2 (en) | Flexible event data content management for relevant event and alert analysis within a distributed processing system | |
US9348687B2 (en) | Determining a number of unique incidents in a plurality of incidents for incident processing in a distributed processing system | |
US8291058B2 (en) | High speed network data extractor | |
US9246865B2 (en) | Prioritized alert delivery in a distributed processing system | |
US9170860B2 (en) | Parallel incident processing | |
US20080313502A1 (en) | Systems, methods and computer products for trace capability per work unit | |
US20090182756A1 (en) | Database system testing | |
JP2012099092A (en) | Management method, system, and computer program for incident pool | |
US9459989B2 (en) | Method and apparatus for reverse debugging source code using causal analysis | |
JP4506520B2 (en) | Management server, message extraction method, and program | |
US9361184B2 (en) | Selecting during a system shutdown procedure, a restart incident checkpoint of an incident analyzer in a distributed processing system | |
CN108170571B (en) | Chip tracking debugging device and method | |
CN110417892B (en) | Message analysis-based data replication link optimization method and device | |
CN109918221B (en) | Hard disk error reporting analysis method, system, terminal and storage medium | |
JP6295176B2 (en) | Message processing apparatus and message processing method | |
CN109524031B (en) | Conflict detection method and system | |
US20210208945A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
CN111400117B (en) | Method for automatically testing Ceph cluster | |
US11556542B2 (en) | Optionally compressed output from command-line interface | |
JP7251649B2 (en) | Graph association system and graph association method | |
JP2009266031A (en) | Computer system and computer | |
EP3396553A1 (en) | Method and device for processing data after restart of node | |
US10698796B2 (en) | Non-transitory computer-readable medium, information processing apparatus, debugging system and debugging method | |
KR102480450B1 (en) | Method for compressing and transfering data and apparatus thereof | |
JP6396615B1 (en) | Information processing program, information processing apparatus, and debugging system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170904 |
|
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: 20180130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180219 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6295176 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |