KR102137109B1 - An apparatus for classify log massage to patterns - Google Patents

An apparatus for classify log massage to patterns Download PDF

Info

Publication number
KR102137109B1
KR102137109B1 KR1020180152377A KR20180152377A KR102137109B1 KR 102137109 B1 KR102137109 B1 KR 102137109B1 KR 1020180152377 A KR1020180152377 A KR 1020180152377A KR 20180152377 A KR20180152377 A KR 20180152377A KR 102137109 B1 KR102137109 B1 KR 102137109B1
Authority
KR
South Korea
Prior art keywords
log message
log
pattern
similarity
tokens
Prior art date
Application number
KR1020180152377A
Other languages
Korean (ko)
Other versions
KR20200065683A (en
Inventor
최원규
김준민
Original Assignee
카페24 주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 카페24 주식회사 filed Critical 카페24 주식회사
Priority to KR1020180152377A priority Critical patent/KR102137109B1/en
Publication of KR20200065683A publication Critical patent/KR20200065683A/en
Application granted granted Critical
Publication of KR102137109B1 publication Critical patent/KR102137109B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Abstract

로그 메시지의 패턴을 분류하는 방법이 제공된다. 방법은, 로그 메시지를 획득하고, 이를 분절하여 하나 이상의 토큰을 생성한다. 이후, 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하여, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여 로그 메시지를 상기 제 1 패턴으로 분류하고, 미리 결정한 임계치 미만이라는 결정에 응답하여 로그 메시지를 신규 패턴으로 분류한다. A method of classifying log message patterns is provided. The method acquires a log message and segments it to generate one or more tokens. Subsequently, through the comparison of tokens, the similarity between the log message and the one or more existing patterns is determined, and the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is a predetermined threshold. The log message is classified into the first pattern in response to the determination of abnormality, and the log message is classified into a new pattern in response to the determination that it is less than a predetermined threshold.

Figure R1020180152377
Figure R1020180152377

Description

로그 메시지의 패턴을 분류하는 방법 및 장치{AN APPARATUS FOR CLASSIFY LOG MASSAGE TO PATTERNS}Method and device for classifying pattern of log message {AN APPARATUS FOR CLASSIFY LOG MASSAGE TO PATTERNS}

본 발명은 로그 메시지에 관한 것으로서, 보다 구체적으로는 시스템의 운영에 따라 발생하는 로그 메시지들을 소정 개수의 패턴으로 분류하기 위한 장치에 관한 것이다. The present invention relates to a log message, and more particularly, to an apparatus for classifying log messages generated according to the operation of a system into a predetermined number of patterns.

프로그램의 실행을 통해 사용자들에게 서비스를 제공할 수 있는 시스템들이 널리 운영되고 있다. 예를 들어, 온라인 쇼핑몰의 경우, 사용자들은 각자의 단말을 통해 네트워크를 통해 시스템에 접속할 수 있으며, 시스템은 적어도 하나 이상의 서버를 포함할 수 있고, 적어도 하나의 서버는 프로그램을 실행시켜 사용자에게 쇼핑몰 서비스를 제공하도록 구성될 수 있다. Systems capable of providing services to users through the execution of programs have been widely operated. For example, in the case of an online shopping mall, users may access the system through a network through their respective terminals, the system may include at least one server, and at least one server executes a program to provide a shopping mall service to the user It can be configured to provide.

이와 같은 시스템의 운영 동안에는 프로그램의 실행에 따라 발생하는 오류나 경고 사항 등을 포함하는 주요 정보를 로그 파일의 형태로 저장하며, 시스템의 안정적인 운영을 위해서는 로그 파일을 상시 감시해야할 필요가 있다. 그러나, 나날이 발전하는 IT 기술 및 다양한 어플리케이션의 등장으로, 소정의 시스템을 운영함에 있어서 프로그램의 실행에 의해 발생되는 로그 데이터는 기하 급수적으로 증가되고 있는 실정이다. 이와 같이 증가된 로그 데이터를 사용자가 전부 모니터링하는 것은 불가능에 가까워지고 있다. During the operation of the system, key information including errors or warnings generated by the execution of the program is stored in the form of log files, and log files need to be constantly monitored for stable operation of the system. However, with the advent of IT technology and various applications that are developed day by day, the log data generated by the execution of a program in operating a predetermined system is increasing exponentially. It is becoming impossible for a user to monitor all the increased log data.

한국 공개특허공보 제 1999-0056548 호 ("다중 로그 메시지 출력 방법", 삼성전자 주식회사)Korean Patent Publication No. 1999-0056548 ("How to output multiple log messages", Samsung Electronics Co., Ltd.)

전술한 문제점을 해결하기 위한 본 발명의 목적은 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있는 로그 메시지의 패턴을 분류하는 방법을 제공하는 것이다. An object of the present invention for solving the above-described problems is to provide a method of classifying a pattern of log messages that can facilitate monitoring of log messages by classifying log messages according to the degree of similarity according to the operation of the system.

전술한 문제점을 해결하기 위한 본 발명의 다른 목적은 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있는, 로그 메시지 패턴 분류를 수행하는 컴퓨팅 디바이스를 제공하는 것이다. Another object of the present invention for solving the above-mentioned problems is to provide a computing device that performs log message pattern classification, which can facilitate monitoring of log messages by classifying log messages according to the operation of the system based on similarity. Is to do.

다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.However, the problem to be solved of the present invention is not limited to this, and may be variously extended without departing from the spirit and scope of the present invention.

전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 디바이스에 의해 수행되는, 로그 메시지의 패턴을 분류하는 방법은, 로그 메시지를 획득하는 단계; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하는 단계; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하는 단계; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하는 단계; 및 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하는 단계를 포함할 수 있다. A method of classifying a pattern of log messages performed by a computing device according to an embodiment of the present invention for achieving the above object includes: obtaining a log message; Segmenting the log message to generate one or more tokens; Determining a similarity between the log message and one or more existing patterns through comparison of the token units; Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And classifying the log message into a new pattern in response to a determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold. can do.

일 측면에 따르면, 상기 로그 메시지는, 오류 메시지 및 경고 메시지 중 적어도 하나를 포함할 수 있다. According to one aspect, the log message may include at least one of an error message and a warning message.

일 측면에 따르면, 상기 로그 메시지는, 컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는 것일 수 있다. According to an aspect, the log message may be extracted from a log file that records message information generated according to execution of a program by a processor included in a computing device.

일 측면에 따르면, 상기 토큰을 생성하는 단계는, 상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니할 수 있다. According to an aspect, in the generating of the token, the log message may be segmented with the blank area included in the log message as a boundary, but the blank area included in the area separated by parentheses may not be segmented.

일 측면에 따르면, 상기 유사도를 결정하는 단계는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정할 수 있다. According to one aspect, the step of determining the similarity is determined based on the number of token changes to change to at least one of the log message and the one or more existing patterns from at least one of the log message and the one or more existing patterns. The distance to be edited can be determined as the similarity.

일 측면에 따르면, 상기 유사도를 결정하는 단계는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정할 수 있다. According to one aspect, the step of determining the similarity comprises the ratio of the number of tokens that match between the log message and the one or more existing patterns, and the number of tokens that do not match between the log message and the one or more existing patterns. The similarity may be determined based on.

일 측면에 따르면, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정될 수 있다. According to one aspect, the number of tokens included in the log message and the one or more existing patterns is different from each other, and the number of tokens that do not match is determined to have a high degree of similarity among the log message and the one or more existing patterns. It can be determined on the basis of.

일 측면에 따르면, 상기 유사도를 결정하는 단계는, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정할 수 있다. According to one aspect, the determining the similarity may determine the similarity by applying a weight greater than 1 to the tokens included in the predetermined weighted token list.

일 측면에 따르면, 상기 가중 토큰 목록은, 하나 이상의 구문 (syntax) 토큰을 포함할 수 있다. According to one aspect, the weighted token list may include one or more syntax tokens.

일 측면에 따르면, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 상기 제 1 값은 상기 제 2 값보다 작은 것일 수 있다. According to one aspect, the threshold value is responsive to a determination that the number of tokens included in the log message is less than a first predetermined number or the number of tokens included in the one or more existing patterns is less than a predetermined first number. With a first value, the threshold responds to the determination that the number of tokens included in the log message is greater than or equal to a first predetermined number, and that the number of tokens included in the one or more existing patterns is greater than or equal to a predetermined first number. Therefore, it has a second value, and the first value may be smaller than the second value.

일 측면에 따르면, 상기 임계치는, 상기 하나 이상의 기존 패턴별로 각각 설정될 수 있다. According to one aspect, the threshold may be set for each of the one or more existing patterns.

일 측면에 따르면, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다. According to an aspect, at least one of the one or more existing patterns or new patterns is a common token region that is a common part among a plurality of log messages classified in the same pattern and a plurality of log messages classified in the same pattern. It includes a variable token area that is a different part, and at least one of the one or more existing patterns or new patterns includes a plurality of sub patterns determined based on at least one of the position of the variable token area and the number of the variable token areas. It can contain.

일 측면에 따르면, 상기 프로그램의 실행은 사용자 스크립트 (script) 언어를 통해 수행될 수 있다. According to one aspect, the execution of the program may be performed through a user script language.

일 측면에 따르면, 상기 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함할 수 있다. According to an aspect, the user script language may include at least one of PHP, ASP, JSP, PYTHON, PERL or RUBY.

전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨팅 디바이스는, 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스로서, 상기 프로세서는, 로그 메시지를 획득하고; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하도록 구성될 수 있다. A computing device according to another embodiment of the present invention for solving the above-described problem is a computing device including a processor and a memory, wherein the processor acquires a log message; Segmenting the log message to generate one or more tokens; Determining the similarity between the log message and one or more existing patterns by comparing the tokens; Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And, in response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold, the log message may be configured to be classified into a new pattern. have.

일 측면에 따르면, 상기 로그 메시지는, 오류 메시지 및 경고 메시지 중 적어도 하나를 포함할 수 있다. According to one aspect, the log message may include at least one of an error message and a warning message.

일 측면에 따르면, 상기 로그 메시지는, 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출될 수 있다. According to one aspect, the log message may be extracted from a log file that records message information generated according to execution of a program by a processor.

일 측면에 따르면, 상기 토큰을 생성하는 것은, 상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니할 수 있다. According to one aspect, the generating of the token may segment the log message on the boundary of the blank area included in the log message, but may not segment the blank area included in the area separated by parentheses.

일 측면에 따르면, 상기 유사도를 결정하는 것은, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정할 수 있다. According to an aspect, determining the similarity is determined based on the number of token changes to change to at least one of the log message and the one or more existing patterns from at least one of the log message and the one or more existing patterns The edit distance can be determined as the similarity.

일 측면에 따르면, 상기 유사도를 결정하는 것은, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정할 수 있다. According to one aspect, determining the similarity is the ratio of the number of tokens that match between the log message and the one or more existing patterns, and the number of tokens that do not match between the log message and the one or more existing patterns. The similarity can be determined based on the criteria.

일 측면에 따르면, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정될 수 있다. According to one aspect, the number of tokens included in the log message and the one or more existing patterns is different from each other, and the number of tokens that do not match is determined to have a high degree of similarity among the log message and the one or more existing patterns. It can be determined on the basis of.

일 측면에 따르면, 상기 유사도를 결정하는 것은, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정할 수 있다. According to one aspect, determining the similarity may determine the similarity by applying a weight greater than 1 to the tokens included in the predetermined weighted token list.

일 측면에 따르면, 상기 가중 토큰 목록은, 하나 이상의 구문 (syntax) 토큰을 포함할 수 있다. According to one aspect, the weighted token list may include one or more syntax tokens.

일 측면에 따르면, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 상기 제 1 값은 상기 제 2 값보다 작은 것일 수 있다. According to one aspect, the threshold value is responsive to a determination that the number of tokens included in the log message is less than a first predetermined number or the number of tokens included in the one or more existing patterns is less than a predetermined first number. With a first value, the threshold responds to the determination that the number of tokens included in the log message is greater than or equal to a first predetermined number, and that the number of tokens included in the one or more existing patterns is greater than or equal to a predetermined first number. Therefore, it has a second value, and the first value may be smaller than the second value.

일 측면에 따르면, 상기 임계치는, 상기 하나 이상의 기존 패턴별로 각각 설정될 수 있다. According to one aspect, the threshold may be set for each of the one or more existing patterns.

일 측면에 따르면, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다. According to an aspect, at least one of the one or more existing patterns or new patterns is a common token region that is a common part among a plurality of log messages classified in the same pattern and a plurality of log messages classified in the same pattern. It includes a variable token area that is a different part, and at least one of the one or more existing patterns or new patterns includes a plurality of sub patterns determined based on at least one of the position of the variable token area and the number of the variable token areas. It can contain.

전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨터 판독 가능한 저장 매체는, 프로세서에 의해 실행 가능한 명령어들을 저장하고, 상기 프로세서에 의해 실행되었을 때 상기 명령어들은 상기 프로세서로 하여금, 로그 메시지를 획득하고; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하게 하도록 구성될 수 있다. A computer-readable storage medium according to another embodiment of the present invention for solving the above-described problem stores instructions executable by a processor, and when executed by the processor, the instructions cause the processor to generate a log message. To acquire; Segmenting the log message to generate one or more tokens; Determining the similarity between the log message and one or more existing patterns by comparing the tokens; Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold, the log message may be configured to be classified into a new pattern. Can.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since a specific embodiment does not mean that all of the following effects should be included or only the following effects are included, the scope of rights of the disclosed technology should not be understood as being limited thereby.

전술한 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법 및 컴퓨팅 디바이스에 따르면, 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있다. According to the method and the computing device for classifying the pattern of the log message according to the above-described embodiment of the present invention, it is possible to facilitate monitoring of the log message by classifying the log message according to the operation of the system based on similarity.

따라서, 소정의 유형에 따른 로그 메시지 패턴의 급격한 증가를 쉽게 검출할 수 있고, 시스템 운영상의 문제가 발생하였을 때 문제의 원인을 용이하게 파악할 수 있다. 또한, 미리 결정된 룰-기반의 패턴 분류를 이용하지 않으므로, 신규 발생 패턴에 대한 분류가 가능하고 새롭게 발생한 시스템 상의 문제를 초기에 발견하여 조치하도록 할 수 있다. Therefore, it is possible to easily detect a sudden increase in the log message pattern according to a certain type, and it is possible to easily identify the cause of the problem when a system operation problem occurs. In addition, since a predetermined rule-based pattern classification is not used, it is possible to classify a new generation pattern, and it is possible to detect problems on the newly generated system early and take action.

도 1 은 본 발명의 일 실시예에 따른 패턴 분류가 수행될 수 있는 환경의 예시도이다.
도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 나타내는 블록도이다.
도 3 은 로그 메시지의 일 예시이다.
도 4 는 로그 메시지의 다른 예시이다.
도 5 는 신규 발생 패턴의 예시이다.
도 6 은 관리중인 패턴의 예시이다.
도 7 은 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법의 흐름도이다.
도 8 은 로그 메시지 분절에 따른 토큰 생성의 개념도이다.
도 9 는 로그 메시지 유사도 결정의 개념도이다.
도 10 은 로그 메시지 유사도 결정의 예시이다.
도 11 은 로그 메시지 서브 패턴 분류를 위한 가변 영역 및 공통 영역의 개념도이다.
도 12 는 개별 로그 메시지, 패턴 및 서브 패턴의 예시도이다.
도 13 은 로그 메시지의 일반화 및 패턴 분류의 예시도이다.
도 14 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 개략적으로 나타낸다.
1 is an exemplary view of an environment in which pattern classification may be performed according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a computing device according to an embodiment of the present invention.
3 is an example of a log message.
4 is another example of a log message.
5 is an example of a new generation pattern.
6 is an example of a pattern being managed.
7 is a flowchart of a method of classifying a pattern of log messages according to an embodiment of the present invention.
8 is a conceptual diagram of token generation according to a log message segment.
9 is a conceptual diagram for determining a log message similarity.
10 is an example of determining a log message similarity.
11 is a conceptual diagram of a variable area and a common area for classifying log message subpatterns.
12 is an exemplary view of individual log messages, patterns, and sub-patterns.
13 is an exemplary diagram of generalization and pattern classification of log messages.
14 schematically shows a configuration of a computing device according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components. For example, the first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but there may be other components in between. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, and that one or more other features are present. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Does not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the overall understanding in describing the present invention, the same reference numerals are used for the same components in the drawings, and duplicate descriptions for the same components are omitted.

도 1 은 본 발명의 일 실시예에 따른 패턴 분류가 수행될 수 있는 환경의 예시도이다. 도 1 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류는 네트워크 (20) 를 통해 사용자의 단말들 (10-1, 10-2) 로 컴퓨터 프로그램의 실행에 따른 서비스를 제공할 수 있는 서버 시스템 (30) 에 대해서 적용될 수 있다. 서버 시스템 (30) 에서는 미리 준비된 명령어들에 따른 프로그램이 실행되고, 서비스의 이용자들은 각자의 단말 (10-1, 10-1) 을 이용하여 네트워크 (20) 를 통해 서버 시스템 (30) 에 접속하는 것을 통해 서버 시스템 (30) 이 제공하는 서비스를 이용할 수 있다. 서비스는 예를 들어 "온라인 쇼핑몰"일 수 있고, 사용자는 예를 들어 개인용 컴퓨터 또는 휴대용 스마트 디바이스와 같은 단말을 통해 서버 시스템이 제공하는 온라인 쇼핑몰에서 제품을 구매하는 서비스를 제공받을 수 있다. 1 is an exemplary view of an environment in which pattern classification may be performed according to an embodiment of the present invention. As illustrated in FIG. 1, pattern classification of a log message according to an embodiment of the present invention provides services according to the execution of a computer program to user terminals 10-1 and 10-2 of the user through the network 20. It can be applied to the server system 30 that can provide. In the server system 30, a program according to instructions prepared in advance is executed, and users of the service connect to the server system 30 through the network 20 using their respective terminals 10-1 and 10-1. Through this, the service provided by the server system 30 can be used. The service may be, for example, an “online shopping mall”, and a user may be provided with a service for purchasing a product in an online shopping mall provided by a server system, for example, through a terminal such as a personal computer or portable smart device.

여기서, 서버 시스템 (30) 은 서비스를 제공하기 위한 프로그램을 실행함에 따른 시스템 운영 상의 발생 오류, 경고 사항들을 포함하는 주요 파일을 로그 데이터로서 저장할 수 있다. 로그 데이터는 "로그 파일"의 형태로 저장할 수 있다. 로그 데이터는 시스템의 운영상 발생하는 정보들을 기록하고 있는 것으로, 서비스 상의 문제 점검이나 운영 통계등을 위해 사용될 수 있다. 예를 들어, 프로그램이 PHP (Personal Home Page Tools, PHP-Hypertext Preprocessor) 를 기반으로 하는 경우, PHP 에러 (프로그램 실행 중 발생하는 에러) 를 기록한 로그 파일 엔트리 일부가 로그 데이터에 포함될 수 있다. 로그 데이터는, 예를 들어 네트워크 로그, 데이터베이스 로그, 사용자 접속 로그, 명령어 실행 로그, 시스템 변경로그 중 적어도 하나를 포함할 수 있다. Here, the server system 30 may store, as log data, a main file including occurrence errors and warnings in system operation as a result of executing a program for providing a service. The log data can be saved in the form of a "log file". The log data records information that occurs during the operation of the system, and can be used for service problem checking or operation statistics. For example, if the program is based on PHP (Personal Home Page Tools, PHP-Hypertext Preprocessor), some log file entries that record PHP errors (errors occurring during program execution) may be included in the log data. The log data may include at least one of a network log, a database log, a user access log, a command execution log, and a system change log, for example.

도 3 은 로그 메시지의 일 예시이다. 도 3 에 도시된 바와 같이, 로그 메시지는 시스템 운영에 따른 다양한 상황에 대한 정보를 포함할 수 있고, 예를 들어 실행시간이 과다하게 오래 걸리는 경우 (3a), 시스템에 가용한 메모리가 부족한 경우 (3b) 와 같은 상황과, 그러한 상황이 발생하게 된 파일 (3c) 에 대한 정보를 포함할 수 있다. 3 is an example of a log message. As shown in FIG. 3, the log message may include information on various situations according to system operation, for example, when the execution time is excessively long (3a), when the system has insufficient memory available ( 3b) and the file 3c in which the situation occurred.

한편, 시스템의 안정적인 운영을 위해서는 로그 데이터를 상시 감시해야한다. 그러나, 전술한 바와 같이, 나날이 발전하는 IT 기술 및 다양한 어플리케이션의 등장으로, 소정의 시스템을 운영함에 있어서 프로그램의 실행에 의해 발생되는 로그 데이터는 기하 급수적으로 증가되고 있는 실정이다. 특정 시스템의 경우 일별 70만 내지 90만 건까지도 에러 메시지가 발생하고 있으므로, 이와 같이 증가된 로그 데이터를 사용자가 전부 모니터링하는 것은 불가능에 가까워지고 있어, 이를 효과적으로 관리할 수 있는 방법이 요구되고 있다. Meanwhile, log data must be monitored at all times for stable operation of the system. However, as described above, with the advent of IT technology and various applications that develop day by day, the log data generated by the execution of a program in operating a predetermined system is increasing exponentially. In the case of a specific system, since 700,000 to 900,000 errors are generated per day, it is becoming impossible for a user to monitor all the increased log data, and a method for effectively managing this is required.

도 4 는 로그 메시지의 다른 예시이다. 도 4 에 도시된 바와 같이, 복수의 로그 메시지들 중, "메모리 부족" 유형에 해당하는 메시지 (4a) 가 많은 수를 차지하는 경우가 발생할 수 있다. 이처럼, 복수의 메시지들 중 많이 발생하는 유형의 메시지가 메모리 부족에 관련된 메시지라는 사실을 알게 되면, 시스템의 실행을 위해 사용되고 있는 메모리를 점검 또는 확장하는 조치를 수행하여, 서비스를 제공하는 시스템을 신속하게 개선할 수 있는 장점이 있다. 4 is another example of a log message. As illustrated in FIG. 4, among a plurality of log messages, a case in which the message 4a corresponding to the “out of memory” type occupies a large number may occur. As described above, when it is found that a message of a type that occurs frequently among a plurality of messages is a message related to insufficient memory, the system providing the service is quickly performed by checking or expanding the memory being used for the execution of the system. There is an advantage that can be improved.

즉, 로그 메시지에 대해서는 로그 메시지의 전체 건수를 확인하는 것 이외에, 로그 메시지의 유형 별 관리가 매우 중요하다. 따라서, 어떠한 유형의 오류가 발생하고 있는지, 또는 예전에 없던 새로운 유형의 오류가 발생하였는지, 또는 유형 별 발생 건수가 급증 한 건이 있는지 여부를 파악하는 것이 필요하다. 로그 메시지는 이산적 또는 연속적으로 생성될 수 있으며, 생성되는 로그 메시지에 대한 분류는 예를 들어 속성을 기반으로 이루어질 수도 있다. 로그 메시지에 대한 통계, 즉 개수의 통계를 기반으로 대략적인 시스템 운영 원활성을 파악할 수 있고, 어떤 유저가, 어떤 프로그램을 사용할 때, 어떤 OS 를 사용하는지, 또는 어떤 브라우저를 사용하는지, 또는 어떤 디바이스를 사용하고 있는지 여부가 각각 분류되어 집계되면, 시스템 운영에 따른 문제 발생 여부를 용이하게 검출할 수 있는 것은 물론 발생된 문제의 원인이 무엇인지 여부까지도 쉽게 파악할 수 있다. 예를 들어, 특정 스마트 디바이스의 O/S 에 대한 업그레이드가 수행될 때 업그레이드된 O/S 에 시스템 운영에 장애를 일으키는 요소가 포함되어 있을 수 있다. 이 때 로그 메시지를 유형별로 분류하여 모니터링하게 되면, 특정 디바이스에 대한 로그 메시지가 신규 유형으로 분류되거나, 해당 유형의 로그 메시지가 급격히 증가하는 것을 감지하는 것에 의해 문제 발생을 검출할 수 있으며, 해당 문제가 특정 디바이스에 연관된 것임을 알 수 있으므로 문제의 원인은 특정 디바이스의 O/S 업그레이드에 따른 것 역시 용이하게 파악할 수 있게 된다. That is, in addition to checking the total number of log messages for log messages, it is very important to manage each log message type. Therefore, it is necessary to find out what type of error is occurring, whether a new type of error that has never existed, or whether there has been a rapid increase in the number of occurrences by type. Log messages may be generated discretely or continuously, and classification of the generated log messages may be performed based on, for example, attributes. Based on the statistics of log messages, that is, the number of statistics, it is possible to determine the approximate smoothness of system operation, which user, which program, which OS, or browser, or device If each is classified and counted, it is possible to easily detect whether a problem occurs due to system operation, as well as to easily determine whether the cause of the problem occurs. For example, when an upgrade to O/S of a specific smart device is performed, the upgraded O/S may include an element that causes a system operation failure. At this time, if the log messages are classified and monitored by type, the occurrence of a problem can be detected by detecting that the log message for a specific device is classified as a new type or that the log message of the corresponding type increases rapidly. Since it can be seen that is related to a specific device, the cause of the problem can be easily grasped by the O/S upgrade of the specific device.

이를 위해서는, 특정 유형의 메시지가 새롭운 유형으로 분류되어 나타나는지, 또는 특정 유형의 메시지가 급격하게 증가하고 있는지 여부 등에 대한 모니터링이 필요하며, 이러한 시스템의 모니터링은 로그 메시지의 유형에 따른 분류가 선행되어야 한다. 즉, 로그 메시지의 유형에 따른 시스템 모니터링을 수행하기 위해서는 수많은 로그 메시지들에 대한 유형 (이하, '패턴'이라고도 지칭될 수 있음) 의 분류가 필요하다. To this end, it is necessary to monitor whether a specific type of message is classified as a new type, or whether a specific type of message is rapidly increasing, and the monitoring of such a system must be classified according to the type of log message. do. That is, in order to perform system monitoring according to the type of log message, it is necessary to classify a number of log messages (hereinafter, also referred to as a'pattern').

관련하여, 로그 메시지의 유형을 분류하기 위한 방법으로서 "규칙 기반 (Rule Based)" 분류가 고려될 수 있다. 로그 메시지의 패턴을 분류하기 위해, 사전에 분류 체계와 규칙을 지정하여, 이를 기반으로 로그 메시지의 패턴을 분류할 수 있다. 규칙 기반 분류의 예시는 아래와 같다. In relation to this, "Rule Based" classification may be considered as a method for classifying the type of log message. In order to classify the pattern of log messages, the classification system and rules can be specified in advance to classify the pattern of log messages. Examples of rule-based classification are as follows.

유형 1 : Allowed Memory Size of (?????) bytes exhausted (tried to Allocate (?????) bytes)Type 1: Allowed Memory Size of (?????) bytes exhausted (tried to Allocate (?????) bytes)

유형 2 : Maximum Execution Time of (??) seconds exceeded …. In (????) on (????)Type 2: Maximum Execution Time of (??) seconds exceeded… . In (????) on (????)

즉, 유형 1 또는 유형 2 와 같이, 각각의 유형에서 변동될 수 있는 부분은 (????) 과 같이 제외하고, 특정 로그 메시지가 유형 1 또는 유형 2 와 나머지 부분들이 일치할 경우 해당 특정 로그 메시지를 해당 유형으로 분류하도록 할 수 있다. 그러나, 이러한 규칙 기반의 유형 분류는, 패턴 분류에 전문적인 지식이 필요할 뿐만 아니라, 새로운 패턴이 발생할 때 패턴을 파악하지 못하는 문제가 있다. 따라서, 새로운 패턴에 대한 모니터링에 실패하고 사후 보완이 필요하게 된다. 또한, 규칙 기반의 분류는 인위적인 패턴 분류로 인한 자의성을 가지기 때문에 정확한 현실을 반영하지 못할 수 있다. 또한 규칙 기반의 패턴 분류는 지속적인 개선과 검증이 필요한 방식이나, 일별 90~100만건의 데이터, 또한 100 여종의 자료들을 가지는 대규모의 시스템에서 이와 같은 유지 및 관리는 어려운 문제점이 있다. That is, if a specific log message matches type 1 or type 2 and the rest of the part, except for parts that can be changed in each type, such as type 1 or type 2 (????), the specific log message. Can be classified into the corresponding type. However, this rule-based type classification requires not only expert knowledge in pattern classification, but also has a problem of not being able to grasp the pattern when a new pattern occurs. Therefore, monitoring of the new pattern fails and post-compensation is required. In addition, the rule-based classification may not reflect the exact reality because it has an autonomy due to artificial pattern classification. In addition, the rule-based pattern classification requires continuous improvement and verification, but it is difficult to maintain and manage such a system in a large-scale system having 90 to 1 million data per day and more than 100 kinds of data.

또한, 무엇보다고 규칙 기반의 유형 분류는 시스템 운영상의 문제라기보다는 오히려 시스템 설계 상의 검증에 그칠 가능성이 높다. 즉, 미리 규칙을 정해 놓는 행위 자체가 시스템의 설계 영역에 해당하는 것일 수 있으며, 이미 알고 있는 문제 이외에 새롭게 발생하는 문제에 대해서는 전혀 대비할 수 없는 문제점이 있다. Also, above all, rule-based classification is more likely to be a system design verification rather than a system operation problem. That is, the act of setting a rule in advance may correspond to the design area of the system, and there is a problem that cannot be prepared at all for newly occurring problems in addition to the problems already known.

관련하여, 도 5 는 신규 발생 패턴의 예시이고, 도 6 은 관리중인 패턴의 예시이다. 규칙 기반의 유형 분류에 따를 경우, 도 6 에 도시된 바와 같은 이미 관리하고 있는 분류가 완료된 유형의 로그 메시지의 패턴에 대해서는 검출 및 분류가 가능하지만, 도 5 에 도시된 바와 같은 신규로 발생한 패턴, 즉 기 분류된 유형 중 매칭되는 유형이 없는 로그 메시지의 경우에는 패턴 분류가 불가능한 문제가 있다. In connection, FIG. 5 is an example of a new generation pattern, and FIG. 6 is an example of a pattern being managed. According to the rule-based type classification, the pattern of the log message of the type that has already been managed as shown in FIG. 6 can be detected and classified, but a newly generated pattern as shown in FIG. 5, That is, in the case of a log message that does not have a matching type among the previously classified types, there is a problem that pattern classification is impossible.

본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류는, 상기와 같은 문제점을 해결하기 위한 것으로서, 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 하는 것을 일 목적으로 한다. 본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류 방법에 따르면, 자동으로 로그 메시지의 패턴을 찾아서 메시지를 분류할 수 있다. 따라서 종래 정의하지 아니한 유형의 패턴에 대해서도 패턴 분류가 가능하고, 패턴 별 로그 메시지의 모니터링 및 신규 패턴의 발생에 대한 모니터링 역시 가능하다. The pattern classification of the log message according to an embodiment of the present invention is to solve the above problems, and facilitates monitoring of the log message by classifying the log message according to the operation of the system based on similarity. The purpose. According to the pattern classification method of the log message according to an embodiment of the present invention, the message can be classified by automatically finding the pattern of the log message. Therefore, pattern classification is possible for patterns that are not previously defined, and it is also possible to monitor log messages for each pattern and to monitor the occurrence of new patterns.

이와 같은 패턴 분류 방법에 있어서는, 사전에 정해진 입력 없이 스스로 분류 패턴을 발견할 수 있어야 하고, 다양한 종류의 로그 메시지 분석이 가능해야 한다. 로그 메시지는 컴퓨터에서 생성된 정형 메시지를 포함할 수 있다. 또한, 실시간 (예를 들어, 초당 1,000 건 이상) 의 분류가 가능해야 하고, 자원 (메모리, CPU) 요구 사항이 패턴 개수에만 비례 (cf. 처리하는 데이터의 건수에 비례) 하는 것이 바람직하다. 또한, 사용자는 최소한의 파라미터 만을 지정하며, 이 파라미터는 데이터의 종류에 관계없이 공통적으로 적용이 가능하도록 하는 것이 바람직하다. In such a pattern classification method, it should be possible to find a classification pattern by itself without a predetermined input, and it should be possible to analyze various types of log messages. The log message may include a structured message generated by a computer. In addition, real-time (for example, more than 1,000 per second) classification should be possible, and it is desirable that resource (memory, CPU) requirements are proportional to the number of patterns (cf. proportional to the number of data to be processed). In addition, the user only designates the minimum parameter, and it is desirable to make this parameter applicable in common regardless of the type of data.

로그 메시지의 패턴 분류 방법How to classify log messages

도 7 은 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법의 흐름도이다. 도 7 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법은, 로그 메시지를 획득 (단계 710) 하여, 이를 분절 함으로써 적어도 하나 이상의 토큰을 생성 (단계 720) 하고, 로그 메시지와 기존 패턴의 유사도를 결정 (단계 730) 한 뒤, 유사도가 임계치 이상이면 기존 패턴으로 분류 (단계 740) 하고, 유사도가 임계치 미만이면 신규 패턴으로 분류 (단계 750) 할 수 있다. 7 is a flowchart of a method of classifying a pattern of log messages according to an embodiment of the present invention. As shown in FIG. 7, in the method of classifying a pattern of log messages according to an embodiment of the present invention, a log message is obtained (step 710), and at least one token is generated by segmenting it (step 720). After determining the similarity between the log message and the existing pattern (step 730), if the similarity is greater than or equal to the threshold, it can be classified as an existing pattern (step 740), and if the similarity is less than the threshold, it can be classified as a new pattern (step 750).

이하, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법을 도 2 및 도 7 을 참조하여 보다 구체적으로 설명한다. Hereinafter, a method of classifying a log message pattern according to an embodiment of the present invention will be described in more detail with reference to FIGS. 2 and 7.

도 7 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법은 먼저 로그 메시지를 획득한다 (단계 710). 로그 메시지는 예를 들어 네트워크를 통해 하나 이상의 단말로 서비스를 제공하도록 구성된 시스템에서 프로그램을 실행함에 따라 발생되는 메시지들을 포함할 수 있다. 일 측면에 따르면, 시스템은 복수의 서버들을 포함할 수도 있고, 복수의 서버가 포함되는 경우 적어도 하나의 서버에서 프로그램이 실행될 수 있다. 도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 나타내는 블록도이다. 일 측면에 따르면, 상기 프로그램이 실행될 수 있는 서버는 컴퓨팅 디바이스에 의해 구현될 수 있다. 예를 들어, 로그 메시지는 도 2 의 컴퓨팅 디바이스 (30) 의 프로세서 (200) 상에서 실행되는 프로그램에 의해 발생될 수 있고, 발생된 로그 메시지는 로그 파일 저장부 (110) 에 저장될 수 있다. 따라서, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법에서, 로그 메시지는 예를 들어 로그 파일 저장부 (110) 와 같은 메모리 장치로부터 획득될 수 있다. 또는, 로그 메시지는, 컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출될 수 있다. As illustrated in FIG. 7, a method of classifying a log message pattern according to an embodiment of the present invention first acquires a log message (step 710). The log message may include, for example, messages generated by executing a program in a system configured to provide a service to one or more terminals through a network. According to one aspect, the system may include a plurality of servers, and when a plurality of servers are included, a program may be executed on at least one server. 2 is a block diagram showing the configuration of a computing device according to an embodiment of the present invention. According to one aspect, a server on which the program can be executed may be implemented by a computing device. For example, the log message may be generated by a program executed on the processor 200 of the computing device 30 of FIG. 2, and the generated log message may be stored in the log file storage unit 110. Accordingly, in the method of classifying the pattern of the log message according to an embodiment of the present invention, the log message may be obtained from a memory device, such as the log file storage unit 110, for example. Alternatively, the log message may be extracted from a log file that records message information generated according to execution of a program by a processor included in the computing device.

다시 도 7 을 참조하면, 획득된 로그 메시지들을 분절하여 하나 이상의 토큰을 생성할 수 있다 (단계 720). 도 8 은 로그 메시지 분절에 따른 토큰 생성의 개념도이다. 도 8 에 도시된 바와 같이, 토큰은 예를 들어 의미를 가질 수 있는 최소 요소일 수 있다. 일 측면에 따르면 하나의 토큰은 단어일 수도 있다. 도 8 에 예시적으로 도시된 바와 같이, 하나의 로그 메시지는 복수의 경계를 가지고 분절되어 복수의 토큰을 형성할 수 있고, 예를 들어, 경계 (820) 을 기준으로 토큰 (810-1) 및 (810-2) 로 구분될 수 있다. Referring to FIG. 7 again, one or more tokens may be generated by segmenting the acquired log messages (step 720). 8 is a conceptual diagram of token generation according to a log message segment. As shown in FIG. 8, the token may be, for example, a minimum element that may have meaning. According to one aspect, a token may be a word. As exemplarily illustrated in FIG. 8, one log message may be segmented with a plurality of boundaries to form a plurality of tokens, for example, tokens 810-1 based on the boundary 820 and (810-2).

로그 메시지를 분할하여 토큰을 생성함에 있어, 본 발명의 일 측면에 따르면 로그 메시지에 포함된 공백 영역을 경계로 로그 메시지를 분절할 수 있으며, 또한 일 측면에 따르면 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하도록 할 수 있다. 여기서, 괄호는 대괄호, 중괄호 및 소괄호 중 적어도 하나를 의미할 수 있다. 이 때, 공백 없는 단어 내에 괄호가 완결된 경우에는 괄호 여부와 상관 없이 공백 영역에 의해 토큰이 분절되도록 할 수도 있다. 이와 같은 로그 메시지의 분절 규칙에 따라 로그 메시지는 복수의 토큰으로 분절될 수 있다. 이외에도, 패턴 분류의 목적에 맞도록 로그 메시지에 대한 추가적인 사전 처리 절차를 수행할 수 있다. In generating a token by dividing a log message, according to an aspect of the present invention, a log message may be segmented around a blank area included in the log message, and according to an aspect, the blank included in a region separated by parentheses may be used. Zones can be made not to be segmented. Here, the parenthesis may mean at least one of brackets, braces, and parentheses. At this time, if the parenthesis is completed within a word without spaces, the token may be segmented by the blank area regardless of whether or not the parentheses are present. According to the segmentation rule of the log message, the log message may be segmented into a plurality of tokens. In addition, an additional pre-processing procedure for log messages may be performed to meet the purpose of pattern classification.

다시 도 7 을 참조하면, 로그 메시지의 분절을 통해 생성된 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 각각 결정할 수 있다 (단계 730). 이전에 분류된 하나 이상의 기존 패턴들 역시 각각 분절되어 복수의 토큰을 가지고 있으므로, 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지는 양자 모두 복수의 토큰을 포함하고 있으며, 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지를 토큰 단위로 비교하여 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지의 유사도를 결정할 수 있다. 복수의 기존 패턴들에 대해서는 각각 현재 분류 대상인 로그 메시지와의 유사도를 결정하고, 가장 유사도가 높은 기존 패턴과 현재 분류 대상인 로그 메시지와의 유사도를 결정할 수 있다. Referring back to FIG. 7, the similarity between the log message and one or more existing patterns may be determined through comparison of token units generated through segmentation of the log message (step 730 ). Since one or more existing patterns previously classified are also segmented and each has a plurality of tokens, both one of the existing patterns and the log message that is the current classification target include a plurality of tokens, and one of the existing patterns and the log that is the current classification target By comparing messages in units of tokens, it is possible to determine the similarity between one of the existing patterns and the log message currently being classified. For a plurality of existing patterns, it is possible to determine similarity between a log message that is the current classification target, and a similarity between a log message that is the current classification target and an existing pattern having the highest similarity.

유사도의 결정은, 토큰 단위의 비교를 기반으로 하되 다양한 기준이 적용될 수 있다. 도 9 는 로그 메시지 유사도 결정의 개념도이다. 도 9 에 도시된 바와 같이, 예를 들어 제 1 로그 메시지 (910) 와 제 2 로그 메시지 (920) 를 예로 들어, 로그 메시지 간의 비교 혹은 로그 메시지와 패턴 (여기서 패턴은 이미 분류된 로그 메시지일 수 있음) 간의 비교를 통산 유사도 산출이 설명될 수 있다. The determination of similarity is based on the comparison of token units, but various criteria can be applied. 9 is a conceptual diagram for determining a log message similarity. As illustrated in FIG. 9, for example, for example, the first log message 910 and the second log message 920, for example, comparison between log messages or log messages and patterns (where pattern may be log messages that have already been classified). Comparison) can be explained by calculating the similarity between them.

