WO2016031681A1 - ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム - Google Patents
ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム Download PDFInfo
- Publication number
- WO2016031681A1 WO2016031681A1 PCT/JP2015/073424 JP2015073424W WO2016031681A1 WO 2016031681 A1 WO2016031681 A1 WO 2016031681A1 JP 2015073424 W JP2015073424 W JP 2015073424W WO 2016031681 A1 WO2016031681 A1 WO 2016031681A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- template
- log
- event
- templates
- log analysis
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F11/3409—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 for performance assessment
Definitions
- the present invention relates to a technique for extracting information useful to a user from log information output by a variety of machines, and in particular, it is necessary for a user without directly knowing a generation rule of a log format generated by a machine in advance.
- the present invention relates to a technique suitable for sequentially extracting such information.
- Non-Patent Document 1 proposes an analysis infrastructure for simplifying log analysis.
- it is necessary to have prior knowledge about the meaning of each log and the contents of the log message, and it becomes difficult to analyze a huge amount of unknown logs without know-how. .
- Non-Patent Document 2 targets a syslog generated by a network device such as a router, and is a method for grasping a template when a certain format such as a vendor, a message type, an error code, and a detailed message content is given in advance. Is given. A method for displaying the digest information of syslog using the positional relationship of routers has been proposed.
- Japanese Patent Application No. 2013-168226 filed by the present applicant discloses a method of sequentially extracting a general log template that is not limited to syslog without using such prior information.
- the template extracted by the method is defined in units of one line as shown in FIG. 1, and the log relating to the relevance of the template combinations extracted from the logs that are sequentially generated in the network. Analysis is desired.
- an object of the present invention is to provide a technique for extracting a set of highly correlated logs without the user knowing in advance the generation rules of the logs generated by the machine.
- a template storage unit that stores a template related to a log message, and a template that matches each log message provided from a monitored host from the stored template.
- a template identification unit to be identified, and an event candidate extraction unit that detects a template identified for a log message provided from the same host among the identified templates, and extracts a series of the detected templates as event candidates
- a log analysis apparatus having an event extraction unit that extracts a series of templates frequently appearing from the extracted event candidates as an event.
- FIG. 1 is a diagram illustrating an example template related to syslog.
- FIG. 2 is a schematic diagram illustrating a log analysis system according to an embodiment of the present invention.
- FIG. 3 is a block diagram showing a functional configuration of the log analysis apparatus according to one embodiment of the present invention.
- FIG. 4 is a diagram showing a distribution of generation time intervals between templates.
- FIG. 5 is a flowchart showing event candidate extraction processing according to an embodiment of the present invention.
- FIG. 6 is a flowchart showing the dur (t0, t) update process according to an embodiment of the present invention.
- FIG. 7 is a flowchart showing the generation time difference clustering process according to an embodiment of the present invention.
- FIG. 1 is a diagram illustrating an example template related to syslog.
- FIG. 2 is a schematic diagram illustrating a log analysis system according to an embodiment of the present invention.
- FIG. 3 is a block diagram showing a functional configuration of the log analysis apparatus according to one embodiment of
- FIG. 8 is a schematic diagram illustrating a log analysis system according to another embodiment of the present invention.
- FIG. 9 is a flowchart showing log analysis processing according to another embodiment of the present invention.
- FIG. 10 is a diagram showing a simulation result of log analysis processing according to another embodiment of the present invention.
- FIG. 11 is a schematic diagram illustrating a log analysis system according to another embodiment of the present invention.
- a log analysis device that performs log analysis in consideration of the correlation between log messages.
- the log analysis device collects log messages from network devices, and identifies a template that matches the collected log messages from templates that have been acquired in advance.
- the log analyzer detects a template identified for log messages provided from the same host among the identified templates, and based on the occurrence time difference between the detected template and the previously detected template for the host.
- a correlation between templates is determined, and a series of templates detected according to the determination result is extracted as an event candidate.
- the log analysis apparatus further extracts a series of templates frequently appearing from the extracted event candidates as events, and provides them to the user as log analysis results.
- FIG. 2 is a schematic diagram illustrating a log analysis system according to an embodiment of the present invention.
- the log analysis system 10 includes a log analysis device 100, a monitoring target device group 200, and a user device 300.
- the log analysis apparatus 100 stores a template related to a log message in advance, collects a log message from each host of the monitoring target device group 200, and executes a process described later on the collected log message to correlate the template Extract series as events.
- the log analysis device 100 includes a log collection device 101, a log template information database (DB) 102, an event candidate extraction engine 103, an event candidate database (DB) 104, an event extraction engine 105, an event database. (DB) 106 and user interface 107 hardware elements.
- the log collection device 101 is communicatively connected to the monitoring target device group 200 and collects log messages from each host (p. 0, p. 1,..., Pn) of the monitoring target device group 200.
- the log message may be, for example, syslog, but is not limited thereto, and may be any other appropriate message indicating the operating state of the host transmitted from the host.
- the log template information DB 102 stores the log message collected by the log collection device 101 and also stores the template extracted from the log message.
- the stored template may be previously extracted from log messages collected in the past using any appropriate template extraction method.
- the template has a data format in which a specific parameter value as shown in FIG. 1 is a wild card “*”, and may be composed of important parts or lines in a log message.
- the event candidate extraction engine 103 performs an event candidate extraction process as described later, and extracts a series of one or more templates related to log messages sequentially collected from the same host as event candidates.
- the event candidate DB 104 stores event candidates extracted by the event candidate extraction engine 103.
- the event extraction engine 105 executes an event extraction process as described later, and extracts a series or pattern of templates frequently appearing from the extracted event candidates as an event.
- the event DB 106 stores events extracted by the event extraction engine 105.
- the user interface 107 provides the extracted event to the user of the user device 300.
- the user interface 107 transmits the extracted event to the user device 300 so that the user device 300 can display the event to the user.
- the log analysis device 100 includes a drive device, an auxiliary storage device, a memory device, a CPU (Central Processing Unit), and an interface device that are interconnected via a bus.
- Various programs for realizing various functions and processes described later in the log analysis apparatus 100 may be provided by a recording medium such as an optical disk or a semiconductor memory.
- the recording medium storing the program is set in the drive device, the program is installed from the recording medium to the auxiliary storage device via the drive device.
- the program does not necessarily have to be installed on a recording medium, and may be downloaded from any external device via a network (not shown).
- the auxiliary storage device stores the installed program and also stores necessary files and data.
- the memory device reads and stores the program and data from the auxiliary storage device when there is an instruction to start the program.
- Each database described above may be realized by an auxiliary storage medium or a memory device.
- the CPU is a processor that processes information, and performs various functions and processing of the log analysis device 100 as described later according to various data such as a program stored in a memory device and parameters necessary for executing the program. Execute.
- Each engine described above may be realized by a processor.
- the interface device is used as a communication interface for connecting to a network or an external device.
- the log analysis device 100 is not limited to the hardware configuration described above, and may be realized as any appropriate information processing device.
- the monitored device group 200 includes one or more host p. 0 to p. n and is connected to the log analysis apparatus 100 via a network.
- Each host may be, for example, a network device such as a router, and sequentially generates various log messages such as syslog messages and transmits them to the log analysis apparatus 100.
- the log message includes a time stamp indicating the time when the log message was generated, a host name that generated the log message, and a message body.
- the user device 300 is an information processing device such as a personal computer, a smartphone, or a tablet, and is connected to the log analysis device 100 via a network. The user can confirm an event as an analysis result from the log analysis device 100 via the user device 300.
- FIG. 3 is a block diagram showing a functional configuration of the log analysis apparatus according to one embodiment of the present invention.
- the log analysis apparatus 100 includes a template storage unit 110, a template identification unit 120, an event candidate extraction unit 130, and an event extraction unit 140.
- the template storage unit 110 stores templates related to log messages. Specifically, the log analysis apparatus 100 collects log messages from each host h of the monitoring target device group 200, and holds templates extracted from log messages collected so far according to any appropriate template extraction method. .
- each template is composed of log messages useful for the user, and has a data format in which the specific parameter values in the log message are wildcard “*” as shown in FIG. Also good.
- the template may be automatically extracted according to the template extraction method described in Japanese Patent Application No. 2013-168226 filed by the applicant of the present application, or may be set in advance by the operator of the log analysis apparatus 100. Good.
- the template specifying unit 120 specifies a template that matches each log message provided from the monitored host from the stored templates. Specifically, each log message includes a time stamp indicating a time when the log message is generated, a host name that generated the log message, and a message body.
- the template specifying unit 120 compares each row in the log message received from each host of the monitoring target device group 200 with the template stored in the template storage unit 110, and extracts a template that matches the received log message. .
- the log message matches the template except that a specific value “662288” or the like is set in the wildcard “*” of the template. Therefore, the template specifying unit 120 can determine that the log message matches the template.
- the template specifying unit 120 sequentially compares each stored log message with the template, and specifies a log message that matches the stored template.
- the template identification unit 120 may identify a template that matches a log message provided online or offline, and provide the identified template to the event candidate extraction unit 130.
- the event candidate extraction unit 130 detects a template specified for a log message provided from the same host among the specified templates, and extracts a series of the detected templates as event candidates. Specifically, for a template identified by the template identifying unit 120 as matching the log message, the event candidate extracting unit 130 first refers to the source host name in the log message and starts from the same host. Detect templates identified for sent log messages.
- the event candidate extraction unit 130 is specified for the log message provided from the same host based on the time stamp of the log message. From the detected templates, the template immediately before the detected template is extracted, and based on the occurrence time difference between the detected template and the immediately preceding template, it is determined whether the detected template and the immediately preceding template belong to the same event candidate May be. This is because, in general, when the occurrence time difference is small, it can be estimated that these two templates have occurred in correlation with each other, and it is highly likely that they belong to the same event candidate.
- the generation time interval between templates tends to follow a multimodal distribution.
- the illustrated example shows an occurrence time interval between templates based on past data, and shows a distribution of occurrence time intervals (seconds) between three sets of templates.
- the occurrence time interval between templates often follows a multimodal distribution, and it is considered that events are distinguished by the peaks of each distribution. Therefore, in the following, a method for learning a threshold value for each peak of the distribution of occurrence time intervals between templates will be described. This method is based on an approach in which a template generation time interval is regarded as a cluster, and a threshold value (dur (t0, t) to be described later) is sequentially updated or learned for each cluster.
- FIG. 5 is a flowchart showing event candidate extraction processing according to an embodiment of the present invention.
- step S101 the event candidate extraction unit 130 identifies a template t identified for the host h as a match with the log message generated immediately before at the host h.
- An occurrence time difference d between the occurrence time of t0 and the occurrence time of the template t is calculated.
- the event candidate extraction unit 130 updates the generation time interval dur (t0, t) depending on the template t0 and the template t according to an update process as described later.
- dur (t0, t) is defined as the time. Is done.
- the occurrence time interval dur (t0, t) may be defined to a different value depending on the template type, the event type, and the like.
- the generation time interval dur (t0, t) depends on the templates t0 and t. This is because the generation time interval differs for each template and event.
- the value of the occurrence time interval dur (t0, t) is generally not obvious, and may be estimated sequentially, for example, according to an update process as described later.
- step S103 the event candidate extraction unit 130 determines whether the occurrence time difference d is greater than the occurrence time interval dur (t0, t), that is, it can be estimated that the template t0 and the template t are generated in correlation. . If the occurrence time difference d is greater than the occurrence time interval dur (t0, t) (S103: yes), the event candidate extraction unit 130 determines that the template t0 and the template t are not generated in correlation, up to the template t0. The template series is determined as an event candidate.
- the event candidate extraction unit 130 when the occurrence time difference d is greater than the occurrence time interval dur (t0, t), the event candidate extraction unit 130 generates the template generated up to the immediately preceding template t0 specified for the log message provided from the same host h. t1, t2,... are determined as event candidates, and the detected template t is extracted as a new event candidate.
- the event candidate extraction unit 130 determines that the template t0 and the template t are generated in correlation with each other.
- the template t is added to the template series up to the template t0.
- the event candidate extraction unit 130 estimates the occurrence time interval dur (t0, t) depending on the detected template t and the immediately preceding template t0, and the occurrence time difference d is the occurrence time interval dur (t0, t). In the following case, it is determined that the detected template t and the immediately preceding template t0 belong to the same event candidate t, t1, t2,.
- step S102 relating to the calculation of the occurrence time interval dur (t0, t) described above will be described in more detail.
- the event candidate extraction unit 130 identifies a cluster to which the occurrence time difference d belongs among clusters generated for occurrence time differences calculated in the past, and the occurrence time interval dur based on the average and variance of the identified clusters. (t0, t) may be estimated.
- FIG. 6 is a flowchart showing the dur (t0, t) update process according to an embodiment of the present invention.
- the event candidate extraction unit 130 clusters the occurrence time difference d between the template t and the template t0, and searches for a cluster to which d belongs. Specifically, the event candidate extraction unit 130 applies each time interval t-t0, t-t1, to the past P templates (t0, t1, ..., tp-1) before t in the host h. ..., t-tp-1, and each calculation result is added to the corresponding generation interval list group DL (t0, t), DL (t1, t), ..., DL (tp-1, t).
- any clustering method that can be executed sequentially can be applied to the clustering, but a DBSCAN-based method as described in more detail below may be used.
- step S202 the event candidate extraction unit 130 determines whether the number of elements included in the cluster Ci to which the occurrence time difference d belongs is equal to or greater than a predetermined threshold. If the number of elements included in the cluster Ci is equal to or greater than the threshold (S202: yes), the event candidate extraction unit 130 proceeds to step S203. On the other hand, if the number of elements included in the cluster Ci is less than the threshold (S202: no), the event candidate extraction unit 130 determines in step S204 that the cluster Ci corresponds to an outlier, and is generated. Set the time interval dur (t0, t) to the default value.
- step S203 the event candidate extraction unit 130 updates the average value M and the variance V for the cluster Ci according to the following equations.
- n indicates the number of updates
- ⁇ and ⁇ are predetermined constants.
- the updated average value M (n + 1) is calculated based on the average value M (n) before the update of the cluster Ci and the occurrence time difference d
- the updated variance V (n + 1) is the cluster It is calculated based on the variance V (n) before the update of Ci, the occurrence time difference d, and the average value M (n) before the update.
- step S205 the event candidate extraction unit 130 determines whether the updated variance V (n + 1) is equal to or less than a predetermined threshold.
- the event candidate extraction unit 130 proceeds to step S206, and on the other hand, when the variance V (n + 1) exceeds the threshold (S205). : No), the event candidate extraction unit 130 determines that the template t and the template t0 are not generated in correlation with each other, and determines that the cluster Ci corresponds to an outlier in step S207. Set the time interval d (t0, t) to the default value.
- step S206 the event candidate extraction unit 130 updates the occurrence time interval dur (t0, t) according to the following equation.
- ⁇ is a predetermined constant.
- the event candidate extraction unit 130 executes dur (t0, t) update processing in step S102.
- dur (t0, t) update processing is not limited to this, and any appropriate method that enables sequential clustering may be applied.
- FIG. 7 is a flowchart showing the generation time difference clustering process according to an embodiment of the present invention.
- the clusters of the occurrence interval groups acquired so far are C1,..., CL.
- the event candidate extraction unit 130 determines in step S301 whether the occurrence time difference d belongs to any cluster Ci that has occurred in the past, that is, d ⁇ C1min ⁇ . Alternatively, it is determined whether CLmax + ⁇ ⁇ d.
- the event candidate extraction unit 130 determines that the occurrence time difference d belongs to any cluster Ci that has occurred in the past, and proceeds to step S302. On the other hand, if d ⁇ C1min ⁇ or CLmax + ⁇ ⁇ d (S301: yes), it is determined that the occurrence time difference d does not belong to any of the clusters Ci that have occurred in the past, and the occurrence time difference d is used as an element. Create a new cluster.
- step S302 the event candidate extraction unit 130 searches for the minimum i that satisfies d ⁇ C (i + 1) min in ascending order from the cluster C1.
- step S304 the event candidate extraction unit 130 determines whether Cimin ⁇ ⁇ d ⁇ Cimax + ⁇ . If Cimin ⁇ ⁇ d ⁇ Cimax + ⁇ (S304: yes), the event candidate extraction unit 130 assigns the occurrence time difference d to the cluster Ci in step S306. On the other hand, if Cimin ⁇ ⁇ d ⁇ Cimax + ⁇ is not satisfied (S304: no), the event candidate extraction unit 130 determines that the occurrence time difference d does not belong to the cluster Ci, and whether or not it belongs to the cluster Ci + 1 in step S305. That is, it is determined whether 0 ⁇ C (i + 1) min-d ⁇ .
- the event candidate extraction unit 130 determines that the occurrence time difference d does not belong to any of the clusters Ci and Ci + 1, and the occurrence time difference. Create a new cluster with d as an element.
- the event candidate extraction unit 130 determines that the occurrence time difference d belongs to the cluster Ci + 1, and in step S308, the occurrence occurs.
- the time difference d is assigned to the cluster Ci + 1. In this way, the event candidate extraction unit 130 identifies the cluster Ci + 1 to which the occurrence time difference d belongs.
- the event candidate extraction unit 130 connects the series of template i specified for the same host h in time order, and outputs the generated series of template i as an event candidate.
- the event extraction unit 140 extracts a series of templates that frequently appear from the extracted event candidates as events. Specifically, the event extraction unit 140 acquires, as an event, a set or pattern of templates that frequently appear in common from each extracted event candidate.
- the event extraction unit 140 can use any appropriate frequent pattern counting method, for example, Y.Chi, H.Wang, PSYu, and RRMuntz, "Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window ", In proc. Of ICDM. 2004 and N.Jiang, and L.Gruenwald," CFI-Stream: Mining Closed Frequent Itemsets in Data Streams ", In proc. Of KDD, 2006 A method of enumerating patterns may be used.
- the closed pattern represents the largest set of patterns having the same number of occurrences.
- a tree called DIUTree in which closed frequent patterns similar to Prefix Tree are enumerated is held, and this is sequentially updated for newly arrived event candidates.
- the update is mainly performed by performing a minimum scan to check whether a new event candidate is already included in the DIUTree or a new closed pattern is obtained.
- a threshold E for the number of specific event occurrences, the user can sequentially grasp events that have occurred more than E times using the DIUTree.
- the log analysis device 100 collects log messages generated in the monitoring target device group 200 during a certain period, and the log analysis described above is performed on the log messages collected within the period. This relates to offline processing.
- the log analysis system 10 may relate to online processing, as shown in FIG. That is, the log analysis device 100 may extract an event for the acquired log message every time the log message is acquired from the host. Specifically, every time a log message is acquired from the monitoring target device group 200, the log analysis apparatus 100 stores the acquired log message in the template addition database (DB) 108.
- DB template addition database
- the log analysis apparatus 100 may execute the event candidate extraction process described above for each stored log message, extract event candidates, and extract events from the extracted event candidates.
- the extracted event may be transmitted to the user device 300 via the user interface 107, for example, every time it is extracted or when a query is issued from the user device 300 or a specific event is updated.
- FIG. 9 is a flowchart showing log analysis processing according to another embodiment of the present invention.
- the offline log analysis process described with reference to FIGS. 5 to 7 is executed every time a log message is acquired.
- the log analysis process may be realized by a computer executing a program.
- step S401 the log analysis apparatus 100 determines whether a log message has been acquired from the host of the monitoring target device group 200. When the log message is acquired, the subsequent steps are executed. In addition, after acquiring a predetermined number (1, 2, 3,...) Of log messages from the host, the log analysis apparatus 100 may execute the subsequent steps. Alternatively, after obtaining a log message from the host for a predetermined period, the log analysis apparatus 100 may execute the subsequent steps.
- step S402 the log analysis apparatus 100 identifies a template that matches each log message provided from the monitored host, from the stored templates related to the log message. Specifically, the log analysis device 100 extracts a template that matches the acquired log message from the stored templates.
- step S403 the log analysis device 100 detects a template specified for a log message provided from the same host among the specified templates, and extracts a series of detected templates as event candidates. Specifically, the log analysis apparatus 100 extracts the event candidates and updates or learns the occurrence time interval dur (t0, t) by executing the processes of FIGS. 5 to 7 described above.
- step S404 the log analysis apparatus 100 extracts a series of templates that frequently appear from the extracted event candidates as events. Specifically, the log analysis apparatus 100 acquires, as an event, a set of templates or patterns that frequently appear from each extracted event candidate using any known method as described above. Thereafter, the process returns to step S401, and the above-described steps are executed each time a log message is acquired.
- FIG. 10 is a diagram showing a simulation result of log analysis processing according to another embodiment of the present invention.
- a simulation result when the above-described online log analysis processing is applied is shown, and a transition of processing time every time a log message of 10,000 lines is processed is shown.
- the log analysis processing described above is executed for all data every time a log message is acquired, and the processing time increases with the number of processing rows.
- the online log analysis processing according to the present embodiment can be sequentially performed at a stable speed as shown in the figure.
- the log analysis apparatus 100 is connected to a failure / construction information database (DB) 250 for communication, and a log message generated when a network device fails or a log message related to construction. Events may be extracted for.
- DB failure / construction information database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出するための技術を提供することである。本発明の一態様は、ログメッセージに関するテンプレートを格納するテンプレート格納部と、前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部とを有するログ分析装置に関する。
Description
本発明は、多種多様な機械が出力するログ情報から利用者にとって有用な情報を抽出する技術に関し、特に利用者が機械の生成するログの形式の生成則を事前に直接的に知ることなく必要な情報を逐次的に抽出するのに好適な技術に関するものである。
今日、コスト削減を主な理由として、異なる製造元の、異なる役割を持つ機器、ソフトウェアの一元的な監視・管理が行われている。一方で、こうした多種多様な機器やソフトウェアはそれぞれ独自の形態を持つログを出力する機構を有しており、機器の監視・管理を行う際において使用される。情報機器の発展に伴い、これらのログ情報は複雑・大規模化しており、効率的な監視方法が必要となっている。
こうした中で、非特許文献1では、ログ分析を簡略化するための分析基盤が提案されている。しかしながら、これを利用するためには、個々のログの発生する意味やログメッセージの内容に関しての事前知識が必要となり、膨大な未知のログの分析にはノウハウの蓄積がなければ運用が困難となる。
一方、非特許文献2では、ルータなどのネットワーク機器の生成するsyslogを対象とし、ベンダやメッセージタイプ、エラーコード、詳細なメッセージ内容といったある程度の形式を事前に与えられた場合におけるテンプレートの把握法が与えられている。ルータの位置関係などを利用して、syslogのダイジェスト情報を表示する手法が提案されている。
このような従来技術では、少なくとも情報を収集する段階での事前知識が必要である。例えば、どのベンダからログを収集しているか、メッセージ内のどの部分がエラーコードを示しているのかといったことを把握しておかなければならず、テンプレート把握機構を単純に用意するだけでなく、事前の手動での入力や準備が必要となる。また、syslogのダイジェスト表示機能は、syslogに特化した手法であるため、その他の監視ログ情報への適用が困難である。
Splunk http://www.splunk.com/
T. Qiu, Z. Ge, D. Pei, J. Wang, J, Xu, "What Happened in my Network? Mining Network Events from Router Syslogs", In IMC, 2010.
Y. Chi, H. Wang, P.S. Yu, and R. R. Muntz, "Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window," In Proc. of ICDM, 2004.
N. Jiang, and L. Gruenwald, "CFI-Stream: Mining Closed Frequent Itemsets in Data Streams," In Proc. of KDD, 2006.
本願出願人により出願された特願2013-168226号では、このような事前情報を用いることなく、syslogに限定されない一般的なログのテンプレートを逐次的に抽出する方法が開示されている。一方、当該方法により抽出されるテンプレートは、図1に示されるように、1行単位で規定されるものであり、ネットワークで逐次的に発生するログから抽出されるテンプレートの組み合わせの関連性に関するログ分析が所望される。
従って、本発明の課題は、利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出するための技術を提供することである。
上記課題を解決するため、本発明の一態様は、ログメッセージに関するテンプレートを格納するテンプレート格納部と、前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部とを有するログ分析装置に関する。
本発明によると、利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出することができる。
以下、図面に基づいて本発明の実施の形態を説明する。
後述する実施例では、ログメッセージ間の相関を考慮したログ分析を実行するログ分析装置が開示される。本発明を概略すると、ログ分析装置は、ネットワーク機器からログメッセージを収集し、予め取得されているログメッセージに関するテンプレートから、収集したログメッセージに一致するテンプレートを特定する。ログ分析装置は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートと当該ホストについて以前に検出されたテンプレートとの発生時間差に基づきテンプレート間の相関を判断し、判断結果に応じて検出されたテンプレートの系列をイベント候補として抽出する。ログ分析装置はさらに、このように抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出し、ログ分析結果として利用者に提供する。
これにより、単一のテンプレートに一致したログメッセージを抽出するだけでなく、逐次的に生成されたログメッセージに一致する複数のテンプレートの間の時間的な相関関係に基づき、相関するテンプレート系列をイベントとして抽出することが可能になる。
図2を参照して、本発明の一実施例によるログ分析システムを説明する。図2は、本発明の一実施例によるログ分析システムを示す概略図である。
図2に示されるように、ログ分析システム10は、ログ分析装置100、監視対象機器群200及びユーザ装置300を有する。
ログ分析装置100は、ログメッセージに関するテンプレートを予め保持し、監視対象機器群200の各ホストからログメッセージを収集し、収集したログメッセージに対して後述される処理を実行することによって、相関するテンプレート系列をイベントとして抽出する。図2に示されるように、ログ分析装置100は、ログ収集装置101、ログ・テンプレート情報データベース(DB)102、イベント候補抽出エンジン103、イベント候補データベース(DB)104、イベント抽出エンジン105、イベントデータベース(DB)106及びユーザインタフェース107のハードウェア要素から構成される。
ログ収集装置101は、監視対象機器群200に通信接続され、監視対象機器群200の各ホスト(p.0,p.1,...,p.n)からログメッセージを収集する。当該ログメッセージは、例えば、syslogであってもよいが、これに限定されることなく、ホストから送信されるホストの動作状態などを示す他の何れか適切なメッセージであってもよい。
ログ・テンプレート情報DB102は、ログ収集装置101により収集されたログメッセージを格納すると共に、ログメッセージから抽出されたテンプレートを格納する。本実施例では、格納されているテンプレートは、何れか適切なテンプレート抽出法を利用して、過去に収集されたログメッセージから予め抽出されたものであってもよい。例えば、テンプレートは、図1に示されるような具体的なパラメータ値をワイルドカード"*"としたデータ形式を有し、ログメッセージ内の重要とされる部分や行から構成されてもよい。なお、各テンプレートには、識別子(ID)が割り当てられ、i=1,2,...,Iなどにより表される。
イベント候補抽出エンジン103は、後述されるようなイベント候補抽出処理を実行し、同一のホストから逐次的に収集したログメッセージに関連する1以上のテンプレートの系列をイベント候補として抽出する。
イベント候補DB104は、イベント候補抽出エンジン103により抽出されたイベント候補を格納する。
イベント抽出エンジン105は、後述されるようなイベント抽出処理を実行し、抽出されたイベント候補から頻出するテンプレートの系列又はパターンをイベントとして抽出する。
イベントDB106は、イベント抽出エンジン105により抽出されたイベントを格納する。
ユーザインタフェース107は、抽出されたイベントをユーザ装置300の利用者に提供する。例えば、ユーザインタフェース107は、ユーザ装置300がイベントを利用者に表示できるように、ユーザ装置300に抽出したイベントを送信する。
一例となるハードウェア構成として、ログ分析装置100は、バスを介し相互接続されるドライブ装置、補助記憶装置、メモリ装置、CPU (Central Processing Unit)及びインタフェース装置を有する。ログ分析装置100における後述される各種機能及び処理を実現する各種プログラムは、光ディスクや半導体メモリなどの記録媒体によって提供されてもよい。プログラムを記憶した記録媒体がドライブ装置にセットされると、プログラムが記録媒体からドライブ装置を介して補助記憶装置にインストールされる。但し、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワーク(図示せず)を介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置は、プログラムの起動指示があった場合に、補助記憶装置からプログラムやデータを読み出して格納する。上述された各データベースは、補助記憶媒体やメモリ装置により実現されてもよい。CPUは、情報を処理するプロセッサであって、メモリ装置に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、後述されるようなログ分析装置100の各種機能及び処理を実行する。上述された各エンジンは、プロセッサにより実現されてもよい。インタフェース装置は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。しかしながら、ログ分析装置100は、上述したハードウェア構成に限定されるものでなく、何れか適切な情報処理装置として実現されてもよい。
監視対象機器群200は、1以上のホストp.0~p.nから構成され、ネットワークを介しログ分析装置100に通信接続される。各ホストは、例えば、ルータなどのネットワーク機器であってもよく、syslogメッセージなどの各種ログメッセージを逐次生成し、ログ分析装置100に送信する。一実施例では、ログメッセージは、当該ログメッセージが生成された時間を示すタイムスタンプ、当該ログメッセージを生成したホスト名及びメッセージ本体を含む。なお、各ホストには、識別子(ID)が割り当てられ、h=1,2,...,Hなどにより表される。
ユーザ装置300は、パーソナルコンピュータ、スマートフォンやタブレットなどの情報処理装置であり、ネットワークを介しログ分析装置100に通信接続される。利用者は、ユーザ装置300を介しログ分析装置100から分析結果であるイベントを確認することができる。
次に、図3~6を参照して、本発明の一実施例によるログ分析装置を説明する。図3は、本発明の一実施例によるログ分析装置の機能構成を示すブロック図である。
図3に示されるように、ログ分析装置100は、テンプレート格納部110、テンプレート特定部120、イベント候補抽出部130及びイベント抽出部140を有する。
テンプレート格納部110は、ログメッセージに関するテンプレートを格納する。具体的には、ログ分析装置100は、監視対象機器群200の各ホストhからログメッセージを収集し、何れか適切なテンプレート抽出法に従ってこれまでに収集したログメッセージから抽出されたテンプレートを保持する。一実施例では、各テンプレートは、利用者に有用なログメッセージから構成され、図1に示されるようなログメッセージ内の具体的なパラメータ値をワイルドカード"*"としたデータ形式を有してもよい。例えば、テンプレートは、本願出願人により出願済みの特願2013-168226号に記載されるテンプレート抽出法に従って自動的に抽出されてもよいし、あるいは、ログ分析装置100のオペレータにより予め設定されてもよい。各テンプレートには、識別子(ID)が割り当てられ、i=1,2,...,Iなどにより表される。
テンプレート特定部120は、格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定する。具体的には、各ログメッセージは、当該ログメッセージが生成された時間を示すタイムスタンプ、当該ログメッセージを生成したホスト名及びメッセージ本体を含む。
テンプレート特定部120は、監視対象機器群200の各ホストから受信したログメッセージ内の各行と、テンプレート格納部110に格納されているテンプレートとを対比し、受信したログメッセージに一致するテンプレートを抽出する。例えば、図1に示されるログメッセージとテンプレートとの具体例では、ログメッセージは、テンプレートのワイルドカード"*"に具体的な値"662288"などが設定されている点を除きテンプレートに一致する。このため、テンプレート特定部120は、当該ログメッセージがテンプレートに一致していると判断することができる。テンプレート特定部120は、格納されている各ログメッセージに対してテンプレートとの対比を順次実行し、格納されているテンプレートに一致するログメッセージを特定する。なお、後述するように、テンプレート特定部120は、オンライン又はオフラインに提供されたログメッセージに一致するテンプレートを特定し、特定したテンプレートをイベント候補抽出部130に提供してもよい。
イベント候補抽出部130は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートの系列をイベント候補として抽出する。具体的には、テンプレート特定部120がログメッセージに一致していると特定したテンプレートについて、イベント候補抽出部130はまず、当該ログメッセージ内の生成元のホスト名を参照して、同一のホストから送信されたログメッセージについて特定されたテンプレートを検出する。
一実施例では、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出すると、イベント候補抽出部130は、当該ログメッセージのタイムスタンプに基づき同一のホストから提供されたログメッセージについて特定されたテンプレートのうち、検出されたテンプレートの直前のテンプレートを抽出し、検出されたテンプレートと直前のテンプレートとの発生時間差に基づき、検出されたテンプレートと直前のテンプレートとが同一のイベント候補に属するか判断してもよい。一般に、発生時間差が小さい場合、これら2つのテンプレートは相関して生起したと推定することが可能であり、同一のイベント候補に属している可能性が高いと考えられるためである。
例えば、図4に示されるように、テンプレート間の発生時間間隔は多峰性の分布に従う傾向があることが知られている。図示された例は、過去のデータに基づくテンプレート間の発生時間間隔を示したものであり、3組のテンプレート間の発生時間間隔(秒)の分布が示されている。図から分かるように、テンプレート間の発生時間間隔は多峰性の分布に従うケースが多く、各分布の峰によってイベントが区別されると考えられる。そこで、以下において、テンプレート間の発生時間間隔の分布の各峰について閾値を学習する方法を説明する。当該方法は、テンプレート発生時間間隔をクラスタとして捉え、クラスタ毎に発生時間差の閾値(後述するdur(t0,t))を逐次的に更新又は学習するというアプローチに基づく。
ここで、図5を参照して、当該イベント候補抽出処理をより詳細に説明する。図5は、本発明の一実施例によるイベント候補抽出処理を示すフロー図である。
図5に示されるように、ステップS101において、イベント候補抽出部130は、ホストhについて特定されたテンプレートtについて、ホストhにおいて直前に発生したログメッセージに対して一致していると特定されたテンプレートt0の発生時間と、テンプレートtの発生時間との間の発生時間差dを計算する。
ステップS102において、イベント候補抽出部130は、後述されるような更新処理に従って、テンプレートt0とテンプレートtとに依存する発生時間間隔dur(t0,t)を更新する。上述したように、テンプレートt0とテンプレートtとが所定の時間内で発生する場合、テンプレートt0とテンプレートtとは相関して生起したと推定可能であり、dur(t0,t)は当該時間として定義される。発生時間間隔dur(t0,t)は、テンプレートの種別やイベントの種別などに応じて異なる値に定義されてもよい。ここで、発生時間間隔dur(t0,t)はテンプレートt0及びtに依存する。これは、テンプレート及びイベント毎にその発生時間間隔が異なるためである。しかしながら、発生時間間隔dur(t0,t)の値は、一般には自明でなく、例えば、後述されるような更新処理に従って逐次的に推定されてもよい。
ステップS103において、イベント候補抽出部130は、発生時間差dが発生時間間隔dur(t0,t)より大きいか、すなわち、テンプレートt0とテンプレートtとが相関して発生したと推定可能であるか判定する。発生時間差dが発生時間間隔dur(t0,t)より大きい場合(S103:yes)、イベント候補抽出部130は、テンプレートt0とテンプレートtとが相関して発生したものでないと判断し、テンプレートt0までのテンプレート系列をイベント候補として確定する。換言すると、イベント候補抽出部130は、発生時間差dが発生時間間隔dur(t0,t)より大きい場合、同一のホストhから提供されたログメッセージについて特定された直前のテンプレートt0までに発生したテンプレートt1,t2,...をイベント候補として確定し、検出されたテンプレートtを新たなイベント候補として抽出する。
他方、発生時間差dが発生時間間隔dur(t0,t)以下である場合(S103:no)、イベント候補抽出部130は、テンプレートt0とテンプレートtとが相関して発生したものであると判断し、テンプレートt0までのテンプレート系列にテンプレートtを追加する。換言すると、イベント候補抽出部130は、検出されたテンプレートtと直前のテンプレートt0とに依存する発生時間間隔dur(t0,t)を推定し、発生時間差dが発生時間間隔dur(t0,t)以下である場合、検出されたテンプレートtと直前のテンプレートt0とが同一のイベント候補t,t1,t2,...に属すると判断する。
ここで、図6を参照して、上述した発生時間間隔dur(t0,t)の算出に関するステップS102をより詳細に説明する。一実施例では、イベント候補抽出部130は、過去に算出された発生時間差について生成されたクラスタのうち発生時間差dが属するクラスタを特定し、特定されたクラスタの平均及び分散に基づき発生時間間隔dur(t0,t)を推定してもよい。図6は、本発明の一実施例によるdur(t0,t)の更新処理を示すフロー図である。
図6に示されるように、ステップS201において、イベント候補抽出部130は、テンプレートtとテンプレートt0との発生時間差dをクラスタリングし、dが属するクラスタを検索する。具体的には、イベント候補抽出部130は、ホストhにおけるtより前の過去P個のテンプレート(t0, t1, …, tp-1)に対して、各時間間隔t-t0, t-t1, …, t-tp-1を計算し、各計算結果を対応する発生間隔リスト群DL(t0,t), DL(t1,t), …, DL(tp-1,t)に追加する。その後、イベント候補抽出部130は、各DL(ti,t) (i=0,1,…p-1)について、新たに追加した発生時間差dをクラスタリングする。これは、同じテンプレートの発生間隔は一意的な値であるとは限らず、ある範囲を有すると考えられるためである。
ここで、当該クラスタリングは、逐次的に実行可能な任意のクラスタリング方法が適用可能であるが、以下でより詳細に説明されるようなDBSCANベースの方法を利用してもよい。
ステップS202において、イベント候補抽出部130は、発生時間差dが属するクラスタCiに含まれる要素の個数が所定の閾値以上であるか判断する。クラスタCiに含まれる要素の個数が閾値以上である場合(S202:yes)、イベント候補抽出部130は、ステップS203に移行する。他方、クラスタCiに含まれる要素の個数が閾値未満である場合(S202:no)、イベント候補抽出部130は、ステップS204において、当該クラスタCiは外れ値に対応するものであると判断し、発生時間間隔dur(t0,t)をデフォルト値に設定する。
ステップS203において、イベント候補抽出部130は、クラスタCiに対する平均値M及び分散Vを以下の式に従って更新する。
すなわち、更新後の平均値M(n+1)は、クラスタCiの更新前の平均値M(n)と発生時間差dとに基づき算出され、更新後の分散V(n+1)は、クラスタCiの更新前の分散V(n)と発生時間差d及び更新前の平均値M(n)に基づき算出される。
ステップS205において、イベント候補抽出部130は、更新後の分散V(n+1)が所定の閾値以下であるか判断する。分散V(n+1)が当該閾値以下である場合(S205:yes)、イベント候補抽出部130は、ステップS206に移行し、他方、分散V(n+1)が当該閾値を超える場合(S205:no)、イベント候補抽出部130は、テンプレートtとテンプレートt0とが相関して発生したものでないと判断し、ステップS207において、当該クラスタCiは外れ値に対応するものであると判断し、発生時間間隔d(t0,t)をデフォルト値に設定する。
ステップS206において、イベント候補抽出部130は、以下の式に従って発生時間間隔dur(t0,t)を更新する。
このように取得した発生時間間隔dur(t0,t)を用いて、イベント候補抽出部130は、ステップS102におけるdur(t0,t)の更新処理を実行する。上述したDBSCANベースクラスタリング方法によると、計算が全て逐次的に実行可能であるため、計算速度の大きな劣化は発生しない。なお、本発明によるdur(t0,t)の更新処理は、これに限定されるものでなく、逐次的なクラスタリングを可能にする何れか適切な方法が適用されてもよい。
ここで、図7を参照して、上述したクラスタリング処理に関するステップS201をより詳細に説明する。図7は、本発明の一実施例による発生時間差のクラスタリング処理を示すフロー図である。
図7に示されるように、現時点までに取得された発生間隔群のクラスタをC1,…,CLとする。Ci (i=1,2,…,L)は昇順にソートされ、Ciに含まれる値のうち、最小のものをCiminとし、最大のものをCimaxとする。ここで、新たな発生時間差dが到着すると、イベント候補抽出部130は、ステップS301において、当該発生時間差dが過去に発生した何れかのクラスタCiに属するか否か、すなわち、d<C1min-δ又はCLmax+δ<dであるか判定する。
d<C1min-δ又はCLmax+δ<dでない場合(S301:no)、イベント候補抽出部130は、発生時間差dが過去に発生した何れかのクラスタCiに属すると判断し、ステップS302に移行し、他方、d<C1min-δ又はCLmax+δ<dである場合(S301:yes)、発生時間差dが過去に発生したクラスタCiの何れにも属さないと判断し、発生時間差dを要素とする新たなクラスタを生成する。
ステップS302において、イベント候補抽出部130は、クラスタC1から昇順にd<C(i+1)minとなる最小のiを検索する。
ステップS304において、イベント候補抽出部130は、Cimin-δ<d<Cimax+δであるか判断する。Cimin-δ<d<Cimax+δである場合(S304:yes)、イベント候補抽出部130は、ステップS306において、発生時間差dをクラスタCiに割り当てる。他方、Cimin-δ<d<Cimax+δでない場合(S304:no)、イベント候補抽出部130は、発生時間差dがクラスタCiに属さないと判断し、ステップS305において、クラスタCi+1に属するか、すなわち、0<C(i+1)min-d<δであるか判断する。
0<C(i+1)min-d<δでない場合(S305:no)、イベント候補抽出部130は、発生時間差dがクラスタCi, Ci+1の何れにも属さないと判断し、発生時間差dを要素とする新たなクラスタを生成する。他方、0<C(i+1)min-d<δである場合(S305:yes)、イベント候補抽出部130は、発生時間差dがクラスタCi+1に属すると判断し、ステップS308において、発生時間差dをクラスタCi+1に割り当てる。このようにして、イベント候補抽出部130は、発生時間差dが属するクラスタCi+1を特定する。
その後、イベント候補抽出部130は、同一ホストhについて特定されたテンプレートiの系列を時間順につなぎ合わせ、生成されたテンプレートiの系列をイベント候補として出力する。
イベント抽出部140は、抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出する。具体的には、イベント抽出部140は、抽出された各イベント候補から共通で頻出するテンプレートの集合又はパターンをイベントとして取得する。イベント抽出部140は、何れか適当な頻出パターンのカウント方法を利用可能であり、例えば、Y.Chi, H.Wang, P.S.Yu, and R.R.Muntz, "Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window", In proc. of ICDM. 2004やN.Jiang, and L.Gruenwald, "CFI-Stream: Mining Closed Frequent Itemsets in Data Streams", In proc. of KDD, 2006に開示される逐次的にclosedな頻出パターンを列挙する方法を利用してもよい。ここで、closedなパターンとは、同一発生回数を有するパターンのうち最大の集合を表すものである。例えば、CFI-Streamでは、内部にPrefix Treeに類似したclosedな頻出パターンを列挙したDIUTreeと呼ばれる木を保持し、これを逐次的に新たに到着したイベント候補に対して更新する。当該更新は、主として既にDIUTreeに新しいイベント候補が含まれているか、又は新しいclosedパターンになるか、というチェックを必要最小限の走査で行うものである。利用者は、特定のイベント発生回数の閾値Eを設定することによって、E回以上発生したイベントをDIUTreeにより逐次把握することができる。
次に、図8~10を参照して、本発明の他の実施例によるログ分析システムを説明する。上述したログ分析システム10は、一定の期間において監視対象機器群200において生成されたログメッセージをログ分析装置100が収集し、当該期間内に収集したログメッセージに対して上述したログ分析が実行されるオフライン処理に関するものである。他の実施例では、ログ分析システム10は、図8に示されるように、オンライン処理に関するものであってもよい。すなわち、ログ分析装置100は、ホストからログメッセージを取得する毎に、取得したログメッセージに対してイベントを抽出してもよい。具体的には、監視対象機器群200からログメッセージを取得する毎に、ログ分析装置100は、取得したログメッセージをテンプレート付加データベース(DB)108に格納する。さらに、ログ分析装置100は、格納した各ログメッセージに対して、上述したイベント候補抽出処理を実行し、イベント候補を抽出し、抽出したイベント候補からイベントを抽出するようにしてもよい。抽出されたイベントは、例えば、抽出される毎に、あるいはユーザ装置300からのクエリの発行や特定のイベントが更新された場合に、ユーザインタフェース107を介しユーザ装置300に送信されてもよい。
図9は、本発明の他の実施例によるログ分析処理を示すフローチャートである。オンラインのログ分析処理は、ログメッセージを取得する毎に、図5~7を参照して説明したオフラインのログ分析処理を実行するというものである。当該ログ分析処理は、コンピュータがプログラムを実行することによって実現されてもよい。
図9に示されるように、ステップS401において、ログ分析装置100は、監視対象機器群200のホストからログメッセージを取得したか判断し、ログメッセージを取得すると、以降のステップを実行する。なお、ホストから所定数(1,2,3,...)のログメッセージを取得した後、ログ分析装置100が以降のステップを実行するようにしてもよい。あるいは、ホストからログメッセージを所定の期間取得した後、ログ分析装置100が以降のステップの実行するようにしてもよい。
ステップS402において、ログ分析装置100は、格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定する。具体的には、ログ分析装置100は、格納されているテンプレートから、取得したログメッセージに一致するテンプレートを抽出する。
ステップS403において、ログ分析装置100は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートの系列をイベント候補として抽出する。具体的には、ログ分析装置100は、上述した図5~7の処理を実行することによって、イベント候補を抽出すると共に、発生時間間隔dur(t0,t)を更新又は学習する。
ステップS404において、ログ分析装置100は、抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出する。具体的には、ログ分析装置100は、上述したような何れか既知の方法を利用して、抽出された各イベント候補から共通で頻出するテンプレートの集合又はパターンをイベントとして取得する。その後、当該処理は、ステップS401に戻り、ログメッセージが取得される毎に上述したステップが実行される。
図10は、本発明の他の実施例によるログ分析処理のシミュレーション結果を示す図である。図では、上述したオンラインのログ分析処理が適用された際のシミュレーション結果が示され、1万行のログメッセージを処理する毎の処理時間の推移が示されている。オフラインのログ分析処理では、ログメッセージが取得される毎に全てのデータに対して上述したログ分析処理が実行され、処理行数と共に処理時間が増加する。他方、本実施例によるオンラインのログ分析処理は、図示されるように、安定した速度により逐次処理が可能になる。
また、他の実施例では、図11に示されるように、ログ分析装置100は、故障・工事情報データベース(DB)250に通信接続され、ネットワーク機器の故障時に発生するログメッセージや工事に関するログメッセージに関してイベントを抽出してもよい。
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本国際出願は、2014年8月25日に出願した日本国特許出願2014-170097号に基づく優先権を主張するものであり、2014-170097号の全内容を本国際出願に援用する。
10 ログ分析システム
100 ログ分析装置
110 テンプレート格納部
120 テンプレート特定部
130 イベント候補抽出部
140 イベント抽出部
200 監視対象機器群
300 ユーザ装置
100 ログ分析装置
110 テンプレート格納部
120 テンプレート特定部
130 イベント候補抽出部
140 イベント抽出部
200 監視対象機器群
300 ユーザ装置
Claims (11)
- ログメッセージに関するテンプレートを格納するテンプレート格納部と、
前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部と、
を有するログ分析装置。 - 当該ログ分析装置は、前記ホストからログメッセージを取得する毎に、前記取得したログメッセージに対して前記イベントを抽出する、請求項1記載のログ分析装置。
- 前記イベント候補抽出部は、前記同一のホストから提供されたログメッセージについて特定されたテンプレートを検出すると、前記ログメッセージのタイムスタンプに基づき前記同一のホストから提供されたログメッセージについて特定されたテンプレートのうち、前記検出されたテンプレートの直前のテンプレートを抽出し、前記検出されたテンプレートと前記直前のテンプレートとの発生時間差に基づき、前記検出されたテンプレートと前記直前のテンプレートとが同一のイベント候補に属するか判断する、請求項1又は2記載のログ分析装置。
- 前記イベント候補抽出部は、前記検出されたテンプレートと前記直前のテンプレートとに依存する発生時間間隔を推定する、請求項3記載のログ分析装置。
- 前記イベント候補抽出部は、前記発生時間差が前記推定された発生時間間隔以下である場合、前記検出されたテンプレートと前記直前のテンプレートとが同一のイベント候補に属すると判断する、請求項4記載のログ分析装置。
- 前記イベント候補抽出部は、前記発生時間差が前記推定された発生時間間隔より大きい場合、前記同一のホストから提供されたログメッセージについて特定された前記直前のテンプレートまでに発生したテンプレートをイベント候補として確定し、前記検出されたテンプレートを新たなイベント候補として抽出する、請求項4記載のログ分析装置。
- 前記イベント候補抽出部は、過去に算出された発生時間差について生成されたクラスタのうち前記発生時間差が属するクラスタを特定し、前記特定されたクラスタの平均及び分散に基づき前記発生時間間隔を推定する、請求項4記載のログ分析装置。
- 前記テンプレート特定部は、オンライン又はオフラインに提供されたログメッセージに一致するテンプレートを特定し、特定したテンプレートを前記イベント候補抽出部に提供する、請求項1又は2記載のログ分析装置。
- ログ分析装置と、
監視対象のホストと、
前記ログ分析装置からイベントを受信するユーザ装置と、
を有するログ分析システムであって、
前記ログ分析装置は、
ログメッセージに関するテンプレートを格納するテンプレート格納部と、
前記格納されているテンプレートから、前記監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部と、
を有するログ分析システム。 - ログ分析装置により実現されるログ分析方法であって、
格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するステップと、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するステップと、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するステップと、
を有するログ分析方法。 - 格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するステップと、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するステップと、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/502,936 US10572318B2 (en) | 2014-08-25 | 2015-08-20 | Log analysis apparatus, log analysis system, log analysis method and computer program |
| JP2016545473A JP6190539B2 (ja) | 2014-08-25 | 2015-08-20 | ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム |
| CN201580045079.2A CN106575254B (zh) | 2014-08-25 | 2015-08-20 | 日志分析装置、日志分析系统、日志分析方法及存储介质 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014170097 | 2014-08-25 | ||
| JP2014-170097 | 2014-08-25 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016031681A1 true WO2016031681A1 (ja) | 2016-03-03 |
Family
ID=55399574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2015/073424 Ceased WO2016031681A1 (ja) | 2014-08-25 | 2015-08-20 | ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10572318B2 (ja) |
| JP (1) | JP6190539B2 (ja) |
| CN (1) | CN106575254B (ja) |
| WO (1) | WO2016031681A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018045403A (ja) * | 2016-09-14 | 2018-03-22 | 株式会社日立製作所 | 異常検知システム及び異常検知方法 |
| WO2018066661A1 (ja) * | 2016-10-06 | 2018-04-12 | 日本電気株式会社 | ログ分析方法、システムおよび記録媒体 |
| EP3591532A4 (en) * | 2017-04-03 | 2021-01-27 | Nippon Telegraph And Telephone Corporation | ANALYSIS DEVICE, ANALYSIS METHOD AND ANALYSIS PROGRAM |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109359484A (zh) * | 2018-08-22 | 2019-02-19 | 北京中测安华科技有限公司 | 云平台的安全审计终端日志的处理方法、装置、设备和介质 |
| CN109783459A (zh) * | 2019-01-04 | 2019-05-21 | 平安科技(深圳)有限公司 | 从日志中提取数据的方法、装置及计算机可读存储介质 |
| JP7305588B2 (ja) * | 2020-03-19 | 2023-07-10 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | データ流通制御装置、方法およびプログラム |
| CN113986643B (zh) * | 2020-07-27 | 2025-12-16 | 伊姆西Ip控股有限责任公司 | 分析日志文件的方法、电子设备和计算机程序产品 |
| WO2022254706A1 (ja) * | 2021-06-04 | 2022-12-08 | 日本電信電話株式会社 | データ処理装置、データ処理方法、及びデータ処理プログラム |
| JP7652253B2 (ja) * | 2021-06-11 | 2025-03-27 | 日本電信電話株式会社 | 判定装置、判定方法および判定プログラム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110185234A1 (en) * | 2010-01-28 | 2011-07-28 | Ira Cohen | System event logs |
| JP2014010666A (ja) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | 情報出力装置、方法及びプログラム |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5867136B2 (ja) | 2012-02-14 | 2016-02-24 | Tdk株式会社 | 静電気保護部品 |
| US20130151197A1 (en) * | 2011-11-23 | 2013-06-13 | General Electric Company | Automated performance measurement processes and systems |
| JP5711677B2 (ja) * | 2012-02-21 | 2015-05-07 | 日本電信電話株式会社 | 監視情報分析装置及び方法 |
| JP5798095B2 (ja) * | 2012-08-10 | 2015-10-21 | 日本電信電話株式会社 | ログ生成則作成装置及び方法 |
| JP5948291B2 (ja) | 2013-08-13 | 2016-07-06 | 日本電信電話株式会社 | 監視情報分析装置及び方法 |
| CN103514398B (zh) * | 2013-10-18 | 2016-08-17 | 中国科学院信息工程研究所 | 一种实时在线日志检测方法及系统 |
| US9892121B2 (en) * | 2014-07-15 | 2018-02-13 | Hitachi, Ltd. | Methods and systems to identify and use event patterns of application workflows for data management |
-
2015
- 2015-08-20 JP JP2016545473A patent/JP6190539B2/ja active Active
- 2015-08-20 WO PCT/JP2015/073424 patent/WO2016031681A1/ja not_active Ceased
- 2015-08-20 CN CN201580045079.2A patent/CN106575254B/zh active Active
- 2015-08-20 US US15/502,936 patent/US10572318B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110185234A1 (en) * | 2010-01-28 | 2011-07-28 | Ira Cohen | System event logs |
| JP2014010666A (ja) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | 情報出力装置、方法及びプログラム |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018045403A (ja) * | 2016-09-14 | 2018-03-22 | 株式会社日立製作所 | 異常検知システム及び異常検知方法 |
| WO2018066661A1 (ja) * | 2016-10-06 | 2018-04-12 | 日本電気株式会社 | ログ分析方法、システムおよび記録媒体 |
| JPWO2018066661A1 (ja) * | 2016-10-06 | 2019-07-25 | 日本電気株式会社 | ログ分析方法、システムおよび記録媒体 |
| EP3591532A4 (en) * | 2017-04-03 | 2021-01-27 | Nippon Telegraph And Telephone Corporation | ANALYSIS DEVICE, ANALYSIS METHOD AND ANALYSIS PROGRAM |
| US11398083B2 (en) | 2017-04-03 | 2022-07-26 | Nippon Telegraph And Telephone Corporation | Analysis device, analysis method, and analysis program |
Also Published As
| Publication number | Publication date |
|---|---|
| US20170228265A1 (en) | 2017-08-10 |
| JPWO2016031681A1 (ja) | 2017-04-27 |
| US10572318B2 (en) | 2020-02-25 |
| CN106575254A (zh) | 2017-04-19 |
| JP6190539B2 (ja) | 2017-08-30 |
| CN106575254B (zh) | 2019-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6190539B2 (ja) | ログ分析装置、ログ分析システム、ログ分析方法及びコンピュータプログラム | |
| CN109861844B (zh) | 一种基于日志的云服务问题细粒度智能溯源方法 | |
| Lou et al. | Mining dependency in distributed systems through unstructured logs analysis | |
| CN111930903B (zh) | 基于深度日志序列分析的系统异常检测方法及系统 | |
| US10795753B2 (en) | Log-based computer failure diagnosis | |
| US9612898B2 (en) | Fault analysis apparatus, fault analysis method, and recording medium | |
| CN105812177B (zh) | 一种网络故障处理方法和处理设备 | |
| CN110716868B (zh) | 异常程序行为检测方法、装置 | |
| US20180357214A1 (en) | Log analysis system, log analysis method, and storage medium | |
| JP6473234B2 (ja) | 分析方法、分析装置、および分析プログラム | |
| JP6280862B2 (ja) | イベント分析システムおよび方法 | |
| CN110427298B (zh) | 一种分布式日志的自动特征提取方法 | |
| JP5933463B2 (ja) | ログ生起異常検知装置及び方法 | |
| CN110321142A (zh) | 一种接口文档更新方法、装置、电子设备及存储介质 | |
| US20240241494A1 (en) | Computer-implemented method and surveillance arrangement for identifying manipulations of cyber-physical-systems as well as computer-implemented-tool and cyber-physical-system | |
| CN112988457B (zh) | 一种数据备份方法、装置、系统及计算机设备 | |
| CN113419891B (zh) | 异常信息解决方法、装置、服务器以及介质 | |
| CN118967078B (zh) | Bim与物联网融合的智能建造协同作业平台 | |
| CN111064637B (zh) | NetFlow数据去重方法及装置 | |
| CN120029807A (zh) | 一种基于ai大模型进行故障自动处理方法及装置 | |
| CN119862059A (zh) | 一种分布式系统故障智能化处理方法、装置、计算机可读存储介质及电子设备 | |
| CN116089520B (zh) | 一种基于区块链和大数据的故障识别方法及通用计算节点 | |
| CN116048862A (zh) | 日志异常检测方法及系统 | |
| CN114238507A (zh) | 一种基于多个数据库的数据同步方法及装置 | |
| CN117857457B (zh) | 一种基于边缘计算的物联网流量优化系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15835281 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2016545473 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15835281 Country of ref document: EP Kind code of ref document: A1 |