WO2015072085A1 - ログ分析システム、ログ分析方法、および、記憶媒体 - Google Patents
ログ分析システム、ログ分析方法、および、記憶媒体 Download PDFInfo
- Publication number
- WO2015072085A1 WO2015072085A1 PCT/JP2014/005335 JP2014005335W WO2015072085A1 WO 2015072085 A1 WO2015072085 A1 WO 2015072085A1 JP 2014005335 W JP2014005335 W JP 2014005335W WO 2015072085 A1 WO2015072085 A1 WO 2015072085A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- log
- feature vector
- character string
- message
- log message
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
Definitions
- the present invention relates to a technique for analyzing a log output from an information processing system.
- the operation administrator monitors the occurrence of an abnormality such as a failure and analyzes the cause of the occurrence.
- the operation manager analyzes the log output by the computer system.
- the size (or quantity) of logs output by large-scale and complicated current computer systems is enormous, and the operation manager cannot analyze all of them in detail.
- a classification rule for classifying the log is defined, and messages output by the computer system are classified according to the classification rule.
- operation managers have manually defined classification rules, but it is difficult to manually define exhaustive classification rules for huge logs. Therefore, in recent years, a technique for automatically creating a classification rule for classifying logs has been proposed.
- Patent Document 1 determines whether a message output from a distributed system is a message indicating that the distributed system is operating normally or a message indicating that an abnormality has occurred in the distributed system.
- An example of the technology to do is disclosed.
- a message indicating normal operation is referred to as a “normal message”.
- a message indicating that an abnormality has occurred is referred to as an “abnormal message”.
- Patent Document 1 collects a log output by the distributed system when the distributed system has been normally operated in the past, and extracts a characteristic pattern from the log.
- the technique disclosed in Patent Document 1 focuses on a combination of consecutive messages and extracts the characteristic pattern.
- the technology disclosed in Patent Document 1 determines whether or not a determination target message is a normal message by comparing a characteristic pattern and a determination target message.
- Patent Document 2 discloses an example of a technique for determining whether or not the communication is malicious communication based on the address of the terminal that generated the communication.
- the technique disclosed in Patent Document 2 learns a structure characteristic of the address of a terminal that has caused malicious communication in the past by applying machine learning.
- Patent Document 2 determines whether or not the communication is malicious communication by comparing the address of the terminal that generated the communication to be determined with the learning result by machine learning.
- Patent Document 2 further discloses that a characteristic structure of the address of a terminal that generates malicious communication is learned using all or part of a bit string constituting the address.
- Patent Document 1 determines whether a message to be analyzed is normal or abnormal by paying attention to a combination of consecutive messages.
- the technique disclosed in Patent Literature 2 determines whether an address to be analyzed is normal or abnormal by paying attention to a bit string constituting the address.
- the log element is, for example, a log message, a time when the log message is output, a log ID (identifier), a log level, a message body, or a part of the message body.
- the assumed situation is that "the difference between a normal log message and an abnormal log message appears in some of the log elements constituting the log message".
- Patent Document 2 discloses a technique for learning a characteristic structure of an address of a terminal that generates malicious communication using a part of a bit string constituting the address. However, Patent Document 2 does not disclose a reference for selecting which part of a bit string constituting an address to be focused on.
- an object of the present invention is to appropriately classify log messages when analyzing the log messages.
- a feature vector corresponding to a log message of interest in a set of log messages output from an analysis target system is calculated according to whether or not the log message includes a predetermined character string.
- Feature vector calculation means, and log analysis means for analyzing the log message corresponding to the feature vector based on the feature vector, wherein the feature vector calculation unit converts the predetermined character string into the log The log analysis system selects a plurality of character strings included in a set of messages according to the frequency of appearance of the character strings in the set of log messages.
- the computer determines whether the log message to be noticed from the set of log messages output from the analysis target system includes the predetermined character string.
- a corresponding feature vector is calculated, and based on the feature vector, the log message corresponding to the feature vector is analyzed, and a plurality of character strings included in the set of log messages are included in the set of log messages.
- the predetermined character string is selected according to the frequency of appearance of the character string.
- the log message to be noticed is determined based on whether or not the noticed log message in the set of log messages output from the analysis target system includes a predetermined character string.
- a process of selecting the predetermined character string according to the frequency of appearance of the character string in a set of messages is selected.
- the object of the present invention is also achieved by a computer-readable recording medium storing the above program.
- log messages can be appropriately classified when analyzing the log messages.
- FIG. 1 is a block diagram showing a configuration of a log analysis system 100 according to the first exemplary embodiment of the present invention.
- the log analysis system 100 analyzes the log file 910 output from the analysis target system 900.
- the log analysis system 100 includes a log collection unit 110, a feature vector calculation unit 120, a classification index calculation unit 130, a log analysis unit 140, an output unit 150, a conversion definition storage unit 210, The vector definition information storage unit 220 and the classification definition information storage unit 230 are provided.
- the log collection unit 110 collects the log file 910.
- the log collection unit 110 may receive the log file 910 from the analysis target system 900.
- the log collection unit 110 may read the log file 910 from a storage unit (not shown).
- the log collection unit 110 may accept an input of the log file 910 from the operation manager.
- the log collection unit 110 may accept specification of a range of logs to be collected from the operation manager, such as specification of a log file 910 to be collected or specification of date and time. Alternatively, the log collection unit 110 reads a file (not shown) that defines information necessary for analyzing the log message, and converts the format of the acquired log file 910 into a format that can be easily analyzed by the log analysis system 100 according to the information defined by the file. May be.
- Feature vector calculation unit 120 determines vector definition information based on log file 910 and information read from conversion definition storage unit 210.
- the vector definition information is information that defines a method for calculating a feature vector that represents a feature of the log message based on the log message.
- the feature vector calculation unit 120 stores the vector definition information in the vector definition information storage unit 220.
- the feature vector calculation unit 120 calculates a feature vector corresponding to the log message for each of a plurality of log messages constituting the log file 910 based on the vector definition information. Details of the feature vector calculation unit 120 will be described later.
- the classification index calculation unit 130 creates classification definition information for classifying log messages based on the feature vector calculated by the feature vector calculation unit 120.
- the classification index calculation unit 130 stores the classification definition information in the classification definition information storage unit 230. Details of the classification index calculation unit 130 will be described later.
- the log analysis unit 140 reads out the category definition information from the category definition information storage unit 230.
- the log analysis unit 140 analyzes the log message corresponding to the feature vector based on the classification definition information and the feature vector calculated by the feature vector calculation unit 120.
- the log analysis unit 140 classifies the log message into one of a plurality of sets defined by the classification definition information. Alternatively, the log analysis unit 140 determines whether the log message is a normal log message or an abnormal log message. Details of the log analysis unit 140 will be described later.
- the output unit 150 outputs the result analyzed by the log analysis unit 140. For example, when it is determined that the log message to be analyzed belongs to a known set, the output unit 150 outputs the log message and the set in association with each other. For example, when it is determined that the log message to be analyzed does not belong to any set defined by the classification definition information, the output unit 150 outputs the log message as an abnormal log message.
- the conversion definition storage unit 210 stores a conversion threshold definition and a conversion index definition.
- the conversion threshold definition and the conversion index definition are information that serves as a reference when the feature vector calculation unit 120 determines vector definition information.
- the vector definition information storage unit 220 stores the vector definition information determined by the feature vector calculation unit 120.
- the classification definition information storage unit 230 stores the classification definition information created by the classification index calculation unit 130.
- the analysis target system 900 is an information processing system that is an operation management target.
- the analysis target system 900 outputs a log file 910 that is a file in which the usage status, performance information, or data communication transmission / reception status of the analysis target system 900 is recorded.
- the analysis target system 900 is not limited to a computer system, and may be, for example, a chemical plant or a power plant.
- the log file 910 is composed of a plurality of log messages.
- a log file is a collection of log messages.
- Log messages are also called log records.
- a log message includes a plurality of log elements such as the time when the log message is output, a log ID, a message body, or a log level.
- FIG. 2 is a diagram for explaining an example of the log file 910.
- the log message is information corresponding to the “line” shown in FIG.
- FIG. 2 shows three log messages. That is, “130201 09:04:01 mysqld started”, “130201 09:04:01 InnoDB: started;”, “130201 09:04:01 [note] user / libexec / mysqld:”, These three log messages are shown in FIG.
- FIG. 3 is a block diagram illustrating the configuration of the feature vector calculation unit 120 illustrated in FIG. 1 in more detail.
- the feature vector calculation unit 120 includes a character string extraction unit 121, a character string totaling unit 122, a base vector definition unit 123, a weight definition unit 124, and a calculation unit 125.
- the character string extraction unit 121 extracts a character string constituting the log message for each of a plurality of log messages constituting the log file 910.
- a log message includes a plurality of log elements such as the time when the log message is output, a log ID, a message body, or a log level.
- the log analysis system 100 handles each log element constituting a log message as a character string or a set of character strings.
- character string is defined.
- the “character string” in the present embodiment represents a combination of specific plural characters having meaning among combinations of characters constituting the log message.
- the “character string” in the present embodiment is, for example, a “word”.
- the “character string” in the present embodiment is, for example, “minimum language unit having grammatical meaning or function”.
- the “character string” in the present embodiment may be a phrase or a sentence.
- the “character string” in the embodiment may be a character string representing a date, time, IP (Internet Protocol) address, or the like.
- the “character string” in the embodiment may be “a combination of a word and a symbol such as a parenthesis”.
- the definition of the term “character string” is the same in other embodiments.
- the character string extraction unit 121 may extract the character strings constituting each log message by separating them with these symbols.
- the character string extraction unit 121 may represent the extracted character string with a regular expression.
- character string extraction unit 121 Details of the character string extraction unit 121 will be described using a specific example. For example, when character strings are extracted from the three log messages shown in FIG. 2, the following character strings are extracted. It should be noted that the specific examples shown here are only for facilitating the understanding of the invention, and are not intended to limit the operation of the character string extraction unit 121.
- the character string extraction unit 121 does not necessarily need to extract character strings from all log elements constituting the log message.
- the character string extraction unit 121 may extract a character string only from a message body that constitutes a log message.
- the character string totaling unit 122, the base vector defining unit 123, and the weight defining unit 124 are based on the character string extracted by the character string extracting unit, and the conversion threshold definition and conversion index definition read from the conversion definition storage unit 210. Determine vector definition information.
- the weight definition unit 124 stores the vector definition information in the vector definition information storage unit 220. Details of the character string totaling unit 122, the basis vector defining unit 123, and the weight defining unit 124 will be described later.
- the calculation unit 125 reads the vector definition information from the vector definition information storage unit 220, and calculates a feature vector corresponding to the log message based on the read vector definition information and the log message. The calculation unit 125 calculates a feature vector corresponding to the log message according to whether or not a predetermined character string is included in the log message.
- FIG. 7 is a diagram illustrating an example of vector definition information stored in the vector definition information storage unit 220.
- the vector definition information includes “information defining a base vector of a feature vector” and “information defining a weight of a character string defined as a base vector”.
- information represented in a column indicating “element” and a column indicating “character string” corresponds to “information defining a base vector of a feature vector”.
- the information represented in the column indicating “weight” corresponds to “information defining the weight of the character string defined as the base vector”.
- the vector definition information shown in FIG. 7 defines ten elements from element 1 to element 10. That is, the vector definition information shown in FIG. 7 defines that the dimension number (number of elements) of the feature vector is 10 dimensions.
- the value representing the first element of the feature vector is determined depending on whether or not the character string “mysqld” is included in the log message corresponding to the feature vector. Indicates.
- the value representing the second element of the feature vector is determined depending on whether or not the character string “innoDB” is included in the log message corresponding to the feature vector.
- the vector definition information includes information defining which character string is used to determine a value representing a specific element of the feature vector.
- the vector definition information shown in FIG. 7 includes a value representing an element corresponding to “innoDB” in the feature vector, the number of times the character string “innoDB” appears in the log message corresponding to the feature vector, and 1 / Indicates that it is determined by the product of the value 59.
- the calculation unit 125 determines whether or not a character string defined by the vector definition information is included in the log message. When the character string is included in the log message, the calculation unit 125 calculates a value representing an element corresponding to the character string in the feature vector according to the weight value defined by the vector definition information. decide. Note that, when the character string defined by the vector definition unit does not appear in the log message, the calculation unit 125 sets the value representing the element corresponding to the character string to 0.
- FIG. 8 is a diagram illustrating information in which the feature vector calculated by the calculation unit 125 is associated with the log message corresponding to the feature vector.
- Example 3 Assume that a feature vector corresponding to the log message is calculated from the log message “130201 09:04:01 [note] user / libexec / mysqld”. Among a plurality of character strings included in the log message, character strings defined as elements of the base vector are “mysqld” and “libexec”. Therefore, the feature vector is “(1/67, 0,..., 0, 1/28, 0,..., 0,)”.
- the character string extracting unit 121, the character string totaling unit 122, the base vector defining unit 123, the weight defining unit 124, and the calculating unit 125 may be collectively referred to as the feature vector calculating unit 120.
- FIG. 11 is a flowchart for explaining the operation (steps S101 to S107) in which the log analysis system 100 determines vector definition information.
- the log collection unit 110 acquires the log file 910 output from the analysis target system 900.
- the log collection unit 110 acquires a normal log file 911 that is a log file 910 during a period in which the analysis target system 900 has been normally operated (step S101).
- the character string extraction unit 121 extracts a character string from a set of log messages constituting the acquired normal log file 911 (step S102).
- the character string totaling unit 122 totals the number of times the character string has appeared in the set of log messages for each character string extracted by the character string extracting unit 121 (step S103).
- FIG. 4 is a diagram illustrating an example of information totaled by the character string totaling unit 122.
- the information illustrated in FIG. 4 is information that associates a character string with the number of times the character string has appeared.
- the base vector defining unit 123 selects a character string that defines the base vector of the feature vector from among the plurality of character strings aggregated by the character string aggregating unit 122 (step S104).
- the base vector definition unit 123 selects whether or not to select the character strings aggregated by the character string aggregation unit 122 as a character string that defines the basis vector of the feature vector according to the frequency of appearance of the character string in the set of log messages. To decide.
- the operation of the basis vector definition unit 123 shown in step S104 will be described using a specific example.
- the base vector definition unit 123 reads the conversion threshold definition from the conversion definition storage unit 210.
- FIG. 5 is a diagram illustrating an example of the conversion threshold definition read from the conversion definition storage unit 210.
- a criterion for selecting a character string that defines a basis vector and a specific threshold value are defined.
- the determination criterion is “character string appearance frequency”, and the threshold is “0.1N ⁇ Ci ⁇ 0.6N”.
- N is a value representing the total number of log messages to be counted.
- Ci is a value representing the number of times the character string appears in a certain log message.
- ⁇ Ci is a value representing the total number of times that the character string appears in the log message to be counted.
- the threshold of “0.1N ⁇ Ci ⁇ 0.6N” described above defines a base vector for a character string that appears more than 20 times and less than 120 times when 200 log messages are targeted for aggregation. Indicates selection as a string.
- the specific value of the threshold defined by the conversion threshold definition may be a fixed value in advance, or is dynamically set according to the number of log records included in the log file 910 collected by the log collection unit 110. May be.
- an operation manager (not shown) may define it.
- the base vector defining unit 123 uniquely identifies the order of a plurality of character strings selected as character strings defining the base vector (step S105). Any method may be used to specify the order.
- the base vector definition unit 123 specifies the order of the character strings by, for example, a method such as an order of appearance frequency or a dictionary order.
- the weight definition unit 124 defines a weight for each character string selected by the base vector definition unit 123 (step S106).
- the operation of the weight definition unit 124 shown in step S106 will be described using a specific example.
- the weight definition unit 124 reads the conversion index definition from the conversion definition storage unit 210.
- FIG. 6 is a diagram illustrating an example of the conversion index definition read from the conversion definition storage unit 210.
- the conversion index definition defines a calculation method for determining the weight.
- the conversion index definition illustrated in FIG. 6 represents that “the product of the reciprocal of the sum of the appearance frequencies of character strings and the coefficient” is defined as a weight.
- the coefficient ⁇ is 1, when the weight of each character string is defined based on the information shown in FIG. 4, the weight of each character string is as shown in FIG.
- the coefficient ⁇ defined by the conversion index definition may be defined such that the sum of the weights of the elements of the basis vector is 1, for example.
- the weight definition unit 124 selects the character string defining the base vector and the order of the character string selected by the base vector definition unit 123 and the weight defined by the weight definition unit 124 as vector definition information as a vector definition information storage unit. 220 (step S107).
- FIG. 7 is a diagram illustrating an example of vector definition information determined by the base vector definition unit 123 and the weight definition unit 124.
- FIG. 12 is a flowchart for explaining the operation (steps S108 to S113) in which the log analysis system 100 creates classification definition information.
- the calculation unit 125 reads the vector definition information from the vector definition information storage unit 220 (step S108).
- the calculation unit 125 calculates a feature vector corresponding to the log message based on the read vector definition information and each log message constituting the normal log file 911 (step S109).
- the calculating unit 125 outputs information in which the log message is associated with the feature vector corresponding to the log message (step S110).
- FIG. 8 is a diagram illustrating an example of information in which a log message is associated with a feature vector corresponding to the log message.
- the classification index calculation unit 130 clusters log messages into a plurality of sets based on feature vectors corresponding to the log messages. As a result of clustering, the classification index calculation unit 130 outputs information in which an identifier for identifying a set is associated with an identifier for identifying a log message included in the set (step S111).
- FIG. 9 is a diagram illustrating information output by the classification index calculation unit 130 in the operation shown in step S111.
- the operation of the classification index calculation unit 130 shown in step S111 will be described using a specific example.
- the classification index calculation unit 130 calculates the distance between the feature vectors based on the feature vector calculated by the calculation unit 125. Based on the calculated distance, the classification index calculation unit 130 clusters log messages corresponding to the feature vectors, and defines a plurality of sets.
- distance between feature vectors for example, Euclidean square distance, Minkowski distance, Mahalanobis general distance, or the like can be used.
- Known methods for clustering using distance include the Ward method, K-average method, shortest distance method, longest distance method, group average method, and the like.
- the classification index calculation unit 130 calculates a classification index corresponding to the set for each set (step S112).
- the classification index is an index that represents each set.
- the classification index is a value or vector that can be calculated using feature vectors belonging to each set.
- the classification information is an average vector of one or more feature vectors belonging to a certain set.
- the average vector is a specific example of the classification index. Other specific examples of the classification index will be described later.
- the classification index calculation unit 130 creates classification definition information by associating the set ID with the average vector corresponding to the set.
- the classification index calculation unit 130 stores the created classification definition information in the classification definition information storage unit 230 (step S113).
- FIG. 10 is a diagram illustrating an example of the classification definition information created by the classification index calculation unit 130.
- the information shown in FIG. 10 indicates, for example, that the average vector corresponding to the set ID 1 is (1/67, 0,..., 0).
- vector definition information and the classification definition information are not necessarily created from the normal log file 911.
- vector definition information and classification definition information may be created from a set of abnormal log messages.
- FIG. 13 is a flowchart for explaining the operation of the log analysis system 100 analyzing the log message.
- the log collection unit 110 acquires the log file 910 output from the analysis target system 900.
- the log collection unit 110 acquires the analysis target log file 912, which is the analysis target log file 910 (step S201).
- Feature vector calculation unit 120 reads vector definition information from vector definition information storage unit 220 (step S202).
- the feature vector calculation unit 120 calculates a feature vector corresponding to the log message based on the vector definition information and the log message constituting the analysis target log file 912 (step S203).
- the character string included in the log message to be analyzed may not be included in the elements defined in the vector definition information.
- the feature vector calculation unit 120 adds the corresponding word to the end of the element defined by the vector definition information (that is, the element 11 is added in the example shown in FIG. 7).
- the vector definition information may be extended. In that case, the feature vector calculation unit 120 increases the dimension of the vector by the number of corresponding words, and sets the value to zero.
- the log analysis unit 140 reads out the category definition information from the category definition information storage unit 230 (step S204).
- the log analysis unit 140 Based on the classification definition information and the feature vector calculated by the feature vector calculation unit 120, the log analysis unit 140 selects one of a plurality of sets in which the classification definition information defines a log message corresponding to the feature vector. Into a set of Alternatively, the log analysis unit 140 classifies the log message as an abnormal log message that does not belong to any set defined by the classification definition information (step S205).
- the log analysis unit 140 calculates the distance between the average vector defined by the classification definition information and the feature vector corresponding to the log message to be analyzed, and classifies the log message to be analyzed based on the distance. This will be described in detail using the following two specific examples.
- the log analysis unit 140 compares the feature vector with each average vector defined by the classification definition information.
- the log analysis unit 140 calculates the distance between the feature vector to be analyzed and the average vector. For example, the distance between the above-described feature vector and the average vector defined by the classification definition information shown in FIG. 10 is calculated as follows. 0 for set ID 1; (1/67) * (1/67) + (1/59) * (1/59) + (1/128) * (1/128) for set ID 2 For the set ID 3, (1/28) * (1/28) + (1/264) * (1/264). Therefore, the nearest set ID is 1.
- the symbol “*” represents multiplication.
- the symbol “/” represents division.
- the meanings represented by these symbols are the same in the present application.
- the log analysis unit 140 compares the calculated distance with a separately defined threshold value, and determines that the log record to be analyzed is included in the corresponding set if the calculated distance is equal to or less than the threshold value. In the case of the above example, if the threshold is (1/25) * (1/25), the distance is 0, so that the log analysis unit 140 includes the analysis target log record in the set of set ID1. judge.
- the log analysis unit 140 calculates the distance between the feature vector and each average vector defined by the classification definition information. As a result, the log analysis unit 140 calculates that the average vector closest to the feature vector is the average vector corresponding to the set ID1, and the distance is (1/20) * (1/20). The log analysis unit 140 further compares the calculated distance with a threshold value. Since the distance ((1/20) * (1/20))> threshold ((1/25) * (1/25)), the log analysis unit 140 sets the log records to be analyzed to any set. It is determined that the log record is not an abnormal log record.
- the output unit 150 outputs information indicating the result of the log analysis unit 140 classifying the log messages to be analyzed (step S206).
- the output unit 150 presents the information output from the log analysis unit 140 to the operation manager by, for example, displaying the information on a display or outputting the information as a form with a printer.
- the output unit 150 may output the classification definition information.
- FIG. 14 is a block diagram illustrating an example of a hardware configuration of the log analysis system 100 according to the first embodiment.
- the hardware constituting the log analysis system 100 includes a CPU (Central Processing Unit) 1, a memory 2, a storage device 3, and a communication interface (I / F) 4.
- the log analysis system 100 may include the input device 5 or the output device 6.
- the functions of the log analysis system 100 are realized, for example, by the CPU 1 executing a computer program (software program, hereinafter simply referred to as “program”) read into the memory 2. In execution, the CPU 1 appropriately controls the communication interface 4, the input device 5, and the output device 6.
- program software program
- the present invention which will be described by taking this embodiment and each embodiment described later as an example, is also configured by a nonvolatile storage medium 8 such as a compact disk in which the program is stored.
- the program stored in the storage medium 8 is read by the drive device 7, for example.
- the communication executed by the log analysis system 100 is realized by the application program controlling the communication interface 4 using a function provided by an OS (Operating System), for example.
- the input device 5 is, for example, a keyboard, a mouse, or a touch panel.
- the output device 6 is a display, for example.
- the log analysis system 100 may be configured by connecting two or more physically separated devices in a wired or wireless manner.
- the hardware configuration example shown in FIG. 14 is also applicable to each embodiment described later.
- the log analysis system 100 may be a dedicated device. Note that the hardware configuration of the log analysis system 100 and each functional block thereof is not limited to the above-described configuration.
- the log analysis system 100 can appropriately classify log messages when analyzing the log messages.
- the first reason is that the log analysis system 100 calculates a feature vector corresponding to the log message according to whether or not the log message includes a predetermined character string, and based on the feature vector, This is because the log message corresponding to the feature vector is analyzed.
- the second reason is that the character string used when analyzing the log message is selected according to the frequency of appearance in the set of log messages output from the analysis target system.
- the analysis target system 900 When the analysis target system 900 is normally operated, it is considered that the analysis target system 900 repeatedly outputs the same log message, and thus the frequency of appearance of the character strings constituting the log message is high. Such a character string having a high appearance frequency is useful information for clustering or grouping similar log messages.
- the analysis target system 900 when an abnormality occurs in the analysis target system 900, it is considered that the analysis target system 900 outputs a log message different from that in the normal state. In this case, it is considered that the log message includes a character string that does not appear in a normal log message.
- analysis target system 900 outputs the following two log messages.
- the character strings such as [REMOTEHOST], [TAT], and [USER_ID] that are common to the above log messages 1 and 2 are character strings having a high appearance frequency (in other words, character strings fixed in the log message). Such a character string is an unnecessary character string for classifying log message 1 and log message 2 as different log messages.
- Character strings that cause a difference between normal log messages and abnormal log messages are, for example, character strings that do not appear in normal log messages, character strings that appear only in specific log messages, and characters that change in log messages Is a column.
- the log analysis system 100 selects a character string used when analyzing a log message according to the frequency of appearance in a set of log messages output from the analysis target system. With this configuration, the log analysis system 100 can analyze a log message by paying attention to a character string that generates a difference between a normal log message and an abnormal log message. Thereby, the log analysis system 100 can appropriately classify log messages.
- the log analysis system 100 not only classifies log messages from the viewpoint of whether they are normal log messages or abnormal log messages, but also classifies log messages into one of a plurality of predefined groups. it can.
- FIG. 15 is a block diagram illustrating a configuration of a log analysis system 100A according to the second embodiment.
- the log analysis system 100A according to the second embodiment includes a process execution unit 160 instead of the output unit 150 included in the log analysis system 100 according to the first embodiment.
- the log analysis system 100A according to the second embodiment includes a process definition information storage unit 240. Components substantially the same as those shown in FIG. 1 are given the same reference numerals, and descriptions thereof are omitted.
- the process definition information storage unit 240 stores process definition information.
- the process definition information is information that defines a process to be executed by the process execution unit 160 based on a result analyzed by the log analysis unit 140.
- FIG. 16 is a diagram illustrating an example of the process definition information stored in the process definition information storage unit 240.
- the process definition information is composed of a set of a condition and an action.
- the condition defines a condition for executing the corresponding action.
- the action defines an operation to be executed by the process execution unit 160 when a corresponding condition is satisfied.
- process definition information may be described using regular expressions. Further, the action constituting the process definition information may be a mechanically executable script or command.
- the process execution unit 160 executes the process defined by the process definition information in accordance with the result analyzed by the log analysis unit 140.
- FIG. 17 is a flowchart for explaining the operation of the log analysis system 100A analyzing the log message.
- the operation from step S201 to S205 shown in FIG. 17 is the same as the operation from step S201 to S205 shown in FIG.
- the process execution unit 160 executes the process defined by the process definition information in accordance with the result of the log analysis unit 140 classifying the log message to be analyzed (step S301).
- the log analysis system 100A according to the second embodiment can automatically execute an appropriate process according to the result analyzed by the log analysis unit 140. This is because the log analysis system 100A includes the process execution unit 160.
- FIG. 18 is a block diagram illustrating the configuration of a log analysis system 100B according to the third embodiment. As illustrated in FIG. 18, the log analysis system 100B includes a feature vector calculation unit 120B and a log analysis unit 140B.
- the feature vector calculation unit 120B calculates a feature vector corresponding to the log message according to whether or not the log message of interest in the set of log messages output from the analysis target system includes a predetermined character string. calculate.
- the predetermined character string is a character string selected from a plurality of character strings included in the set of log messages according to the frequency of appearance of the character string in the set of log messages.
- the log analysis unit 140B analyzes the log message corresponding to the feature vector based on the feature vector.
- the log analysis system 100B according to the third embodiment can appropriately classify log messages.
- a classification index is an average value, mode, median, or variance of a set of feature vectors belonging to a set, or the number of feature vectors belonging to a set, such as the number of feature vectors belonging to a set. There may be.
- the classification index calculation unit 130 may calculate a representative vector representing one or a plurality of feature vectors belonging to a certain set, and use the representative vector as a classification index.
- the value representing each element of the representative vector is, for example, a representative value of values representing each element of the plurality of feature vectors belonging to the set (that is, an average value, a mode value, a median value, a variance value, or the like).
- the log analysis unit 140 does not necessarily classify log messages based on the distance. For example, when the log analysis unit 140 adds a feature vector corresponding to a log message to a set, a criterion for determining a change amount of a statistic that expresses the feature of the set such as a variance or an average vector, or an amount that can be calculated by a combination thereof It may be used as
- each block diagram is a configuration shown for convenience of explanation.
- the present invention described by taking each embodiment as an example is not limited to the configuration shown in each block diagram in the implementation.
- a plurality of operations are described in order, but the order of the plurality of operations can be changed within a range that does not hinder.
- the plurality of operations are not always executed at different timings. For example, another operation may occur during execution of a certain operation, or the execution timing of a certain operation and another operation may partially or entirely overlap.
- the present invention can be applied to a technique for operating and managing an information processing system and a physical plant.
- the present invention has been described above using the above-described embodiment as an exemplary example.
- the present invention is not limited to the above-described embodiment. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.
- This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2013-233594 for which it applied on November 12, 2013, and takes in those the indications of all here.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
Abstract
ログメッセージを分析する際に、ログメッセージを適切に分類する。 ログ分析システムは、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて、算出する特徴ベクトル算出手段と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備える。
Description
本発明は、情報処理システムが出力するログを分析する技術に関する。
コンピュータシステムの運用管理において、運用管理者は、障害などの異常の発生を監視し、その異常が発生した原因を分析する。そのために運用管理者は、当該コンピュータシステムが出力したログを分析する。しかし、大規模化かつ複雑化した現在のコンピュータシステムが出力するログのサイズ(または数量)は膨大であり、運用管理者はその全てを詳細に分析することはできない。
そこで、ログを分類するための分類ルールを定義し、コンピュータシステムにより出力されたメッセージを分類ルールに従って分類することが行われる。長年に亘って運用管理者が人手で分類ルールを定義していたが、膨大なサイズのログに対して網羅的な分類ルールを人手で定義することは困難である。そこで、近年においては、ログを分類するための分類ルールを自動的に作成する技術が提案されている。
特許文献1は、分散システムが出力するメッセージが、当該分散システムが正常に運用されていることを示すメッセージであるのか、それとも当該分散システムに異常が発生したことを示すメッセージであるのかを、判定する技術の一例を開示する。以下、正常に運用されていることを示すメッセージを「正常なメッセージ」と記載する。また、異常が発生したことを示すメッセージを「異常なメッセージ」と記載する。
特許文献1が開示する技術は、過去に分散システムが正常に運用されていた際に当該分散システムが出力したログを収集し、当該ログから特徴的なパターンを抽出する。特許文献1が開示する技術は、連続するメッセージの組み合わせに着目して、当該特徴的なパターンを抽出する。特許文献1が開示する技術は、特徴的なパターンと、判定の対象となるメッセージと、を比較することにより、判定対象のメッセージが正常なメッセージであるのか否かを判定する。
特許文献2は、通信を発生させた端末のアドレスに基づいて、当該通信が悪意のある通信か否かを判定するための技術の一例を開示する。特許文献2が開示する技術は、過去に悪意のある通信を発生させた端末のアドレスに特徴的な構造を、機械学習を適用して学習する。
特許文献2が開示する技術は、判定対象である通信を発生させた端末のアドレスと、機械学習による学習結果と、を比較することにより、当該通信が悪意のある通信か否かを判定する。特許文献2はさらに、アドレスを構成するビット列の全部または一部を用いて、悪意のある通信を発生させる端末のアドレスに特徴的な構造を学習することを開示する。
特許文献1が開示する技術は、連続するメッセージの組み合わせに着目して、分析対象のメッセージが正常であるのか異常であるのかを判定する。特許文献2が開示する技術は、アドレスを構成するビット列に着目して、分析対象のアドレスが正常であるのか異常であるのかを判定する。ログメッセージを分類する場合において、ログメッセージを構成する複数のログ要素のうち、どのログ要素に着目してログメッセージを分類するか、ということは、ログメッセージを適切に分類するために重要である。
ここで、ログ要素とは、例えば、ログメッセージを構成する、当該ログメッセージが出力された時刻、ログID(識別子)、ログレベル、メッセージ本文、または、メッセージ本文の一部分などである。
ここで、以下の状況を仮定して、下記2つの具体例についてそれぞれ検討する。仮定する状況は、「正常なログメッセージと異常なログメッセージとの差異は、ログメッセージを構成する複数のログ要素のうち一部のログ要素に現れる」という状況である。
(具体例1)例えば、ログメッセージを構成する複数のログ要素のうち全てのログ要素に着目して、ログメッセージを分類することを考える。この場合、特許文献1が開示する技術は、正常なログメッセージと異常なログメッセージとの差異が現れないログ要素にまで着目してログメッセージを分類するため、ログメッセージを適切に分類することは難しい。
(具体例2)例えば、ログメッセージを構成する複数のログ要素のうち一部のログ要素に着目して、ログメッセージを分類することを考える。この場合、この場合、どのログ要素に着目してログメッセージを分類するかに応じて、ログメッセージが適切に分類されるか否かが変わってくる。不適切なログ要素に着目してログメッセージを分類してしまうと、ログメッセージを適切に分類することはできない。
特許文献2は、アドレスを構成するビット列の一部を用いて悪意のある通信を発生させる端末のアドレスに特徴的な構造を学習する技術を開示する。しかし特許文献2は、アドレスを構成するビット列のどの部分に着目すべきかを選択する基準までは開示していない。
上述した課題を解決するため、本発明は、ログメッセージを分析する際に、ログメッセージを適切に分類することを目的とする。
本発明の第1の側面は、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて算出する特徴ベクトル算出手段と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備え、前記特徴ベクトル算出部は、前記所定の文字列を、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択する、ログ分析システムである。
本発明の第2の側面は、コンピュータが、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出し、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析し、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する、ログ分析方法である。
本発明の第3の側面は、コンピュータに、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出する処理と、前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する処理と、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する処理と、を実行させるプログラムである。
また、本発明の目的は、上記のプログラムが格納されたコンピュータ読み取り可能な記録媒体によっても達成される。
本発明によれば、ログメッセージを分析する際に、ログメッセージを適切に分類することができる。
以下、本発明の実施形態を、図面を参照して詳細に説明する。
<第1の実施形態>
[構成の説明]
図1は、本発明の第1の実施形態にかかるログ分析システム100の構成を示すブロック図である。ログ分析システム100は、分析対象システム900が出力するログファイル910を分析する。
<第1の実施形態>
[構成の説明]
図1は、本発明の第1の実施形態にかかるログ分析システム100の構成を示すブロック図である。ログ分析システム100は、分析対象システム900が出力するログファイル910を分析する。
図1に示すように、ログ分析システム100は、ログ収集部110と、特徴ベクトル算出部120と、分類指標算出部130と、ログ分析部140と、出力部150と、変換定義記憶部210と、ベクトル定義情報記憶部220と、分類定義情報記憶部230と、を備える。
ログ収集部110は、ログファイル910を収集する。ログ収集部110は、分析対象システム900からログファイル910を受信してもよい。または、ログ収集部110は、図示しない記憶部からログファイル910を読み出してもよい。あるいは、ログ収集部110は、運用管理者からログファイル910の入力を受け付けてもよい。
ログ収集部110は、例えば、収集対象とするログファイル910の指定または日時の指定など、収集するログの範囲の指定を運用管理者から受け付けてもよい。あるいはログ収集部110は、ログメッセージの分析に必要な情報を定義した図示しないファイルを読み込み、ファイルが定義する情報に従って、取得したログファイル910の形式をログ分析システム100が分析しやすい形式に変換してもよい。
特徴ベクトル算出部120は、ログファイル910と、変換定義記憶部210から読み出した情報と、に基づいて、ベクトル定義情報を決定する。ベクトル定義情報は、ログメッセージに基づいて当該ログメッセージの特徴を表す特徴ベクトルを算出する方法を定義する情報である。特徴ベクトル算出部120はベクトル定義情報をベクトル定義情報記憶部220に記憶する。
また、特徴ベクトル算出部120は、ベクトル定義情報に基づいて、ログファイル910を構成する複数のログメッセージのそれぞれに対して、当該ログメッセージに対応する特徴ベクトルを算出する。特徴ベクトル算出部120の詳細は後述する。
分類指標算出部130は、特徴ベクトル算出部120が算出した特徴ベクトルに基づいて、ログメッセージを分類するための分類定義情報を作成する。分類指標算出部130は、分類定義情報を分類定義情報記憶部230に記憶する。分類指標算出部130の詳細は後述する。
ログ分析部140は、分類定義情報記憶部230から分類定義情報を読み出す。ログ分析部140は、分類定義情報と、特徴ベクトル算出部120が算出した特徴ベクトルとに基づいて、当該特徴ベクトルに対応するログメッセージを分析する。ログ分析部140は、ログメッセージを、分類定義情報が定義する複数の集合のうちいずれかの集合に分類する。あるいはログ分析部140は、当該ログメッセージを正常なログメッセージであるのか異常なログメッセージであるのか判定する。ログ分析部140の詳細は後述する。
出力部150は、ログ分析部140が分析した結果を出力する。例えば、分析対象のログメッセージが既知の集合に属すると判定された場合、出力部150は、当該ログメッセージと当該集合とを関連付けて出力する。例えば、分類定義情報が定義するいずれの集合にも分析対象のログメッセージが属さないと判定された場合、出力部150は、当該ログメッセージを異常なログメッセージとして出力する。
変換定義記憶部210は、変換閾値定義と、変換指標定義とを記憶する。変換閾値定義および変換指標定義は、特徴ベクトル算出部120がベクトル定義情報を決定する際の基準となる情報である。
ベクトル定義情報記憶部220は、特徴ベクトル算出部120が決定したベクトル定義情報を記憶する。
分類定義情報記憶部230は、分類指標算出部130が作成した分類定義情報を記憶する。
分析対象システム900は、運用管理の対象である情報処理システムである。分析対象システム900は、分析対象システム900の利用状況、性能情報、または、データ通信の送受信状況などを記録したファイルであるログファイル910を出力する。分析対象システム900は、コンピュータシステムには限られず、例えば化学プラントまたは発電所等であってもよい。
ログファイル910は、複数のログメッセージから構成される。言い換えると、ログファイルは複数のログメッセージの集合である。ログメッセージは、ログレコードとも呼ばれる。ログメッセージは、当該ログメッセージが出力された時刻、ログID、メッセージ本文、または、ログレベルなど、複数のログ要素により構成される。
図2は、ログファイル910の一例を説明する図である。ログメッセージは、図2に示した「行」に相当する情報である。例えば図2には、3つのログメッセージが示されている。すなわち、
“130201 09:04:01 mysqld started”、
“130201 09:04:01 InnoDB : started;”、
“130201 09:04:01 [note] user/libexec/mysqld:”、
という3つのログメッセージが図2に示されている。
“130201 09:04:01 mysqld started”、
“130201 09:04:01 InnoDB : started;”、
“130201 09:04:01 [note] user/libexec/mysqld:”、
という3つのログメッセージが図2に示されている。
図3は、図1に示した特徴ベクトル算出部120の構成を更に詳細に説明したブロック図である。
図3に示すように、特徴ベクトル算出部120は、文字列抽出部121と、文字列集計部122と、基底ベクトル定義部123と、重み定義部124と、算出部125とを備える。
<文字列抽出部121>
文字列抽出部121は、ログファイル910を構成する複数のログメッセージのそれぞれに対して、ログメッセージを構成する文字列を抽出する。
文字列抽出部121は、ログファイル910を構成する複数のログメッセージのそれぞれに対して、ログメッセージを構成する文字列を抽出する。
上述したように、ログメッセージは、当該ログメッセージが出力された時刻、ログID、メッセージ本文、または、ログレベルなど、複数のログ要素により構成される。ログ分析システム100は、ログメッセージを構成するそれぞれのログ要素を、文字列または文字列の集合として取り扱う。
ここで、「文字列」という用語を定義する。本実施形態における「文字列」とは、ログメッセージを構成する文字の組み合わせのうち、意味を有する特定の複数文字による組み合わせを表す。本実施形態における「文字列」は、例えば「単語」である。本実施形態における「文字列」は、例えば「文法上、意味または職能をもった最小の言語単位」である。本実施形態における「文字列」は、フレーズまたは文章であってもよい。実施形態における「文字列」は、日付、時刻またはIP(Internet Protocol)アドレスなどを表す文字列であってもよい。実施形態における「文字列」は、「単語と、カッコなどの記号との、組み合わせ」であってもよい。「文字列」という用語の定義については、他の実施形態においても同様である。
ログメッセージを構成するある文字列と他の文字列との間は、例えば、カンマ、スペース、タブ、括弧、コロン、カンマ、ドットまたはスラッシュなどの記号で区切られていることを想定する。文字列抽出部121は、各ログメッセージを構成する文字列を、これらの記号で区切ることにより抽出してもよい。文字列抽出部121は、抽出した文字列を正規表現により表現してもよい。
文字列抽出部121の詳細を、具体例を用いて説明する。例えば、図2に示した3つのログメッセージから文字列を抽出すると、下記のような文字列が抽出される。なお、ここで示す具体例はあくまで発明の理解を容易にするためのものであり、文字列抽出部121の動作を限定して解釈するためのものではない。
(抽出された文字列の具体例)130201,09:04:01,mysqld,started,130201,09:04:01,InnoDB,started,130201,09:04:01,[note],user,libexec,mysqld.
文字列抽出部121は、ログメッセージを構成する全てのログ要素から文字列を抽出する必要は必ずしも無い。文字列抽出部121は例えば、ログメッセージを構成するメッセージ本文のみから文字列を抽出してもよい。
<文字列集計部122、基底ベクトル定義部123、重み定義部124>
文字列集計部122、基底ベクトル定義部123、および、重み定義部124は、文字列抽出部が抽出した文字列、並びに、変換定義記憶部210から読み込んだ変換閾値定義および変換指標定義に基づいて、ベクトル定義情報を決定する。重み定義部124は、ベクトル定義情報をベクトル定義情報記憶部220に記憶する。文字列集計部122と、基底ベクトル定義部123と、重み定義部124との詳細は後述する。
文字列集計部122、基底ベクトル定義部123、および、重み定義部124は、文字列抽出部が抽出した文字列、並びに、変換定義記憶部210から読み込んだ変換閾値定義および変換指標定義に基づいて、ベクトル定義情報を決定する。重み定義部124は、ベクトル定義情報をベクトル定義情報記憶部220に記憶する。文字列集計部122と、基底ベクトル定義部123と、重み定義部124との詳細は後述する。
<算出部125>
算出部125は、ベクトル定義情報記憶部220からベクトル定義情報を読み出し、読み出したベクトル定義情報とログメッセージとに基づいて、当該ログメッセージに対応する特徴ベクトルを算出する。算出部125は、ログメッセージに、所定の文字列が含まれるか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出する。
算出部125は、ベクトル定義情報記憶部220からベクトル定義情報を読み出し、読み出したベクトル定義情報とログメッセージとに基づいて、当該ログメッセージに対応する特徴ベクトルを算出する。算出部125は、ログメッセージに、所定の文字列が含まれるか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出する。
図7は、ベクトル定義情報記憶部220が記憶するベクトル定義情報の一例を示す図である。ベクトル定義情報は、「特徴ベクトルの基底ベクトルを定義する情報」、および、「基底ベクトルとして定義された文字列の重みを定義する情報」を含む。図7において「要素」を示す列および「文字列」を示す列に表される情報が、「特徴ベクトルの基底ベクトルを定義する情報」に相当する。図7において「重み」を示す列に表される情報が、「基底ベクトルとして定義された文字列の重みを定義する情報」に相当する。
まず、「特徴ベクトルの基底ベクトルを定義する情報」について、具体例を用いて説明する。例えば図7に示すベクトル定義情報は、要素1から要素10までの10個の要素を定義する。すなわち、図7に示すベクトル定義情報は、特徴ベクトルの次元数(要素数)は10次元であることを定義する。
図7に示すベクトル定義情報は、特徴ベクトルの1つ目の要素を表す値は、当該特徴ベクトルに対応するログメッセージに「mysqld」という文字列が含まれるか否かに応じて決定されることを示す。
同じく、図7に示すベクトル定義情報は、特徴ベクトルの2つ目の要素を表す値は、当該特徴ベクトルに対応するログメッセージに「innoDB」という文字列が含まれるか否かに応じて決定されることを示す。
このように、ベクトル定義情報は、特徴ベクトルの特定の要素を表す値が、どの文字列に基づいて決定されるかを定義する情報を含む。
次に、「基底ベクトルとして定義された文字列の重みを定義する情報」について、具体例を用いて説明する。例えば図7に示すベクトル定義情報は、特徴ベクトルにおける「mysqld」に相当する要素を表す値は、当該特徴ベクトルに対応するログメッセージに「mysqld」という文字列が出現する回数と、1/67という値との積の値により決定されることを示す。
同様に、図7に示すベクトル定義情報は、特徴ベクトルにおける「innoDB」に相当する要素を表す値は、当該特徴ベクトルに対応するログメッセージに「innoDB」という文字列が出現する回数と、1/59という値との積の値により決定されることを示す。
算出部125は、ログメッセージ中に、ベクトル定義情報により定義される文字列が含まれるか否かを判定する。ログメッセージ中に、当該文字列が含まれている場合には、算出部125は、ベクトル定義情報が定義する重みの値に応じて、特徴ベクトルにおける、当該文字列に相当する要素を表す値を決定する。なお、算出部125は、ベクトル定義部が定義する文字列が、ログメッセージ中に出現しない場合には、当該文字列に相当する要素を表す値を0とする。
図8は、算出部125が算出した特徴ベクトルと、当該特徴ベクトルに対応するログメッセージとを、関連付けた情報を表す図である。
(具体例1)「130201 09:04:01 mysqld started」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「mysqld」のみである。したがって、特徴ベクトルは「(1/67,0,…,0)」となる。
(具体例2)「130201 09:04:01 InnoDB : started」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「innoDB」のみである。したがって、特徴ベクトルは「(0,1/59,0,…,0)」となる。
(具体例3)「130201 09:04:01 [note] user/libexec/mysqld」というログメッセージから、当該ログメッセージに対応する特徴ベクトルを算出する場合を想定する。当該ログメッセージに含まれる複数の文字列の中で、基底ベクトルの要素として定義されている文字列は「mysqld」および「libexec」である。したがって、特徴ベクトルは「(1/67,0,…,0,1/28,0,…,0,)」となる。
以下、説明の便宜上、文字列抽出部121、文字列集計部122、基底ベクトル定義部123、重み定義部124および算出部125を、特徴ベクトル算出部120とまとめて呼称する場合がある。
[動作の説明]
第1の実施形態にかかるログ分析システム100の動作を、下記(1)、(2)および(3)の3つの動作に分けて、それぞれ説明する。
(1)ログ分析システム100がベクトル定義情報を決定する動作、
(2)ログ分析システム100が分類定義情報を作成する動作、
(3)ログ分析システム100がログメッセージを分析する動作。
第1の実施形態にかかるログ分析システム100の動作を、下記(1)、(2)および(3)の3つの動作に分けて、それぞれ説明する。
(1)ログ分析システム100がベクトル定義情報を決定する動作、
(2)ログ分析システム100が分類定義情報を作成する動作、
(3)ログ分析システム100がログメッセージを分析する動作。
[(1)ログ分析システム100がベクトル定義情報を決定する動作の説明]
図11は、ログ分析システム100がベクトル定義情報を決定する動作(ステップS101~S107)を説明するフローチャートである。
図11は、ログ分析システム100がベクトル定義情報を決定する動作(ステップS101~S107)を説明するフローチャートである。
ログ収集部110は、分析対象システム900から出力されたログファイル910を取得する。ここでログ収集部110は、分析対象システム900が正常に運用されていた期間におけるログファイル910である、正常ログファイル911を取得する(ステップS101)。
文字列抽出部121は、取得した正常ログファイル911を構成するログメッセージの集合から、文字列を抽出する(ステップS102)。
文字列集計部122は、文字列抽出部121が抽出した文字列毎に、ログメッセージの集合において当該文字列が出現した回数を集計する(ステップS103)。図4は、文字列集計部122が集計した情報の一例を示す図である。図4に示す情報は、文字列と、当該文字列が出現した回数とを関連付けた情報である。
基底ベクトル定義部123は、文字列集計部122が集計した複数の文字列のうちから、特徴ベクトルの基底ベクトルを定義する文字列を選択する(ステップS104)。基底ベクトル定義部123は、文字列集計部122が集計した文字列を特徴ベクトルの基底ベクトルを定義する文字列として選択するか否かを、当該文字列がログメッセージの集合において出現する頻度に応じて決定する。
ステップS104に示した基底ベクトル定義部123の動作を、具体例を用いて説明する。基底ベクトル定義部123は、変換定義記憶部210から、変換閾値定義を読み出す。図5は、変換定義記憶部210から読み出した変換閾値定義の一例を示す図である。変換閾値定義は、基底ベクトルを定義する文字列を選択する際の判断基準と、その具体的な閾値を定義する。
図5に示す例では、判断基準が「文字列の出現頻度」、閾値は、「0.1N<ΣCi<0.6N」である。ここで、Nは集計の対象としたログメッセージの総数を表す値である。Ciは、あるログメッセージの中に、当該文字列が出現する回数を表す値である。ΣCiは、集計の対象としたログメッセージ中に、当該文字列が出現する総回数を表す値である。例えば、上述した「0.1N<ΣCi<0.6N」という閾値は、200個のログメッセージを集計の対象とした場合、20回より多く120回より少ない回数出現した文字列を、基底ベクトルを定義する文字列として選択することを表す。
したがって、図4に示した文字列のうち、「started」は選択されず、「mysqld」、「innoDB」または「libexec」、などが基底ベクトルを定義する文字列として選択される。
なお、変換閾値定義が定義する閾値の具体的な値は、あらかじめ固定された値でもよいし、ログ収集部110が収集したログファイル910に含まれるログレコードの数に応じて動的に設定されてもよい。あるいは、図示しない運用管理者が定義してもよい。
基底ベクトル定義部123は、基底ベクトルを定義する文字列として選択した複数の文字列の順番を一意に特定する(ステップS105)。順番を特定する方法はどのような方法でもよい。基底ベクトル定義部123は例えば、出現頻度が多い順、あるいは辞書順などの方法で文字列の順番を特定する。
重み定義部124は、基底ベクトル定義部123が選択したそれぞれの文字列について、重みを定義する(ステップS106)。
ステップS106に示した重み定義部124の動作を、具体例を用いて説明する。重み定義部124は、変換定義記憶部210から、変換指標定義を読み出す。図6は、変換定義記憶部210から読み出した変換指標定義の一例を示す図である。変換指標定義は、重みを決定する算出方法を定義する。図6に示す変換指標定義は、「文字列の出現頻度の総和の逆数と、係数との積」を重みとして定義することを表す。係数αを1とした場合、図4に示される情報に基づいて各文字列の重みを定義すると、各文字列の重みは、図7に示す通りとなる。なお、変換指標定義が定義する係数αは、例えば、基底ベクトルの各要素の重みの総和が1となるように定義されていてもよい。
重み定義部124は、基底ベクトル定義部123が選択した、基底ベクトルを定義する文字列および当該文字列の順序、並びに、重み定義部124が定義した重みを、ベクトル定義情報としてベクトル定義情報記憶部220に記憶する(ステップS107)。
図7は、基底ベクトル定義部123および重み定義部124が決定したベクトル定義情報の一例を表す図である。
ここまでで、ログ分析システム100がベクトル定義情報を決定する動作を説明した。
[(2)ログ分析システム100が分類定義情報を作成する動作の説明]
次に、図12を用いて、ログ分析システム100が分類定義情報を作成する動作を説明する。図12は、ログ分析システム100が分類定義情報を作成する動作(ステップS108~S113)を説明するフローチャートである。
次に、図12を用いて、ログ分析システム100が分類定義情報を作成する動作を説明する。図12は、ログ分析システム100が分類定義情報を作成する動作(ステップS108~S113)を説明するフローチャートである。
算出部125は、ベクトル定義情報記憶部220からベクトル定義情報を読み出す(ステップS108)。
算出部125は、読み出したベクトル定義情報と、正常ログファイル911を構成するそれぞれのログメッセージとに基づいて、当該ログメッセージに対応する特徴ベクトルを算出する(ステップS109)。
算出部125は、ログメッセージと、当該ログメッセージに対応する特徴ベクトルとを関連付けた情報を出力する(ステップS110)。図8は、ログメッセージと、当該ログメッセージに対応する特徴ベクトルとを関連付けた情報の一例を表す図である。
分類指標算出部130は、ログメッセージを、当該ログメッセージに対応する特徴ベクトルに基づいて、複数の集合にクラスタリングする。分類指標算出部130は、クラスタリングの結果、集合を識別する識別子と、当該集合に含まれるログメッセージを識別する識別子とを関連付けた情報を出力する(ステップS111)。
図9は、ステップS111に示す動作において分類指標算出部130が出力する情報を説明する図である。図9に示す情報は、例えば、集合ID=1で識別される集合には、ログメッセージID=1、5および8で識別されるログメッセージが属していることを示す。
ステップS111に示した分類指標算出部130の動作を、具体例を用いて説明する。分類指標算出部130は、算出部125が算出した特徴ベクトルに基づいて、特徴ベクトル間の距離を算出する。分類指標算出部130は、算出した距離に基づいて、当該特徴ベクトルに対応するログメッセージをクラスタリングし、複数の集合を定義する。
特徴ベクトル同士の距離としては例えば、ユークリッド平方距離、ミンコフスキー距離またはマハラノビスの汎距離などを用いることができる。距離を用いてクラスタリングする方法としては、Ward法、K平均法、最短距離法、最長距離法または群平均法などが知られている。
分類指標算出部130は、集合毎に、当該集合に対応する分類指標を算出する(ステップS112)。分類指標とは、各集合を表現する指標である。分類指標は、各集合に属する特徴ベクトルを用いて算出可能な、値またはベクトルである。発明の理解を容易にするため、以下、分類情報が、ある集合に属する一つまたは複数の特徴ベクトルの平均ベクトルであるとして説明を続ける。平均ベクトルは分類指標の一具体例である。分類指標の他の具体例については後述する。
分類指標算出部130は、集合IDと、当該集合に対応する平均ベクトルとを関連付けて、分類定義情報を作成する。分類指標算出部130は、作成した分類定義情報を分類定義情報記憶部230に記憶する(ステップS113)。
図10は、分類指標算出部130が作成した分類定義情報の一例を示す図である。図10に示す情報は、例えば、集合ID1に対応する平均ベクトルは、(1/67,0,…,0)であることを示す。
ここまでで、ログ分析システム100が分類定義情報を作成する動作を説明した。
なお、ベクトル定義情報および分類定義情報は必ずしも正常ログファイル911から作成されるとは限らない。例えば、異常なログメッセージの集合からベクトル定義情報および分類定義情報を作成してもよい。
[(3)ログ分析システム100がログメッセージを分析する動作の説明]
図13は、ログ分析システム100がログメッセージを分析する動作を説明するフローチャートである。
図13は、ログ分析システム100がログメッセージを分析する動作を説明するフローチャートである。
ログ収集部110は、分析対象システム900から出力されたログファイル910を取得する。ここでログ収集部110は、分析対象のログファイル910である分析対象ログファイル912を取得する(ステップS201)。
特徴ベクトル算出部120は、ベクトル定義情報記憶部220からベクトル定義情報を読み出す(ステップS202)。
特徴ベクトル算出部120は、ベクトル定義情報と、分析対象ログファイル912を構成するログメッセージとに基づいて、ログメッセージに対応する特徴ベクトルを算出する(ステップS203)。
なお、ステップS203に示す動作において、分析対象のログメッセージに含まれる文字列が、ベクトル定義情報において定義された要素に含まれない場合がある。このような場合、特徴ベクトル算出部120は、該当する単語を、ベクトル定義情報が定義する要素の末尾に追加することによって(すなわち、図7に示した例においては要素11が追加される)、ベクトル定義情報を拡張するように構成してもよい。その場合、特徴ベクトル算出部120は、ベクトルの次元を該当する単語の数だけ増加させ、その値は0とする。
ログ分析部140は、分類定義情報記憶部230から分類定義情報を読み出す(ステップS204)。
ログ分析部140は、分類定義情報と、特徴ベクトル算出部120が算出した特徴ベクトルと、に基づいて、当該特徴ベクトルに対応するログメッセージを、分類定義情報が定義する複数の集合のうちいずれかの集合に分類する。あるいはログ分析部140は、ログメッセージを、分類定義情報が定義するいずれの集合にも所属しない異常なログメッセージとして分類する(ステップS205)。
ステップS205に示したログ分析部140の動作を、詳細に説明する。ログ分析部140は、分類定義情報が定義する平均ベクトルと、分析対象のログメッセージに対応する特徴ベクトルとの距離を算出し、当該距離に基づいて、分析対象のログメッセージを分類する。下記2つの具体例を用いて詳細に説明する。
(具体例1)例えば、異常判定対象のログレコード「130201 10:01:23 mysqld started」の特徴ベクトルが、「(1/67,0,…,0)」である場合を想定する。ログ分析部140は、当該特徴ベクトルと、分類定義情報が定義する各々の平均ベクトルとを比較する。ログ分析部140は、分析対象の特徴ベクトルと、平均ベクトルとの距離を算出する。例えば、上述の特徴ベクトルと、図10に示した分類定義情報が定義する平均ベクトルとの距離を算出すると、以下の通りとなる。
集合ID1に対しては0、
集合ID2に対しては(1/67)*(1/67)+(1/59)*(1/59)+(1/128)*(1/128)、
集合ID3に対しては(1/28)*(1/28)+(1/264)*(1/264)である。
したがって、最も近い集合IDは1である。ここで、記号“*”は乗算を表す。また、記号“/”は除算を表す。以下、これらの記号が表す意味は本願において同様である。
集合ID1に対しては0、
集合ID2に対しては(1/67)*(1/67)+(1/59)*(1/59)+(1/128)*(1/128)、
集合ID3に対しては(1/28)*(1/28)+(1/264)*(1/264)である。
したがって、最も近い集合IDは1である。ここで、記号“*”は乗算を表す。また、記号“/”は除算を表す。以下、これらの記号が表す意味は本願において同様である。
ログ分析部140は、算出した距離と別途定義された閾値を比較し、算出した距離が閾値以下であれば、分析対象のログレコードが該当する集合に含まれると判定する。上記の例の場合、閾値を(1/25)*(1/25)とすると、距離は0であるため、ログ分析部140は、分析対象のログレコードを、集合ID1の集合に含まれると判定する。
(具体例2)例えば、異常判定対象のログレコード「130201 10:01:23 mysqld stopped」の特徴ベクトルが(1/67,0,…,1/20)である場合を想定する。ログ分析部140は、当該特徴ベクトルと、分類定義情報が定義する各々の平均ベクトルとの距離を算出する。その結果、ログ分析部140は、当該特徴ベクトルともっとも近い平均ベクトルは、集合ID1に対応する平均ベクトルであり、その距離は(1/20)*(1/20)あると算出する。ログ分析部140は更に、算出した距離と閾値とを比較する。距離((1/20)*(1/20))>閾値((1/25)*(1/25))であるため、ログ分析部140は、分析対象のログレコードが、いずれの集合にも属さない異常なログレコードであると判定する。
出力部150は、ログ分析部140が分析対象のログメッセージを分類した結果を示す情報を出力する(ステップS206)。出力部150は、ログ分析部140から出力された情報を、例えば、ディスプレイに表示する、あるいは、プリンタで帳票として出力するなどの方法で運用管理者に提示する。出力部150は、分類定義情報を出力してもよい。
[ハードウェア構成の説明]
図14は、第1の実施形態にかかるログ分析システム100のハードウェア構成の一例を示すブロック図である。ログ分析システム100を構成するハードウェアは、CPU(Central Processing Unit)1、メモリ2、記憶装置3、通信インターフェース(I/F)4を備える。ログ分析システム100は、入力装置5または出力装置6を備えていてもよい。ログ分析システム100の機能は、例えばCPU1が、メモリ2に読み出されたコンピュータプログラム(ソフトウェアプログラム、以下単に「プログラム」と記載する)を実行することにより実現される。実行に際して、CPU1は、通信インターフェース4、入力装置5および出力装置6を適宜制御する。
図14は、第1の実施形態にかかるログ分析システム100のハードウェア構成の一例を示すブロック図である。ログ分析システム100を構成するハードウェアは、CPU(Central Processing Unit)1、メモリ2、記憶装置3、通信インターフェース(I/F)4を備える。ログ分析システム100は、入力装置5または出力装置6を備えていてもよい。ログ分析システム100の機能は、例えばCPU1が、メモリ2に読み出されたコンピュータプログラム(ソフトウェアプログラム、以下単に「プログラム」と記載する)を実行することにより実現される。実行に際して、CPU1は、通信インターフェース4、入力装置5および出力装置6を適宜制御する。
尚、本実施形態および後述する各実施形態を例として説明される本発明は、係るプログラムが格納されたコンパクトディスク等の不揮発性の記憶媒体8によっても構成される。記憶媒体8が格納するプログラムは、例えばドライブ装置7により読み出される。
ログ分析システム100が実行する通信は、例えばOS(Operating System)が提供する機能を使ってアプリケーションプログラムが通信インターフェース4を制御することによって実現される。入力装置5は、例えばキーボード、マウスまたはタッチパネルである。出力装置6は、例えばディスプレイである。ログ分析システム100は、2つ以上の物理的に分離した装置が有線または無線で接続されることによって構成されていてもよい。
図14に示すハードウェア構成例は、後述する各実施形態にも適用可能である。なお、ログ分析システム100は専用の装置であってもよい。なお、ログ分析システム100およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
[第1の実施形態が奏する効果の説明]
第1の実施形態にかかるログ分析システム100は、ログメッセージを分析する際に、ログメッセージを適切に分類することができる。その第1の理由は、ログ分析システム100は、ログメッセージに所定の文字列が含まれているか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出し、当該特徴ベクトルに基づいて、当該特徴ベクトルに対応するログメッセージを分析するからである。その第2の理由は、ログメッセージを分析する際に用いられる文字列が、分析対象システムから出力されたログメッセージの集合において出現する頻度に応じて選択されるからである。
第1の実施形態にかかるログ分析システム100は、ログメッセージを分析する際に、ログメッセージを適切に分類することができる。その第1の理由は、ログ分析システム100は、ログメッセージに所定の文字列が含まれているか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出し、当該特徴ベクトルに基づいて、当該特徴ベクトルに対応するログメッセージを分析するからである。その第2の理由は、ログメッセージを分析する際に用いられる文字列が、分析対象システムから出力されたログメッセージの集合において出現する頻度に応じて選択されるからである。
第1の実施形態にかかるログ分析システム100が奏する効果をより詳細に説明する。分析対象システム900が正常に運用されている場合、分析対象システム900は同一のログメッセージを繰り返し出力すると考えられるため、当該ログメッセージを構成する文字列の出現頻度は高くなる。このような、出現頻度の高い文字列は、類似するログメッセージ同士をクラスタリングまたはグルーピングする際に有用な情報である。
他方、分析対象システム900に異常が発生した場合、分析対象システム900は、正常時とは異なるログメッセージを出力すると考えられる。この場合、当該ログメッセージには、正常なログメッセージに出現しない文字列が含まれていると考えられる。
ここで、分析対象システム900が、下記2つのログメッセージを出力した場合を想定する。
(ログメッセージ1):2013/10/01 [XXXAPI] auth_method [TAT]00001 [REMOTEHOST]
node00010 [USER_ID] u1011 ….、
(ログメッセージ2):2013/10/01 [YYYAPI] auth_method [TAT]01001 [REMOTEHOST]
node00034 [USER_ID] u4581 ….。
node00010 [USER_ID] u1011 ….、
(ログメッセージ2):2013/10/01 [YYYAPI] auth_method [TAT]01001 [REMOTEHOST]
node00034 [USER_ID] u4581 ….。
上記ログメッセージ1および2に共通する、[REMOTEHOST]、[TAT]および[USER_ID]などの文字列は出現頻度が高い文字列(言い換えるとログメッセージ内で固定された文字列)である。このような文字列は、ログメッセージ1とログメッセージ2を異なるログメッセージとして分類する上では不要な文字列である。
正常なログメッセージと異常なログメッセージとの差異を生む文字列は、例えば、正常なログメッセージに出現しない文字列、特定のログメッセージにのみ出現する文字列、および、ログメッセージ内で変化する文字列である。
ログ分析システム100は、ログメッセージを分析する際に用いられる文字列を、分析対象システムから出力されたログメッセージの集合において出現する頻度に応じて選択する。かかる構成により、ログ分析システム100は、正常なログメッセージと異常なログメッセージとの差異を生む文字列に着目してログメッセージを分析することができる。これにより、ログ分析システム100は、ログメッセージを適切に分類することができる。
また、ログ分析システム100は、ログメッセージを、単に正常なログメッセージか異常なログメッセージかという観点で分類するだけではなく、あらかじめ定義された複数の集合のうちいずれかの集合に分類することもできる。
近年では、分析対象システム900の安定的な稼働を保証するために、障害が発生した後の対処ではなく、事前に障害などの異常の兆候を検出するという事前対処が求められ始めている。その為には、監視していた異常系のログメッセージだけではなく、正常系のログメッセージを監視する必要がある。ログ分析システム100は、このようなニーズをも満たすことができる。
<第2の実施形態>
図15は、第2の実施形態にかかるログ分析システム100Aの構成を示すブロック図である。第2の実施形態にかかるログ分析システム100Aは、第1の実施形態にかかるログ分析システム100が備える出力部150に代えて、処理実行部160を備える。また、第2の実施形態にかかるログ分析システム100Aは、処理定義情報記憶部240を備える。図1に示した構成と実質的に同一の構成については、同様の符号を付与し、説明を省略する。
図15は、第2の実施形態にかかるログ分析システム100Aの構成を示すブロック図である。第2の実施形態にかかるログ分析システム100Aは、第1の実施形態にかかるログ分析システム100が備える出力部150に代えて、処理実行部160を備える。また、第2の実施形態にかかるログ分析システム100Aは、処理定義情報記憶部240を備える。図1に示した構成と実質的に同一の構成については、同様の符号を付与し、説明を省略する。
処理定義情報記憶部240は、処理定義情報を記憶する。処理定義情報は、ログ分析部140が分析した結果に基づいて処理実行部160が実行する処理を定義する情報である。
図16は、処理定義情報記憶部240が記憶する処理定義情報の一例を説明する図である。図16に示すように、処理定義情報は、条件(condition)とアクション(action)との組によって構成される。条件は、対応するアクションが実行されるための条件を定義する。アクションは、対応する条件が満たされた場合に、処理実行部160が実行する動作を定義する。
図16において、ID=1で識別される処理定義情報は、ログ分析部140が、集合ID1に分類されるログメッセージを検出した場合、処理実行部160が、「管理者に通知する」という処理を実行することを定義する。図16において、ID=2で識別される処理定義情報は、ログ分析部140が、異常なログメッセージを検出した場合、処理実行部160が、「管理者に通知し、アラームを出す」という処理を実行することを定義する。図16において、ID=3で識別される処理定義情報は、ログ分析部140が「Connection error」を示すログメッセージを検出した場合、処理実行部160はそれを「通知しない」ことを定義する。図16において、ID=4で識別される処理定義情報は、ログ分析部140が「20:00:01-06:59:59」に出力されたログメッセージを検出した場合、処理実行部160はそれを「07:00:00にまとめて通知」する処理を実行することを定義する。
なお、処理定義情報は正規表現を用いて記述されていてもよい。また、処理定義情報を構成するアクションは、機械的に実行可能なスクリプトやコマンドでもよい。
処理実行部160は、ログ分析部140が分析した結果に応じて、処理定義情報が定義する処理を実行する。
図17は、ログ分析システム100Aがログメッセージを分析する動作を説明するフローチャートである。図17に示したステップS201からS205までの動作は、図13に示したステップS201からS205までの動作と同様であるので、説明を省略する。
ログ分析部140が分析対象のログメッセージを分類した結果に応じて、処理実行部160は、処理定義情報が定義する処理を実行する(ステップS301)。
[第2の実施形態が奏する効果の説明]
第2の実施形態にかかるログ分析システム100Aは、ログ分析部140が分析した結果に応じて、適切な処理を自動で実行することができる。その理由は、ログ分析システム100Aは、処理実行部160を備えるからである。
第2の実施形態にかかるログ分析システム100Aは、ログ分析部140が分析した結果に応じて、適切な処理を自動で実行することができる。その理由は、ログ分析システム100Aは、処理実行部160を備えるからである。
<第3の実施形態>
図18は、第3の実施形態にかかるログ分析システム100Bの構成を説明するブロック図である。図18に示すように、ログ分析システム100Bは、特徴ベクトル算出手段120Bと、ログ分析手段140Bとを備える。
図18は、第3の実施形態にかかるログ分析システム100Bの構成を説明するブロック図である。図18に示すように、ログ分析システム100Bは、特徴ベクトル算出手段120Bと、ログ分析手段140Bとを備える。
特徴ベクトル算出手段120Bは、分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに、所定の文字列が含まれているか否かに応じて、当該ログメッセージに対応する特徴ベクトルを算出する。この所定の文字列は、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択される文字列である。
ログ分析手段140Bは、特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する。
[第3の実施形態が奏する効果の説明]
第3の実施形態にかかるログ分析システム100Bは、ログメッセージを適切に分類することができる。
第3の実施形態にかかるログ分析システム100Bは、ログメッセージを適切に分類することができる。
<その他の実施形態>
ステップS112に示した動作における、分類指標の他の具体例について説明する。
ステップS112に示した動作における、分類指標の他の具体例について説明する。
分類指標は、集合に属する特徴ベクトルの平均値、最頻値、中央値、あるいは集合の分散、集合に属する特徴ベクトルの個数など、分類指標は、集合に属する一つまたは複数の特徴ベクトルそのものであってもよい。
分類指標算出部130は、ある集合に属する一つまたは複数の特徴ベクトルを代表する代表ベクトルを算出し、当該代表ベクトルを分類指標としてもよい。代表ベクトルの各要素を表す値は、例えば、集合に属する複数の特徴ベクトルの各要素を表す値の代表値(すなわち、平均値、最頻値、中央値または分散値など)である。
ステップS205に示した動作において、ログ分析部140は、必ずしも距離に基づいてログメッセージを分類するとは限らない。例えばログ分析部140は、ログメッセージに対応する特徴ベクトルを集合に追加した場合の、分散や平均ベクトルなど集合の特徴を表現する統計量の変化量やその組み合わせにより算出可能な量などを判定基準として用いてもよい。
これら判定基準およびその指標は図示しないファイルから読み込むよう構成してもよい。あるいは、ユーザが図示しない入力装置から直接入力するよう構成してもよい。
上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
各ブロック図に示したブロック分けは、説明の便宜上から表された構成である。各実施形態を例に説明された本発明は、その実装に際して、各ブロック図に示した構成には限定されない。
また、ログ分析システムの動作の説明においては、複数の動作を順番に説明しているが、その複数の動作の順番は支障のない範囲で変更することができる。また、これら複数の動作は、それぞれ別々のタイミングで実行されるとは限らない。たとえば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に或いは全部において重複したりしてもよい。
さらに、各動作の説明においては、発明の理解を容易にするため、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。
以上、本発明を実施するための形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
本発明は、情報処理システムや物理プラントなどを運用管理する技術に応用することができる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は2013年11月12日に出願された日本出願特願2013-233954を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は2013年11月12日に出願された日本出願特願2013-233954を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1 CPU
2 メモリ
3 記憶装置
4 通信インターフェース
5 入力装置
6 出力装置
7 ドライブ装置
8 記憶媒体
100 ログ分析システム
100A ログ分析システム
100B ログ分析システム
110 ログ収集部
120 特徴ベクトル算出部
120B 特徴ベクトル算出手段
121 文字列抽出部
122 文字列集計部
123 基底ベクトル定義部
124 重み定義部
125 算出部
130 分類指標算出部
140 ログ分析部
140B ログ分析手段
150 出力部
160 処理実行部
210 変換定義記憶部
220 ベクトル定義情報記憶部
230 分類定義情報記憶部
900 分析対象システム
911 正常ログファイル
912 分析対象ログファイル
2 メモリ
3 記憶装置
4 通信インターフェース
5 入力装置
6 出力装置
7 ドライブ装置
8 記憶媒体
100 ログ分析システム
100A ログ分析システム
100B ログ分析システム
110 ログ収集部
120 特徴ベクトル算出部
120B 特徴ベクトル算出手段
121 文字列抽出部
122 文字列集計部
123 基底ベクトル定義部
124 重み定義部
125 算出部
130 分類指標算出部
140 ログ分析部
140B ログ分析手段
150 出力部
160 処理実行部
210 変換定義記憶部
220 ベクトル定義情報記憶部
230 分類定義情報記憶部
900 分析対象システム
911 正常ログファイル
912 分析対象ログファイル
Claims (10)
- 分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージに対応する特徴ベクトルを、当該ログメッセージが所定の文字列を含むか否かに応じて算出する特徴ベクトル算出手段と、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析するログ分析手段と、を備え、
前記特徴ベクトル算出手段は、前記所定の文字列を、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて選択する、
ログ分析システム。 - 前記特徴ベクトルの要素数は2以上であり、前記特徴ベクトルを構成する複数の要素のうち、第1の要素は第1の文字列によって定義されており、第2の要素は第2の文字列によって定義されており、
前記特徴ベクトル算出手段は、前記ログメッセージに対応する特徴ベクトルを算出する際に、前記ログメッセージが、前記特徴ベクトルを構成する複数の要素のうち特定の要素を定義する文字列を含むか否かに応じて、前記特徴ベクトルを構成する前記特定の要素を表す値を決定する、
請求項1に記載のログ分析システム。 - 前記特徴ベクトル算出手段は、前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において、第1の閾値以上、かつ、第2の閾値未満の頻度で出現する文字列を、前記所定の文字列として選択する、
請求項1または2に記載のログ分析システム。 - 分類指標算出手段を更に備え、
前記分類指標算出手段は、
前記特徴ベクトル算出手段が算出した特徴ベクトルを複数取得し、
前記複数の特徴ベクトルを、前記特徴ベクトル同士の距離に基づいて、複数の集合にクラスタリングし、
前記集合ごとに、前記集合に属する1つまたは複数の特徴ベクトルに基づいて分類指標を算出し、前記分類指標と前記集合とを関連付け、
前記ログ分析手段は、前記分類指標と、分析対象であるログメッセージに対応する特徴ベクトルとに基づいて、前記特徴ベクトルに対応するログメッセージが、前記分類指標に関連付けされた集合に属するか否かを分析する、
請求項1から3のいずれかに記載のログ分析システム。 - 前記ログ分析手段は、前記特徴ベクトルに対応するログメッセージが、前記複数の集合のうちいずれの集合にも分類されない場合、当該ログメッセージを異常なログメッセージとみなす、
請求項4に記載のログ分析システム。 - 前記分類指標は、前記集合に属する1つまたは複数の特徴ベクトルに基づいて算出される代表ベクトルであって、前記代表ベクトルを構成する各要素を表す値は、前記1つまたは複数の特徴ベクトルを構成する、対応する要素を表す値の代表値である、
請求項4に記載のログ分析システム。 - 前記特徴ベクトル算出手段は、前記ログメッセージに対応する特徴ベクトルを算出する際に、前記ログメッセージが、前記特徴ベクトルを構成する複数の要素のうち特定の要素を定義する文字列を含む場合に、前記特徴ベクトルを構成する前記特定の要素を表す値を、前記ログメッセージに前記の文字列が幾つ含まれるかを表す値と、前記ログメッセージの集合において前記文字列が出現する頻度の逆数に応じた値との、積の値に基づいて決定する、請求項2に記載のログ分析システム。
- 処理実行手段を更に備え、
前記処理実行手段は、前記ログ分析手段が分析対象のログメッセージを、前記いずれかの集合に分類するか、あるいは、異常なログメッセージとみなした場合に、前記集合ごとに、あるいは、異常なログメッセージとみなされたことに対応してあらかじめ規定された処理を実行する、
請求項5に記載のログ分析システム。 - コンピュータが、
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出し、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析し、
前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する、
ログ分析方法。 - コンピュータに、
分析対象システムから出力されたログメッセージの集合のうち注目するログメッセージが、所定の文字列を含むか否かに応じて、前記注目するログメッセージに対応する特徴ベクトルを算出する処理と、
前記特徴ベクトルに基づいて、前記特徴ベクトルに対応する前記ログメッセージを分析する処理と、
前記ログメッセージの集合に含まれる複数の文字列のうちから、前記ログメッセージの集合において当該文字列が出現する頻度に応じて前記所定の文字列を選択する処理と、
を実行させるプログラムを格納する記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015547619A JPWO2015072085A1 (ja) | 2013-11-12 | 2014-10-21 | ログ分析システム、ログ分析方法、および、プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013-233954 | 2013-11-12 | ||
JP2013233954 | 2013-11-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015072085A1 true WO2015072085A1 (ja) | 2015-05-21 |
Family
ID=53057038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/005335 WO2015072085A1 (ja) | 2013-11-12 | 2014-10-21 | ログ分析システム、ログ分析方法、および、記憶媒体 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2015072085A1 (ja) |
WO (1) | WO2015072085A1 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018142694A1 (ja) * | 2017-02-02 | 2018-08-09 | 日本電信電話株式会社 | 特徴量生成装置、特徴量生成方法及びプログラム |
JP2018132787A (ja) * | 2017-02-13 | 2018-08-23 | 株式会社日立ソリューションズ | ログ分析支援装置およびログ分析支援方法 |
WO2019077656A1 (ja) | 2017-10-16 | 2019-04-25 | 富士通株式会社 | 生産設備監視装置、生産設備監視方法及び生産設備監視プログラム |
US10275457B2 (en) | 2017-02-13 | 2019-04-30 | Fujitsu Limited | Information processing apparatus and control method for information processing apparatus |
WO2019202711A1 (ja) * | 2018-04-19 | 2019-10-24 | 日本電気株式会社 | ログ分析システム、ログ分析方法及び記録媒体 |
WO2019221745A1 (en) * | 2018-05-18 | 2019-11-21 | Visa International Service Association | System, method, and computer program product for classifying service request messages |
US20200050532A1 (en) | 2017-04-24 | 2020-02-13 | Microsoft Technology Licensing, Llc | Machine Learned Decision Guidance for Alerts Originating from Monitoring Systems |
WO2022195690A1 (ja) * | 2021-03-15 | 2022-09-22 | 日本電信電話株式会社 | ログデータ解析装置、ログデータ解析方法及びプログラム |
CN115495427B (zh) * | 2022-11-22 | 2023-04-28 | 青岛远洋船员职业学院 | 一种基于智慧安全管理平台的日志数据存储方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7335378B1 (ja) * | 2022-03-02 | 2023-08-29 | エヌ・ティ・ティ・コムウェア株式会社 | メッセージ分類装置、メッセージ分類方法、およびプログラム |
JP7335379B1 (ja) * | 2022-03-02 | 2023-08-29 | エヌ・ティ・ティ・コムウェア株式会社 | 学習装置、学習方法、およびプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004213626A (ja) * | 2002-11-27 | 2004-07-29 | Sony United Kingdom Ltd | 情報の格納及び検索 |
WO2010035412A1 (ja) * | 2008-09-25 | 2010-04-01 | 日本電気株式会社 | 情報分析装置、情報分析方法、及びプログラム |
JP2011192097A (ja) * | 2010-03-16 | 2011-09-29 | Hitachi Ltd | 異常検知方法およびそれを用いた情報処理システム |
-
2014
- 2014-10-21 JP JP2015547619A patent/JPWO2015072085A1/ja active Pending
- 2014-10-21 WO PCT/JP2014/005335 patent/WO2015072085A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004213626A (ja) * | 2002-11-27 | 2004-07-29 | Sony United Kingdom Ltd | 情報の格納及び検索 |
WO2010035412A1 (ja) * | 2008-09-25 | 2010-04-01 | 日本電気株式会社 | 情報分析装置、情報分析方法、及びプログラム |
JP2011192097A (ja) * | 2010-03-16 | 2011-09-29 | Hitachi Ltd | 異常検知方法およびそれを用いた情報処理システム |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11829868B2 (en) | 2017-02-02 | 2023-11-28 | Nippon Telegraph And Telephone Corporation | Feature value generation device, feature value generation method, and program |
JPWO2018142694A1 (ja) * | 2017-02-02 | 2019-12-12 | 日本電信電話株式会社 | 特徴量生成装置、特徴量生成方法及びプログラム |
WO2018142694A1 (ja) * | 2017-02-02 | 2018-08-09 | 日本電信電話株式会社 | 特徴量生成装置、特徴量生成方法及びプログラム |
JP2018132787A (ja) * | 2017-02-13 | 2018-08-23 | 株式会社日立ソリューションズ | ログ分析支援装置およびログ分析支援方法 |
US10275457B2 (en) | 2017-02-13 | 2019-04-30 | Fujitsu Limited | Information processing apparatus and control method for information processing apparatus |
US11809304B2 (en) | 2017-04-24 | 2023-11-07 | Microsoft Technology Licensing, Llc | Machine learned decision guidance for alerts originating from monitoring systems |
US20200050532A1 (en) | 2017-04-24 | 2020-02-13 | Microsoft Technology Licensing, Llc | Machine Learned Decision Guidance for Alerts Originating from Monitoring Systems |
US11650579B2 (en) | 2017-10-16 | 2023-05-16 | Fujitsu Limited | Information processing device, production facility monitoring method, and computer-readable recording medium recording production facility monitoring program |
WO2019077656A1 (ja) | 2017-10-16 | 2019-04-25 | 富士通株式会社 | 生産設備監視装置、生産設備監視方法及び生産設備監視プログラム |
JPWO2019202711A1 (ja) * | 2018-04-19 | 2021-04-22 | 日本電気株式会社 | ログ分析システム、ログ分析方法及びプログラム |
JP7184078B2 (ja) | 2018-04-19 | 2022-12-06 | 日本電気株式会社 | ログ分析システム、ログ分析方法及びプログラム |
WO2019202711A1 (ja) * | 2018-04-19 | 2019-10-24 | 日本電気株式会社 | ログ分析システム、ログ分析方法及び記録媒体 |
US11544445B2 (en) | 2018-05-18 | 2023-01-03 | Visa International Service Association | System, method, and computer program product for classifying service request messages |
US11809808B2 (en) | 2018-05-18 | 2023-11-07 | Visa International Service Association | System, method, and computer program product for classifying service request messages |
WO2019221745A1 (en) * | 2018-05-18 | 2019-11-21 | Visa International Service Association | System, method, and computer program product for classifying service request messages |
WO2022195690A1 (ja) * | 2021-03-15 | 2022-09-22 | 日本電信電話株式会社 | ログデータ解析装置、ログデータ解析方法及びプログラム |
CN115495427B (zh) * | 2022-11-22 | 2023-04-28 | 青岛远洋船员职业学院 | 一种基于智慧安全管理平台的日志数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015072085A1 (ja) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015072085A1 (ja) | ログ分析システム、ログ分析方法、および、記憶媒体 | |
JP6643211B2 (ja) | 異常検知システム及び異常検知方法 | |
JP6233411B2 (ja) | 障害分析装置、障害分析方法、および、コンピュータ・プログラム | |
JP6183450B2 (ja) | システム分析装置、及び、システム分析方法 | |
US8819220B2 (en) | Management method of computer system and management system | |
WO2016132717A1 (ja) | ログ分析システム、ログ分析方法およびプログラム記録媒体 | |
WO2013042789A1 (ja) | 運用管理装置、運用管理方法、及びプログラム | |
WO2015146086A1 (ja) | ログ分析システム、障害原因分析システム、ログ分析方法、および、記録媒体 | |
WO2017094262A1 (ja) | ログ分析システム、方法およびプログラム | |
JP6260130B2 (ja) | ジョブ遅延検知方法、情報処理装置、およびプログラム | |
JP6183449B2 (ja) | システム分析装置、及び、システム分析方法 | |
CN102257487A (zh) | 分析事件 | |
CN113125903A (zh) | 线损异常检测方法、装置、设备及计算机可读存储介质 | |
WO2017037801A1 (ja) | 監視システムおよび監視方法 | |
US9286036B2 (en) | Computer-readable recording medium storing program for managing scripts, script management device, and script management method | |
CN117675691A (zh) | 路由器的远程故障监控方法、装置、设备及存储介质 | |
US20190294523A1 (en) | Anomaly identification system, method, and storage medium | |
JP4559974B2 (ja) | 管理装置及び管理方法及びプログラム | |
US10157113B2 (en) | Information processing device, analysis method, and recording medium | |
CN107451029A (zh) | 一种信息处理方法及装置、设备 | |
JP6858798B2 (ja) | 特徴量生成装置、特徴量生成方法及びプログラム | |
JP6508202B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JP2021135541A (ja) | モデル生成装置、モデル生成方法、及びモデル生成プログラム | |
KR102655198B1 (ko) | 다중 관점 이벤트 로그를 생성하는 시스템 및 방법 | |
CN114756401B (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: 14862687 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2015547619 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: 14862687 Country of ref document: EP Kind code of ref document: A1 |