일 측면에 따르면, 유사도를 결정하는 것은, 로그 메시지 및 하나 이상의 기존 패턴 중 적어도 하나로부터, 로그 메시지 및 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 유사도로서 결정할 수 있다. 도 9 를 예시로서 설명하면, 제 1 로그 메시지 (910) 를 제 2 로그 메시지 (920) 로 변경하기 위해서는, 변경 부분 (930) 에 나타난 바와 같이 제 1 로그 메시지 (910) 에서 제 1 부분 (931) 인 'an' 을 삭제하고, 제 2 로그 메시지 (920) 에서 제 2 부분 (933) 인 'another' 를 추가하는 변경이 수행되어야 한다. 따라서, 변경 거리는 2 회의 변경을 거쳤으므로 2 로서 결정될 수 있고, 다른 측면에 따르면 변경 거리는 변경 회수의 절반인 1 로서 결정될 수도 있다. According to one aspect, determining the similarity is based on the number of token changes to change from at least one of the log message and one or more existing patterns to another of the log message and one or more existing patterns (Edit distance) ) Can be determined as similarity. Referring to FIG. 9 as an example, in order to change the first log message 910 to the second log message 920, the first part 931 in the first log message 910 as shown in the change part 930 ), and the change to add the second part 933'another' in the second log message 920 should be performed. Therefore, the change distance may be determined as 2 since it has been changed twice, and according to another aspect, the change distance may be determined as 1, which is half the number of changes.

또한 일 측면에 따르면, 유사도를 결정하는 것은, 로그 메시지 및 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 로그 메시지 및 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 유사도를 결정할 수 있다. 도 9 를 예시로서 설명하면, 제 1 로그 메시지 (910) 와 제 2 로그 메시지 (920) 사이에서 일치하는 토큰은 'This', 'is', 및 'Error' 로서 3 개이며, 상이한 토큰은 각자 'an' 또는 'another' 로서 1 개이므로, 이러한 비율을 기준으로 유사도가 결정될 수 있다. 예를 들어, 도 9 에서는 단순한 산술적 계산을 통해 유사도는 3/4, 즉 0.75 로서 산정될 수 있다. Also, according to one aspect, determining the similarity is based on the ratio of the number of tokens that match between the log message and one or more existing patterns, and the number of tokens that do not match between the log message and the one or more existing patterns. Can decide. Referring to FIG. 9 as an example, there are three matching tokens between the first log message 910 and the second log message 920 as'This','is', and'Error', and different tokens are respectively Since it is one as'an' or'another', similarity can be determined based on this ratio. For example, in FIG. 9, the similarity may be calculated as 3/4, that is, 0.75 through simple arithmetic calculation.

한편, 로그 메시지 및 기존 패턴과의 비교에 있어서 양자가 포함하고 있는 토큰의 개수가 상이할 수 있고, 일치하지 않는 토큰에 대한 개수 산정이 문제될 수 있다. 즉, 예를 들어 로그 메시지에는 일치하지 않는 토큰이 3 개, 기존 패턴에는 일치하지 않는 토큰이 1 개 존재할 때, 일치하지 않는 토큰의 개수는 3 개로 결정되거나, 또는 1 개로 결정될 수 있다. 이는 유사도 결정의 민감도 레벨에 따라 사용자가 달리 설정하도록 할 수도 있다. On the other hand, in the comparison with the log message and the existing pattern, the number of tokens included by both may be different, and the calculation of the number of tokens that do not match may be problematic. That is, for example, when there are three non-matching tokens in the log message and one non-matching token in the existing pattern, the number of non-matching tokens may be determined as three or one. This may allow the user to set differently according to the sensitivity level of the similarity determination.

일 측면에 따르면, 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 일치하지 않는 토큰의 개수는, 로그 메시지 및 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정하도록 할 수도 있다. 따라서, 상기 예시에서 일치하지 않는 토큰의 개수가 1 개로 결정될 수도 있다. According to one aspect, the number of tokens included in the log message and the one or more existing patterns is different from each other, and the number of tokens that do not match is determined based on the one having a higher similarity among the log message and the one or more existing patterns. You can do it. Therefore, in the above example, the number of tokens that do not match may be determined as one.

도 10 은 로그 메시지 유사도 결정의 예시이다. 도 10 에 도시된 바와 같은 예시적인 로그 메시지는, 도 9 에서 예시된 "This is an error." 라는 로그 메시지와의 관계에서 산출된 유사도를 예시하고 있다. "This is another error."의 로그 메시지 (10a) 는 일치 토큰 3 개, 일치하지 않는 토큰이 1 개이므로 예를 들어 유사도는 0.75 로 결정될 수 있다. "System reported a critical error." 의 로그 메시지 (10b) 는 일치 토큰 1 개, 일치하지 않는 토큰이 3 개이므로 예를 들어 유사도는 0.25 로 결정될 수 있다. "Memory error occurred in line 5."의 로그 메시지 (10c) 는 일치 토큰 1 개, 일치하지 않는 토큰이 3 개이므로, 예를 들어 유사도는 0.25 로 결정될 수 있다. "Cannot connect to target system."의 로그 메시지 (10d) 는 일치 토큰이 없고 일치하지 않는 토큰이 4 개이므로, 예를 들어 유사도는 0 으로 결정될 수 있다. 10 is an example of determining a log message similarity. An exemplary log message as shown in FIG. 10 is "This is an error." Is illustrated the similarity calculated from the relationship with the log message. Since the log message 10a of "This is another error." has 3 matching tokens and 1 non-matching token, the similarity may be determined, for example, as 0.75. "System reported a critical error." Since the log message 10b of 1 has 1 matching token and 3 non-matching tokens, the similarity may be determined as 0.25, for example. Since the log message 10c of "Memory error occurred in line 5." has 1 matching token and 3 non-matching tokens, for example, the similarity may be determined as 0.25. Since the log message 10d of "Cannot connect to target system." does not have a matching token and there are 4 tokens that do not match, for example, the similarity may be determined as 0.

본 발명의 일 측면에 따르면, 유사도의 결정에 있어서, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해서는 1 초과의 가중치를 적용하여 유사도를 결정하도록 할 수 있다. 즉, 유사도를 선정함에 있어서 더 중요한 의미를 포함하는 토큰에 대해서는 유사도에 더 높게 반영되도록 할 수 있다. 예를 들어, 가중 토큰 목록에는 하나 이상의 구문 (syntax) 토큰이 포함될 수 있고, 구문 토큰은 프로그램에서 에러를 지시하기 위해 미리 지정된 구문을 포함하는 토큰일 수 있다. 일 측면에 따르면, 구문 토큰에는 예를 들어 1.2 의 가중치를 적용할 수 있고, 둘 이상의 로그 메시지를 비교함에 있어서 일치하는 토큰이 2 개의 구문 토큰일 경우, 일치하는 토큰의 개수는 2.4 로 계산될 수 있다. 따라서, 일치하는 토큰이 가중 토큰 목록에 포함되지 않은 토큰일 때에 비해 유사도가 더 크게 계산될 수 있다. According to an aspect of the present invention, in determining the similarity, it is possible to determine the similarity by applying a weight greater than 1 to the tokens included in the predetermined weighted token list. That is, in selecting a similarity, tokens containing a more important meaning can be reflected higher in the similarity. For example, the list of weighted tokens may include one or more syntax tokens, and the syntax tokens may be tokens that include predefined syntax to indicate an error in a program. According to an aspect, for example, a weight of 1.2 may be applied to a syntax token, and when comparing two or more log messages, when the matching token is two syntax tokens, the number of matching tokens may be calculated as 2.4. have. Therefore, the similarity can be calculated larger than when the matching token is a token not included in the weighted token list.

다시 도 7 을 참조하면, 결정된 유사도를 기반으로, 기존 패턴 중 현재 분류 대상인 로그 메시지와의 관계에서 가장 유사도가 높은 패턴의 유사도 계산 값을 이용하여, 가장 유사도가 높은 패턴의 유사도가 임계값보다 높으면 현재 분류 대상인 로그 메시지를 가장 유사도가 높은 패턴으로 분류할 수 있고 (단계 740), 가장 유사도가 높은 패턴의 유사도가 임계값보다 작으면 현재 분류 대상인 로그 메시지를 신규 패턴으로 분류 (단계 750) 할 수 있다. Referring back to FIG. 7, based on the determined similarity, if the similarity of the pattern with the highest similarity is higher than the threshold value using the similarity calculation value of the pattern with the highest similarity in the relationship with the log message that is the current classification target among the existing patterns The log message, which is the current classification target, can be classified into the pattern having the highest similarity (step 740), and if the similarity of the pattern having the highest similarity is less than the threshold, the log message that is the current classification target can be classified into the new pattern (step 750). have.

즉, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 로그 메시지를 제 1 패턴으로 분류 (단계 740) 할 수 있으며, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 로그 메시지를 신규 패턴으로 분류할 수 있다 (단계 750). That is, in response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold, the log message can be classified into the first pattern (step 740). In response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold, the log message may be classified as a new pattern (step 750). .

여기서, 패턴 분류를 위한 임계값은 시스템 관리자의 설정에 따라 변경되어 분류의 민감도를 조정하도록 할 수 있다. 임계값을 증가시킬수록, 동일 패턴으로 분류되는 로그 메시지들이 유사한 성질을 가질 가능성이 높아지고, 해당 패턴이 나타내는 로그 메시지의 속성을 더 정확하게 대표하도록 할 수 있으나, 패턴의 종류가 많아지게 되어 관리가 다소 어려울 수도 있다. 반면에, 임계값을 감소시킬수록, 패턴의 유형이 감소하게 되어 관리에 이점이 있고 처리를 위한 리소스도 적게 요구되는 장점이 있으나, 동일 패턴으로 분류된 로그 메시지 간에도 상이한 성질을 가질 수도 있다. 임계값의 설정은 처리하게 되는 시스템의 특성 또는 처리 기간과 같이, 조건에 따라 적응적으로 변경될 수도 있다. 예시적인 유사도의 임계값은 0.7일 수 있으며, 0.7 을 기준으로 임계값 이상 또는 초과의 경우, 임계값 이하 또는 미만의 경우로 패턴 분류 여부를 결정할 수도 있다. Here, the threshold for pattern classification may be changed according to the setting of the system administrator to adjust the sensitivity of the classification. As the threshold value is increased, the likelihood that log messages classified in the same pattern have similar properties is increased, and it is possible to more accurately represent the properties of the log message indicated by the pattern, but the number of types of patterns increases, so management is somewhat It can be difficult. On the other hand, as the threshold value is reduced, the pattern type is reduced, which is advantageous in management and requires less resources for processing. However, log messages classified in the same pattern may have different properties. The setting of the threshold may be adaptively changed depending on conditions, such as a characteristic of a system to be processed or a processing period. The threshold of exemplary similarity may be 0.7, and it may be determined whether to classify the pattern in the case of above or above the threshold and below or below the threshold based on 0.7.

한편, 로그 메시지에 포함된 토큰의 개수에 따라, 임계값이 상이하게 적용되도록 할 수 있다. 로그 메시지에 포함된 토큰의 수가 지나치게 작을 경우, 동일 토큰 또는 동일하지 않은 토큰의 개수에 상당히 민감하게 유사도가 변동될 수 있다. 따라서, 일 측면에 따르면 로그 메시지에 포함된 토큰의 개수가 미리 결정한 개수 미만일 경우에는, 토큰의 개수가 미리 결정한 개수 이상일 때와 임계값을 다르게 설정할 수 있다. Meanwhile, depending on the number of tokens included in the log message, the threshold may be applied differently. If the number of tokens included in the log message is too small, the similarity may fluctuate quite sensitively to the number of identical or non-identical tokens. Therefore, according to one aspect, when the number of tokens included in the log message is less than the predetermined number, the threshold may be set differently than when the number of tokens is greater than or equal to the predetermined number.

예를 들어, 임계치는, 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 임계치는, 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 제 1 값과 제 2 값은 상이하게 설정될 수 있다. 일 측면에 따르면, 제 1 값은 제 2 값보다 작을 수 있다. For example, the threshold value is a first value in response to determining that the number of tokens included in the log message is less than a first predetermined number or the number of tokens included in the one or more existing patterns is less than a first predetermined number. The threshold has a second value in response to the determination that the number of tokens included in the log message is greater than or equal to the first predetermined number and the number of tokens included in one or more existing patterns is greater than or equal to the first predetermined number. , The first value and the second value may be set differently. According to one aspect, the first value may be less than the second value.

일 측면에 따라, 미리 결정한 개수 미만 (또는 이하) 인지 여부는 비교 대상인 로그 메시지 및/또는 패턴 중 적어도 하나에 포함된 토큰이 미리 결정한 개수 미만 (또는 이하) 인 경우로 설정하고, 미리 결정한 개수 이상 (또는 초과) 인지 여부는 비교 대상인 로그 메시지 및 패턴에 포함된 토큰이 미리 결정한 개수 이상 (또는 초과) 인지 여부로 결정할 수 있다. According to an aspect, whether or not the predetermined number is less than (or less) is set to a case in which the tokens included in at least one of the log messages and/or patterns to be compared are less than (or less) the predetermined number, and a predetermined number or more Whether or not it is (or exceeded) may be determined as whether the tokens included in the log message and pattern to be compared are greater than or equal to (or exceeded) a predetermined number.

본 발명의 다른 측면에 의하면, 임계치는 하나 이상의 기존 패턴별로 각각 설정될 수 있다. 따라서, 특정 패턴에 대해서는 더 낮은 임계치를 적용하고, 다른 특정 패턴에 대해서는 더 높은 임계치를 적용할 수도 있다. According to another aspect of the present invention, the threshold may be set for each of one or more existing patterns. Accordingly, a lower threshold may be applied to a specific pattern, and a higher threshold may be applied to other specific patterns.

한편, 동일 패턴으로 분류되는 복수의 로그 메시지에 대해서, 패턴의 계층 구조에 따라 서브 패턴들로 재차 분류될 수 있다. 예를 들어, 제 1 패턴에 포함되는 제 1-1 서브 패턴 및 제 1-2 서브 패턴이 존재할 수 있다. 동일 패턴으로 분류되는 로그 메시지에 대해서도, 각각의 로그 메시지들 간에 변경될 수 있는 부분의 개수나 위치에 따라 다소 상이한 특성을 가질 수 있으므로, 패턴의 분류를 계층적으로 수행해여 보다 구체적인 분류가 가능하도록 할 수 있다. Meanwhile, for a plurality of log messages classified in the same pattern, it may be further classified into sub-patterns according to the hierarchical structure of the pattern. For example, a 1-1 sub pattern and a 1-2 sub pattern included in the first pattern may be present. For log messages classified in the same pattern, it may have somewhat different characteristics depending on the number or location of parts that can be changed between each log message, so that the classification of the pattern is performed hierarchically to enable more specific classification. can do.

도 11 은 로그 메시지 서브 패턴 분류를 위한 가변 영역 및 공통 영역의 개념도이다. 도 11 에 도시된 바와 같이, + 또는 - 가 존재하는 부분은 치환이 일어나면 되므로 이를 (?????) 로 바꿀 수 있으며, 하나의 패턴 내에도 여러 개의 서브 패턴이 존재할 수 있다. 즉, 도 11 에 도시된 바와 같이, 신규 패턴이나 기존 패턴들 각각은, 패턴을 구성하는 토큰들 중 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 (1110-1, 1110-2, 1110-3) 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역 (1120) 을 포함할 수 있다. 여기서 동일 패턴으로 분류되는 로그 메시지들 중 제 1 서브세트는 예를 들어 가변 토큰 영역 (1120) 을 2 개 가질 수 있고, 동일 패턴으로 분류되는 로그 메시지들 중 제 2 서브세트는 예를 들어 가변 토큰 영역 (1120) 을 1 개 가질 수 있으므로, 제 1 서브세트와 제 2 서브세트는 각각 상이한 서브 패턴으로 분류될 수 있다. 11 is a conceptual diagram of a variable area and a common area for classifying log message subpatterns. As illustrated in FIG. 11, a portion in which + or-is present can be replaced with (?????) since substitution needs to occur, and multiple sub-patterns may exist in one pattern. That is, as shown in FIG. 11, each of the new pattern or the existing patterns is a common token area 1110-1, which is a common part among a plurality of log messages classified as the same pattern among tokens constituting the pattern. 1110-2, 1110-3) and a variable token area 1120 that is a different part from among a plurality of log messages classified in the same pattern. Here, the first subset of log messages classified in the same pattern may have two variable token areas 1120, for example, and the second subset of log messages classified in the same pattern may be variable tokens, for example. Since there may be one region 1120, the first subset and the second subset may be classified into different sub-patterns, respectively.

관련하여, 일 측면에 따르면, 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 가변 토큰 영역의 위치 및 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다. In relation to one aspect, according to one aspect, at least one of the one or more existing patterns or new patterns, a common token area that is a common part among a plurality of log messages classified in the same pattern, and a plurality of log messages classified in the same pattern It includes a variable token region that is a different part from each other, and at least one of the one or more existing patterns or new patterns includes a plurality of sub-patterns determined based on at least one of the position of the variable token region and the number of variable token regions. can do.

도 12 는 개별 로그 메시지, 패턴 및 서브 패턴의 예시도이다. 도 12 에 도시된 바와 같이, 패턴 분류의 결과 하나의 패턴 내에 복수의 개별 로그 데이터들 (12a) 이 포함될 수 있다. 또한, 패턴 (12b) 각각은, 패턴에 포함되는 로그 메시지 중 하나를 예시로서 패턴으로서 표시하도록 할 수 있다. 도 12 에서는 syntax error 로 시작하는 복수개의 패턴을 예시적으로 도시하고 있다. 한편, 서브 패턴 (12c) 은 (?????) 를 추출해서 넣은 형태로서, 패턴에 포함되는 서브 패턴은 하나 또는 그 이상일 수 있다. 12 is an exemplary view of individual log messages, patterns, and sub-patterns. As illustrated in FIG. 12, as a result of pattern classification, a plurality of individual log data 12a may be included in one pattern. In addition, each of the patterns 12b can be displayed as an example of one of log messages included in the pattern. In FIG. 12, a plurality of patterns starting with a syntax error are exemplarily illustrated. Meanwhile, the sub-pattern 12c is a form in which (?????) is extracted and inserted, and the sub-pattern included in the pattern may be one or more.

도 13 은 로그 메시지의 일반화 및 패턴 분류의 예시도이다. 도 13에 도시된 바와 같이, 서브 패턴으로 분류되지 않더라도 패턴 내의 메시지에 대해서 변화하는 부분을 (????) 와 같이 표시 (13a) 함으로써 최소한의 일반화를 수행할 수 있다. 한편, 제 1 패턴 (13b) 와 제 2 패턴 (13c) 은 서로 다른 패턴으로 자동 분류될 수 있다. 13 is an exemplary diagram of generalization and pattern classification of log messages. As illustrated in FIG. 13, even if not classified as a sub-pattern, a minimum generalization can be performed by displaying (13??) a changing portion of the message in the pattern as (????). Meanwhile, the first pattern 13b and the second pattern 13c may be automatically classified into different patterns.

한편, 본 발명의 일 측면에 따른 시스템에서 실행되는 프로그램은, 사용자 스크립트 (script) 언어를 통해 수행되는 것일 수 있고, 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함할 수 있다. 즉, 일 측면에 따라 PHP 를 통해 프로그램이 실행될 경우, 수집되는 로그 메시지는 PHP 에러 메시지일 수 있다. Meanwhile, a program executed in a system according to an aspect of the present invention may be performed through a user script language, and the user script language may include at least one of PHP, ASP, JSP, PYTHON, PERL, or RUBY. It can contain. That is, when a program is executed through PHP according to one aspect, the log message collected may be a PHP error message.

컴퓨팅 디바이스Computing device

도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 예시적으로 나타낸 블록도이다. 도 2 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 컴퓨팅 디바이스 (30) 는 로그 파일 저장부 (110) 및 프로세서 (200) 를 포함할 수 있다. 프로세서 (200) 는 예를 들어 복수의 개별 프로세서로서 구성될 수도 있고, 프로세서 (200) 상에서 소프트웨어적으로 구현되는 모듈을 포함하도록 구성될 수 있다. 프로그램 실행 가상 머신 (VM) (250) 은 서비스를 제공하기 위한 프로그램을 프로세서 상에서 구동되도록 하고, 프로그램의 구동에 따른 로그 메시지들을 로그 파일 저장부 (110) 에 저장하도록 구성될 수 있다. 2 is a block diagram exemplarily illustrating a configuration of a computing device according to an embodiment of the present invention. As shown in FIG. 2, the computing device 30 according to an embodiment of the present invention may include a log file storage unit 110 and a processor 200. The processor 200 may be configured as a plurality of individual processors, for example, or may be configured to include a module implemented in software on the processor 200. The program execution virtual machine (VM) 250 may be configured to cause a program for providing a service to be run on a processor, and to store log messages according to the operation of the program in the log file storage 110.

로그 메시지 생성 유닛 (210) 은 예를 들어 로그 파일 저장부 (110) 로부터 로그 메시지를 획득하고, 로그 메시지 분류 유닛 (220) 에 제공할 수 있다. 로그 메시지 분류 유닛 (220) 에 포함된 분절 유닛 (221) 은 로그 메시지를 분절하여 하나 이상의 토큰을 생성하도록 구성되고, 유사도 결정 유닛 (223) 은 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하며, 패턴 분류 유닛 (225) 은 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 로그 메시지를 제 1 패턴으로 분류하고, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 로그 메시지를 신규 패턴으로 분류하도록 구성될 수 있다. 한편, 서브 패턴 분류 유닛 (227) 은 동일 패턴이라도 예를 들어 변동 가능 토큰의 개수 또는 위치 중 적어도 하나 이상에 따라 상이한 서브 패턴으로 로그 메시지가 분류되도록 할 수 있다. The log message generation unit 210 may obtain a log message from the log file storage unit 110 and provide it to the log message classification unit 220, for example. The segmentation unit 221 included in the log message classification unit 220 is configured to segment the log message to generate one or more tokens, and the similarity determining unit 223 compares the log message with one or more existing tokens. The similarity with the pattern is determined, and the pattern classification unit 225 logs in response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold. Classifying the message into a first pattern and classifying the log message into a new pattern in response to a determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is below a predetermined threshold. It can be configured to. On the other hand, the sub-pattern classification unit 227 may allow the log message to be classified into different sub-patterns according to at least one of, for example, the number or location of variable tokens even in the same pattern.

로그 메시지 분류 유닛 (220) 의 작동에 따라 신규 패턴 분류가 발생되었을 경우, 신규 패턴에 대한 정보가 통지 유닛 (240) 으로 전달되고, 통지 유닛 (240) 은 이를 관라자 단말 (40) 로 제공하여 관리자가 신규 패턴으로 분류되는 로그 메시지가 발생하였음을 통지받도록 할 수 있다. 또한, 로그 메시지 분류 유닛 (220) 으 작동에 따라 기존 패턴으로 분류되는 로그 메시지에 대해 패턴 분류 정보가 통계 유닛 (230) 으로 전달되며, 기존 패턴으로 분류되는 로그 메시지가 소정 개수 이상 모였을 때, 통계 유닛 (230) 은 예를 들어 특정 유형의 패턴으로 분류되는 로그 메시지가 정해진 값에 비해 많이 발생하거나, 변화 속도가 미리 정해진 값에 비해 빠르다고 판단하는 것과 같이 이상 징후를 감지하여, 이상 징후에 관한 정보를 통지 유닛 (240) 으로 전달하고 통지 유닛 (240) 은 이를 관리자 단말 (40) 로 제공하여 관리자가 로그 메시지 발생에 따른 이상 징후를 통지받도록 할 수 있다. 여기서 관리자 단말 (40) 은 컴퓨팅 디바이스/서버 (30) 와 별개의 단말로서 구성될 수도 있고, 컴퓨팅 디바이스 (30) 가 관리자 단말 (40) 과 일체로서 형성될 수도 있다. When a new pattern classification occurs according to the operation of the log message classification unit 220, information on the new pattern is transmitted to the notification unit 240, and the notification unit 240 provides it to the administrator terminal 40 The administrator can be notified that a log message classified as a new pattern has occurred. In addition, according to the operation of the log message classification unit 220, pattern classification information is transmitted to the statistical unit 230 for log messages classified as an existing pattern, and when a predetermined number of log messages classified as an existing pattern are collected, statistics The unit 230 detects anomalies such as determining that a log message classified into a specific type of pattern occurs more than a predetermined value, or that the rate of change is faster than a predetermined value, and information about the abnormality is generated. Is delivered to the notification unit 240 and the notification unit 240 can provide it to the administrator terminal 40 so that the administrator is notified of an abnormal symptom according to the occurrence of a log message. Here, the manager terminal 40 may be configured as a separate terminal from the computing device/server 30, and the computing device 30 may be formed integrally with the manager terminal 40.

한편, 도 14 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 개략적으로 나타낸다. 도 2 의 컴퓨팅 디바이스는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 예시적인 구성이며, 도 14 에 도시된 바와 같이 본 발명의 일 실시예에 따른 컴퓨팅 디바이스 (1400) 는 보다 간략하게 구성될 수도 있다. 메모리 (1410) 는 분류된 기존 패턴들에 대한 정보를 포함할 수 있으며, 본 발명의 일 실시예에 따른 패턴 분류 방법을 프로세서 상에서 구동하기 위한 명령어들을 저장할 수도 있다. 프로세서 (1420) 는 본 발명의 일 실시예에 따른 패턴 분류 방법을 실행할 수 있으며, 서비스를 제공하기 위한 프로그램을 실행시킬 수도 있다. 송수신부 (1430) 는 예를 들어 네트워크 (1500) 를 통해 서비스를 사용하는 사용자 단말과 정보를 송수신하거나, 별도의 관리자 단말 (40) 로 분류된 패턴과 관련되는 정보를 전달하도록 구성될 수도 있다. Meanwhile, FIG. 14 schematically shows a configuration of a computing device according to an embodiment of the present invention. The computing device of FIG. 2 is an exemplary configuration of a computing device according to an embodiment of the present invention, and the computing device 1400 according to an embodiment of the present invention may be configured more simply as shown in FIG. 14. . The memory 1410 may include information on classified existing patterns, and may store instructions for driving the pattern classification method according to an embodiment of the present invention on a processor. The processor 1420 may execute a pattern classification method according to an embodiment of the present invention, and may execute a program for providing a service. The transceiver 1430 may be configured to transmit and receive information to and from a user terminal using a service through the network 1500 or to transmit information related to a pattern classified as a separate administrator terminal 40.

상술한 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.The method according to the present invention described above can be embodied as computer readable codes on a computer readable recording medium. The computer-readable recording medium includes any kind of recording medium that stores data that can be read by a computer system. For example, there may be a read only memory (ROM), a random access memory (RAM), a magnetic tape, a magnetic disk, a flash memory, and an optical data storage device. In addition, the computer-readable recording medium may be distributed over computer systems connected through a computer communication network, and stored and executed as code readable in a distributed manner.

이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to the drawings and examples, the scope of protection of the present invention is not meant to be limited by the drawings or examples, and those skilled in the art of the present invention described in the claims below It will be understood that various modifications and changes can be made to the present invention without departing from the spirit and scope.

구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.Specifically, the described features can be implemented in digital electronic circuitry, or computer hardware, firmware, or combinations thereof. Features may be implemented in a computer program product implemented in storage in a machine-readable storage device, eg, for execution by a programmable processor. And the features can be performed by a programmable processor executing a program of instructions for performing the functions of the described embodiments by operating on input data and generating output. The described features include at least one programmable processor, at least one input device, and at least one output device coupled to receive data and directives from a data storage system and to transmit data and directives to the data storage system. It can be executed in one or more computer programs that can be executed on a programmable system comprising a. A computer program includes a set of directives that can be used directly or indirectly within a computer to perform a particular action on a given result. A computer program is written in any form of programming language, including compiled or interpreted languages, and is included as a module, element, subroutine, or other unit suitable for use in other computer environments, or as a stand-alone program. Can be used in any form.

지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가되어질 수 있다.Suitable processors for the execution of the program of instructions include, for example, both general purpose and special purpose microprocessors, and either a single processor or multiple processors of different types of computers. Also suitable for implementing computer program instructions and data embodying the described features are storage devices suitable for use as magnetic devices such as, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, internal hard disks and removable disks. Devices, magneto-optical disks and all forms of non-volatile memory including CD-ROM and DVD-ROM disks. The processor and memory can be integrated within application-specific integrated circuits (ASICs) or added by ASICs.

이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is described based on a series of functional blocks, but is not limited by the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes without departing from the spirit of the present invention. It will be apparent to those skilled in the art that the present invention is possible.

전술한 실시 예들의 조합은 전술한 실시 예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.Combinations of the above-described embodiments are not limited to the above-described embodiments, and various forms of combinations may be provided as well as the above-described embodiments according to implementation and/or needs.

전술한 실시 예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described embodiments, the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and some steps may occur in a different order than the steps described above or simultaneously. have. In addition, those of ordinary skill in the art may recognize that the steps shown in the flowcharts are not exclusive, other steps may be included, or one or more steps in the flowchart may be deleted without affecting the scope of the present invention. You will understand.

전술한 실시 예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다. The foregoing embodiments include examples of various aspects. It is not possible to describe all possible combinations for representing various aspects, but those skilled in the art will recognize that other combinations are possible. Accordingly, the present invention will be said to include all other replacements, modifications and changes that fall within the scope of the following claims.

Claims (27)

컴퓨팅 디바이스에 의해 수행되는, 로그 메시지의 패턴을 분류하는 방법으로서,
로그 메시지를 획득하는 단계;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하는 단계;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하는 단계;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하는 단계; 및
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하는 단계를 포함하고,
상기 토큰을 생성하는 단계는,
상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며,
상기 제 1 값은 상기 제 2 값보다 작은, 로그 메시지의 패턴을 분류하는 방법.
A method of classifying a pattern of log messages performed by a computing device, comprising:
Obtaining a log message;
Segmenting the log message to generate one or more tokens;
Determining a similarity between the log message and one or more existing patterns through comparison of the token units;
Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And
Classifying the log message into a new pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold; ,
The step of generating the token,
The log message is segmented around the blank area included in the log message, but the blank area included in the area separated by parentheses is not segmented.
The threshold has a first value in response to determining that the number of tokens included in the log message is less than a first predetermined number or that the number of tokens included in the one or more existing patterns is less than a predetermined first number. ,
The threshold has a second value in response to determining that the number of tokens included in the log message is greater than or equal to a first predetermined number and the number of tokens included in the one or more existing patterns is greater than or equal to a predetermined first number. ,
The first value is less than the second value, a method of classifying a pattern of log messages.
제 1 항에 있어서,
상기 로그 메시지는,
오류 메시지 및 경고 메시지 중 적어도 하나를 포함하는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
The log message,
A method of classifying patterns of log messages, including at least one of error messages and warning messages.
제 1 항에 있어서,
상기 로그 메시지는,
컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
The log message,
A method of classifying a pattern of log messages, which is extracted from a log file that records message information generated according to execution of a program by a processor included in a computing device.
삭제delete 제 1 항에 있어서,
상기 유사도를 결정하는 단계는,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정하는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
The step of determining the similarity,
Determining, as the similarity, an edit distance determined from at least one of the log message and the one or more existing patterns based on the number of token changes for changing to another of the log message and the one or more existing patterns , How to classify the pattern of log messages.
제 1 항에 있어서,
상기 유사도를 결정하는 단계는,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정하는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
The step of determining the similarity,
Pattern of the log message determining the similarity based on the ratio of the number of tokens that match between the log message and the one or more existing patterns, and the number of tokens that do not match between the log message and the one or more existing patterns How to classify.
제 6 항에 있어서,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고,
상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정되는, 로그 메시지의 패턴을 분류하는 방법.
The method of claim 6,
The number of tokens included in the log message and the one or more existing patterns is different from each other,
A method of classifying a pattern of log messages, wherein the number of tokens that do not match is determined based on the similarity level among the log message and the one or more existing patterns.
제 6 항에 있어서,
상기 유사도를 결정하는 단계는,
미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정하는, 로그 메시지의 패턴을 분류하는 방법.
The method of claim 6,
The step of determining the similarity,
A method of classifying a pattern of log messages by determining the similarity by applying a weight greater than 1 to a token included in a predetermined weighted token list.
제 8 항에 있어서,
상기 가중 토큰 목록은,
하나 이상의 구문 (syntax) 토큰을 포함하는, 로그 메시지의 패턴을 분류하는 방법.
The method of claim 8,
The weighted token list,
A method of classifying a pattern of log messages that includes one or more syntax tokens.
삭제delete 제 1 항에 있어서,
상기 임계치는,
상기 하나 이상의 기존 패턴별로 각각 설정되는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
The threshold value,
A method of classifying patterns of log messages that are respectively set for each of the one or more existing patterns.
제 1 항에 있어서,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함하는, 로그 메시지의 패턴을 분류하는 방법.
According to claim 1,
At least one of the one or more existing patterns or new patterns is a variable portion that is a different part between a plurality of log messages classified in the same pattern and a common token area that is a common portion among the plurality of log messages classified in the same pattern. Token area,
At least one of the one or more existing patterns or new patterns includes a plurality of sub-patterns determined based on at least one of the position of the variable token area and the number of variable token areas, and a method of classifying a pattern of log messages .
제 3 항에 있어서,
상기 프로그램의 실행은 사용자 스크립트 (script) 언어를 통해 수행되는, 로그 메시지의 패턴을 분류하는 방법.
The method of claim 3,
The execution of the program is performed through a user script (script) language, a method of classifying the pattern of log messages.
제 13 항에 있어서,
상기 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함하는, 로그 메시지의 패턴을 분류하는 방법.
The method of claim 13,
The user script language, PHP, ASP, JSP, PYTHON, PERL or RUBY at least one of the method of classifying the pattern of the log message.
프로세서 및 메모리를 포함하는 컴퓨팅 디바이스로서, 상기 프로세서는,
로그 메시지를 획득하고;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하도록 구성되고,
상기 토큰을 생성하는 것은,
상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하며,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며,
상기 제 1 값은 상기 제 2 값보다 작은, 컴퓨팅 디바이스.
A computing device comprising a processor and memory, the processor comprising:
Obtain log messages;
Segmenting the log message to generate one or more tokens;
Determining the similarity between the log message and one or more existing patterns by comparing the tokens;
Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And
In response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold, the log message is configured to be classified into a new pattern,
Generating the token,
The log message is segmented based on the blank area included in the log message, but the blank area included in the area separated by parentheses is not segmented.
The threshold has a first value in response to determining that the number of tokens included in the log message is less than a first predetermined number or that the number of tokens included in the one or more existing patterns is less than a predetermined first number. ,
The threshold has a second value in response to determining that the number of tokens included in the log message is greater than or equal to a first predetermined number and the number of tokens included in the one or more existing patterns is greater than or equal to a predetermined first number. ,
And the first value is less than the second value.
제 15 항에 있어서,
상기 로그 메시지는,
오류 메시지 및 경고 메시지 중 적어도 하나를 포함하는, 컴퓨팅 디바이스.
The method of claim 15,
The log message,
And at least one of an error message and a warning message.
제 15 항에 있어서,
상기 로그 메시지는,
프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는, 컴퓨팅 디바이스.
The method of claim 15,
The log message,
A computing device, which is extracted from a log file that records message information that occurs according to the execution of a program by a processor.
삭제delete 제 15 항에 있어서,
상기 유사도를 결정하는 것은,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정하는, 컴퓨팅 디바이스.
The method of claim 15,
Determining the similarity,
Determining, as the similarity, an edit distance determined from at least one of the log message and the one or more existing patterns based on the number of token changes for changing to another of the log message and the one or more existing patterns , Computing devices.
제 15 항에 있어서,
상기 유사도를 결정하는 것은,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정하는, 컴퓨팅 디바이스.
The method of claim 15,
Determining the similarity,
And determine the similarity based on the ratio of the number of tokens that match between the log message and the one or more existing patterns, and the number of tokens that do not match between the log message and the one or more existing patterns.
제 20 항에 있어서,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고,
상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정되는, 컴퓨팅 디바이스.
The method of claim 20,
The number of tokens included in the log message and the one or more existing patterns is different from each other,
The number of tokens that do not match is determined based on the degree of similarity among the log message and the one or more existing patterns, which is determined to be high.
제 20 항에 있어서,
상기 유사도를 결정하는 것은,
미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정하는, 컴퓨팅 디바이스.
The method of claim 20,
Determining the similarity,
A computing device for determining the similarity by applying a weight greater than 1 to a token included in a predetermined weighted token list.
제 22 항에 있어서,
상기 가중 토큰 목록은,
하나 이상의 구문 (syntax) 토큰을 포함하는, 컴퓨팅 디바이스.
The method of claim 22,
The weighted token list,
A computing device comprising one or more syntax tokens.
삭제delete 제 15 항에 있어서,
상기 임계치는,
상기 하나 이상의 기존 패턴별로 각각 설정되는, 컴퓨팅 디바이스.
The method of claim 15,
The threshold value,
Computing device, each set for each of the one or more existing patterns.
제 15 항에 있어서,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함하는, 컴퓨팅 디바이스.
The method of claim 15,
At least one of the one or more existing patterns or new patterns is a variable portion that is a different part between a plurality of log messages classified in the same pattern and a common token area that is a common portion among the plurality of log messages classified in the same pattern. Token area,
At least one of the one or more existing patterns or new patterns includes a plurality of sub-patterns determined based on at least one of the position of the variable token region and the number of the variable token regions.
프로세서에 의해 실행 가능한 명령어들을 저장하는 컴퓨터 판독 가능한 저장 매체로서, 상기 프로세서에 의해 실행되었을 때 상기 명령어들은 상기 프로세서로 하여금,
로그 메시지를 획득하고;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하게 하도록 구성되고,
상기 토큰을 생성하는 것은,
상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하며,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며,
상기 제 1 값은 상기 제 2 값보다 작은, 컴퓨터 판독 가능한 저장 매체.
A computer-readable storage medium storing instructions executable by a processor, which when executed by the processor causes the processor to:
Obtain log messages;
Segmenting the log message to generate one or more tokens;
Determining the similarity between the log message and one or more existing patterns by comparing the tokens;
Classifying the log message into the first pattern in response to determining that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is equal to or greater than a predetermined threshold; And
In response to the determination that the similarity with the log message of the first pattern having the highest similarity with the log message among the one or more existing patterns is less than a predetermined threshold, the log message is configured to be classified into a new pattern,
Generating the token,
The log message is segmented based on the blank area included in the log message, but the blank area included in the area separated by parentheses is not segmented.
The threshold has a first value in response to determining that the number of tokens included in the log message is less than a first predetermined number or that the number of tokens included in the one or more existing patterns is less than a predetermined first number. ,
The threshold has a second value in response to determining that the number of tokens included in the log message is greater than or equal to a first predetermined number and the number of tokens included in the one or more existing patterns is greater than or equal to a predetermined first number. ,
Wherein the first value is less than the second value.
KR1020180152377A 2018-11-30 2018-11-30 An apparatus for classify log massage to patterns KR102137109B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152377A KR102137109B1 (en) 2018-11-30 2018-11-30 An apparatus for classify log massage to patterns

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152377A KR102137109B1 (en) 2018-11-30 2018-11-30 An apparatus for classify log massage to patterns

Publications (2)

Publication Number Publication Date
KR20200065683A KR20200065683A (en) 2020-06-09
KR102137109B1 true KR102137109B1 (en) 2020-07-23

Family

ID=71082247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152377A KR102137109B1 (en) 2018-11-30 2018-11-30 An apparatus for classify log massage to patterns

Country Status (1)

Country Link
KR (1) KR102137109B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282751B (en) * 2021-05-28 2023-12-15 腾讯科技(深圳)有限公司 Log classification method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016093839A1 (en) * 2014-12-11 2016-06-16 Hewlett Packard Enterprise Development Lp Structuring of semi-structured log messages
US20170236023A1 (en) * 2015-11-17 2017-08-17 Nec Laboratories America, Inc. Fast Pattern Discovery for Log Analytics

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990056548A (en) 1997-12-29 1999-07-15 윤종용 How to Output Multiple Log Messages
KR100795558B1 (en) * 2005-11-15 2008-01-21 한국전자통신연구원 Context information management system and method
US10055352B2 (en) * 2014-03-11 2018-08-21 Amazon Technologies, Inc. Page cache write logging at block-based storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016093839A1 (en) * 2014-12-11 2016-06-16 Hewlett Packard Enterprise Development Lp Structuring of semi-structured log messages
US20170236023A1 (en) * 2015-11-17 2017-08-17 Nec Laboratories America, Inc. Fast Pattern Discovery for Log Analytics

Also Published As

Publication number Publication date
KR20200065683A (en) 2020-06-09

Similar Documents

Publication Publication Date Title
Baldwin et al. Leveraging support vector machine for opcode density based detection of crypto-ransomware
US11954568B2 (en) Root cause discovery engine
US8185781B2 (en) Invariants-based learning method and system for failure diagnosis in large scale computing systems
US20190258648A1 (en) Generating asset level classifications using machine learning
US8117486B2 (en) Method and system for detecting an anomalous networked device
CN112602081A (en) Enhancing network security and operational monitoring with alarm confidence assignment
US20160306967A1 (en) Method to Detect Malicious Behavior by Computing the Likelihood of Data Accesses
US20180121275A1 (en) Method and apparatus for detecting and managing faults
US11860721B2 (en) Utilizing automatic labelling, prioritizing, and root cause analysis machine learning models and dependency graphs to determine recommendations for software products
TWI703454B (en) Method and device for determining data abnormality
CN111160021A (en) Log template extraction method and device
KR102153035B1 (en) Method and apparatus for detecting malicious mining
US10824694B1 (en) Distributable feature analysis in model training system
CN106033574B (en) Method and device for identifying cheating behaviors
CN111222137A (en) Program classification model training method, program classification method and device
US11829455B2 (en) AI governance using tamper proof model metrics
CN114036826A (en) Model training method, root cause determination method, device, equipment and storage medium
US20220405184A1 (en) Method, electronic device, and computer program product for data processing
KR102137109B1 (en) An apparatus for classify log massage to patterns
US10509712B2 (en) Methods and systems to determine baseline event-type distributions of event sources and detect changes in behavior of event sources
CN112632000B (en) Log file clustering method, device, electronic equipment and readable storage medium
CN109800775B (en) File clustering method, device, equipment and readable medium
JP7259932B2 (en) Hypothesis Verification Device, Hypothesis Verification Method, and Program
KR101645214B1 (en) Method and apparatus for malicious code classification
JP5532052B2 (en) Evaluation model analysis system, evaluation model analysis method and program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right