KR20200065683A - 로그 메시지의 패턴을 분류하는 방법 및 장치 - Google Patents
로그 메시지의 패턴을 분류하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20200065683A KR20200065683A KR1020180152377A KR20180152377A KR20200065683A KR 20200065683 A KR20200065683 A KR 20200065683A KR 1020180152377 A KR1020180152377 A KR 1020180152377A KR 20180152377 A KR20180152377 A KR 20180152377A KR 20200065683 A KR20200065683 A KR 20200065683A
- Authority
- KR
- South Korea
- Prior art keywords
- log
- log message
- pattern
- similarity
- message
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
로그 메시지의 패턴을 분류하는 방법이 제공된다. 방법은, 로그 메시지를 획득하고, 이를 분절하여 하나 이상의 토큰을 생성한다. 이후, 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하여, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여 로그 메시지를 상기 제 1 패턴으로 분류하고, 미리 결정한 임계치 미만이라는 결정에 응답하여 로그 메시지를 신규 패턴으로 분류한다.
Description
본 발명은 로그 메시지에 관한 것으로서, 보다 구체적으로는 시스템의 운영에 따라 발생하는 로그 메시지들을 소정 개수의 패턴으로 분류하기 위한 장치에 관한 것이다.
프로그램의 실행을 통해 사용자들에게 서비스를 제공할 수 있는 시스템들이 널리 운영되고 있다. 예를 들어, 온라인 쇼핑몰의 경우, 사용자들은 각자의 단말을 통해 네트워크를 통해 시스템에 접속할 수 있으며, 시스템은 적어도 하나 이상의 서버를 포함할 수 있고, 적어도 하나의 서버는 프로그램을 실행시켜 사용자에게 쇼핑몰 서비스를 제공하도록 구성될 수 있다.
이와 같은 시스템의 운영 동안에는 프로그램의 실행에 따라 발생하는 오류나 경고 사항 등을 포함하는 주요 정보를 로그 파일의 형태로 저장하며, 시스템의 안정적인 운영을 위해서는 로그 파일을 상시 감시해야할 필요가 있다. 그러나, 나날이 발전하는 IT 기술 및 다양한 어플리케이션의 등장으로, 소정의 시스템을 운영함에 있어서 프로그램의 실행에 의해 발생되는 로그 데이터는 기하 급수적으로 증가되고 있는 실정이다. 이와 같이 증가된 로그 데이터를 사용자가 전부 모니터링하는 것은 불가능에 가까워지고 있다.
전술한 문제점을 해결하기 위한 본 발명의 목적은 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있는 로그 메시지의 패턴을 분류하는 방법을 제공하는 것이다.
전술한 문제점을 해결하기 위한 본 발명의 다른 목적은 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있는, 로그 메시지 패턴 분류를 수행하는 컴퓨팅 디바이스를 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 디바이스에 의해 수행되는, 로그 메시지의 패턴을 분류하는 방법은, 로그 메시지를 획득하는 단계; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하는 단계; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하는 단계; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하는 단계; 및 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하는 단계를 포함할 수 있다.
일 측면에 따르면, 상기 로그 메시지는, 오류 메시지 및 경고 메시지 중 적어도 하나를 포함할 수 있다.
일 측면에 따르면, 상기 로그 메시지는, 컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는 것일 수 있다.
일 측면에 따르면, 상기 토큰을 생성하는 단계는, 상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니할 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 단계는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정할 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 단계는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정할 수 있다.
일 측면에 따르면, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정될 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 단계는, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정할 수 있다.
일 측면에 따르면, 상기 가중 토큰 목록은, 하나 이상의 구문 (syntax) 토큰을 포함할 수 있다.
일 측면에 따르면, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 상기 제 1 값은 상기 제 2 값보다 작은 것일 수 있다.
일 측면에 따르면, 상기 임계치는, 상기 하나 이상의 기존 패턴별로 각각 설정될 수 있다.
일 측면에 따르면, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다.
일 측면에 따르면, 상기 프로그램의 실행은 사용자 스크립트 (script) 언어를 통해 수행될 수 있다.
일 측면에 따르면, 상기 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함할 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨팅 디바이스는, 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스로서, 상기 프로세서는, 로그 메시지를 획득하고; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하도록 구성될 수 있다.
일 측면에 따르면, 상기 로그 메시지는, 오류 메시지 및 경고 메시지 중 적어도 하나를 포함할 수 있다.
일 측면에 따르면, 상기 로그 메시지는, 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출될 수 있다.
일 측면에 따르면, 상기 토큰을 생성하는 것은, 상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니할 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 것은, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정할 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 것은, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정할 수 있다.
일 측면에 따르면, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정될 수 있다.
일 측면에 따르면, 상기 유사도를 결정하는 것은, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정할 수 있다.
일 측면에 따르면, 상기 가중 토큰 목록은, 하나 이상의 구문 (syntax) 토큰을 포함할 수 있다.
일 측면에 따르면, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 상기 제 1 값은 상기 제 2 값보다 작은 것일 수 있다.
일 측면에 따르면, 상기 임계치는, 상기 하나 이상의 기존 패턴별로 각각 설정될 수 있다.
일 측면에 따르면, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다.
전술한 문제점을 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨터 판독 가능한 저장 매체는, 프로세서에 의해 실행 가능한 명령어들을 저장하고, 상기 프로세서에 의해 실행되었을 때 상기 명령어들은 상기 프로세서로 하여금, 로그 메시지를 획득하고; 상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고; 상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고; 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고 상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하게 하도록 구성될 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
전술한 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법 및 컴퓨팅 디바이스에 따르면, 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 할 수 있다.
따라서, 소정의 유형에 따른 로그 메시지 패턴의 급격한 증가를 쉽게 검출할 수 있고, 시스템 운영상의 문제가 발생하였을 때 문제의 원인을 용이하게 파악할 수 있다. 또한, 미리 결정된 룰-기반의 패턴 분류를 이용하지 않으므로, 신규 발생 패턴에 대한 분류가 가능하고 새롭게 발생한 시스템 상의 문제를 초기에 발견하여 조치하도록 할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 패턴 분류가 수행될 수 있는 환경의 예시도이다.
도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 나타내는 블록도이다.
도 3 은 로그 메시지의 일 예시이다.
도 4 는 로그 메시지의 다른 예시이다.
도 5 는 신규 발생 패턴의 예시이다.
도 6 은 관리중인 패턴의 예시이다.
도 7 은 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법의 흐름도이다.
도 8 은 로그 메시지 분절에 따른 토큰 생성의 개념도이다.
도 9 는 로그 메시지 유사도 결정의 개념도이다.
도 10 은 로그 메시지 유사도 결정의 예시이다.
도 11 은 로그 메시지 서브 패턴 분류를 위한 가변 영역 및 공통 영역의 개념도이다.
도 12 는 개별 로그 메시지, 패턴 및 서브 패턴의 예시도이다.
도 13 은 로그 메시지의 일반화 및 패턴 분류의 예시도이다.
도 14 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 개략적으로 나타낸다.
도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 나타내는 블록도이다.
도 3 은 로그 메시지의 일 예시이다.
도 4 는 로그 메시지의 다른 예시이다.
도 5 는 신규 발생 패턴의 예시이다.
도 6 은 관리중인 패턴의 예시이다.
도 7 은 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법의 흐름도이다.
도 8 은 로그 메시지 분절에 따른 토큰 생성의 개념도이다.
도 9 는 로그 메시지 유사도 결정의 개념도이다.
도 10 은 로그 메시지 유사도 결정의 예시이다.
도 11 은 로그 메시지 서브 패턴 분류를 위한 가변 영역 및 공통 영역의 개념도이다.
도 12 는 개별 로그 메시지, 패턴 및 서브 패턴의 예시도이다.
도 13 은 로그 메시지의 일반화 및 패턴 분류의 예시도이다.
도 14 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 개략적으로 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1 은 본 발명의 일 실시예에 따른 패턴 분류가 수행될 수 있는 환경의 예시도이다. 도 1 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류는 네트워크 (20) 를 통해 사용자의 단말들 (10-1, 10-2) 로 컴퓨터 프로그램의 실행에 따른 서비스를 제공할 수 있는 서버 시스템 (30) 에 대해서 적용될 수 있다. 서버 시스템 (30) 에서는 미리 준비된 명령어들에 따른 프로그램이 실행되고, 서비스의 이용자들은 각자의 단말 (10-1, 10-1) 을 이용하여 네트워크 (20) 를 통해 서버 시스템 (30) 에 접속하는 것을 통해 서버 시스템 (30) 이 제공하는 서비스를 이용할 수 있다. 서비스는 예를 들어 "온라인 쇼핑몰"일 수 있고, 사용자는 예를 들어 개인용 컴퓨터 또는 휴대용 스마트 디바이스와 같은 단말을 통해 서버 시스템이 제공하는 온라인 쇼핑몰에서 제품을 구매하는 서비스를 제공받을 수 있다.
여기서, 서버 시스템 (30) 은 서비스를 제공하기 위한 프로그램을 실행함에 따른 시스템 운영 상의 발생 오류, 경고 사항들을 포함하는 주요 파일을 로그 데이터로서 저장할 수 있다. 로그 데이터는 "로그 파일"의 형태로 저장할 수 있다. 로그 데이터는 시스템의 운영상 발생하는 정보들을 기록하고 있는 것으로, 서비스 상의 문제 점검이나 운영 통계등을 위해 사용될 수 있다. 예를 들어, 프로그램이 PHP (Personal Home Page Tools, PHP-Hypertext Preprocessor) 를 기반으로 하는 경우, PHP 에러 (프로그램 실행 중 발생하는 에러) 를 기록한 로그 파일 엔트리 일부가 로그 데이터에 포함될 수 있다. 로그 데이터는, 예를 들어 네트워크 로그, 데이터베이스 로그, 사용자 접속 로그, 명령어 실행 로그, 시스템 변경로그 중 적어도 하나를 포함할 수 있다.
도 3 은 로그 메시지의 일 예시이다. 도 3 에 도시된 바와 같이, 로그 메시지는 시스템 운영에 따른 다양한 상황에 대한 정보를 포함할 수 있고, 예를 들어 실행시간이 과다하게 오래 걸리는 경우 (3a), 시스템에 가용한 메모리가 부족한 경우 (3b) 와 같은 상황과, 그러한 상황이 발생하게 된 파일 (3c) 에 대한 정보를 포함할 수 있다.
한편, 시스템의 안정적인 운영을 위해서는 로그 데이터를 상시 감시해야한다. 그러나, 전술한 바와 같이, 나날이 발전하는 IT 기술 및 다양한 어플리케이션의 등장으로, 소정의 시스템을 운영함에 있어서 프로그램의 실행에 의해 발생되는 로그 데이터는 기하 급수적으로 증가되고 있는 실정이다. 특정 시스템의 경우 일별 70만 내지 90만 건까지도 에러 메시지가 발생하고 있으므로, 이와 같이 증가된 로그 데이터를 사용자가 전부 모니터링하는 것은 불가능에 가까워지고 있어, 이를 효과적으로 관리할 수 있는 방법이 요구되고 있다.
도 4 는 로그 메시지의 다른 예시이다. 도 4 에 도시된 바와 같이, 복수의 로그 메시지들 중, "메모리 부족" 유형에 해당하는 메시지 (4a) 가 많은 수를 차지하는 경우가 발생할 수 있다. 이처럼, 복수의 메시지들 중 많이 발생하는 유형의 메시지가 메모리 부족에 관련된 메시지라는 사실을 알게 되면, 시스템의 실행을 위해 사용되고 있는 메모리를 점검 또는 확장하는 조치를 수행하여, 서비스를 제공하는 시스템을 신속하게 개선할 수 있는 장점이 있다.
즉, 로그 메시지에 대해서는 로그 메시지의 전체 건수를 확인하는 것 이외에, 로그 메시지의 유형 별 관리가 매우 중요하다. 따라서, 어떠한 유형의 오류가 발생하고 있는지, 또는 예전에 없던 새로운 유형의 오류가 발생하였는지, 또는 유형 별 발생 건수가 급증 한 건이 있는지 여부를 파악하는 것이 필요하다. 로그 메시지는 이산적 또는 연속적으로 생성될 수 있으며, 생성되는 로그 메시지에 대한 분류는 예를 들어 속성을 기반으로 이루어질 수도 있다. 로그 메시지에 대한 통계, 즉 개수의 통계를 기반으로 대략적인 시스템 운영 원활성을 파악할 수 있고, 어떤 유저가, 어떤 프로그램을 사용할 때, 어떤 OS 를 사용하는지, 또는 어떤 브라우저를 사용하는지, 또는 어떤 디바이스를 사용하고 있는지 여부가 각각 분류되어 집계되면, 시스템 운영에 따른 문제 발생 여부를 용이하게 검출할 수 있는 것은 물론 발생된 문제의 원인이 무엇인지 여부까지도 쉽게 파악할 수 있다. 예를 들어, 특정 스마트 디바이스의 O/S 에 대한 업그레이드가 수행될 때 업그레이드된 O/S 에 시스템 운영에 장애를 일으키는 요소가 포함되어 있을 수 있다. 이 때 로그 메시지를 유형별로 분류하여 모니터링하게 되면, 특정 디바이스에 대한 로그 메시지가 신규 유형으로 분류되거나, 해당 유형의 로그 메시지가 급격히 증가하는 것을 감지하는 것에 의해 문제 발생을 검출할 수 있으며, 해당 문제가 특정 디바이스에 연관된 것임을 알 수 있으므로 문제의 원인은 특정 디바이스의 O/S 업그레이드에 따른 것 역시 용이하게 파악할 수 있게 된다.
이를 위해서는, 특정 유형의 메시지가 새롭운 유형으로 분류되어 나타나는지, 또는 특정 유형의 메시지가 급격하게 증가하고 있는지 여부 등에 대한 모니터링이 필요하며, 이러한 시스템의 모니터링은 로그 메시지의 유형에 따른 분류가 선행되어야 한다. 즉, 로그 메시지의 유형에 따른 시스템 모니터링을 수행하기 위해서는 수많은 로그 메시지들에 대한 유형 (이하, '패턴'이라고도 지칭될 수 있음) 의 분류가 필요하다.
관련하여, 로그 메시지의 유형을 분류하기 위한 방법으로서 "규칙 기반 (Rule Based)" 분류가 고려될 수 있다. 로그 메시지의 패턴을 분류하기 위해, 사전에 분류 체계와 규칙을 지정하여, 이를 기반으로 로그 메시지의 패턴을 분류할 수 있다. 규칙 기반 분류의 예시는 아래와 같다.
유형 1 : Allowed Memory Size of (?????) bytes exhausted (tried to Allocate (?????) bytes)
유형 2 : Maximum Execution Time of (??) seconds exceeded …. In (????) on (????)
즉, 유형 1 또는 유형 2 와 같이, 각각의 유형에서 변동될 수 있는 부분은 (????) 과 같이 제외하고, 특정 로그 메시지가 유형 1 또는 유형 2 와 나머지 부분들이 일치할 경우 해당 특정 로그 메시지를 해당 유형으로 분류하도록 할 수 있다. 그러나, 이러한 규칙 기반의 유형 분류는, 패턴 분류에 전문적인 지식이 필요할 뿐만 아니라, 새로운 패턴이 발생할 때 패턴을 파악하지 못하는 문제가 있다. 따라서, 새로운 패턴에 대한 모니터링에 실패하고 사후 보완이 필요하게 된다. 또한, 규칙 기반의 분류는 인위적인 패턴 분류로 인한 자의성을 가지기 때문에 정확한 현실을 반영하지 못할 수 있다. 또한 규칙 기반의 패턴 분류는 지속적인 개선과 검증이 필요한 방식이나, 일별 90~100만건의 데이터, 또한 100 여종의 자료들을 가지는 대규모의 시스템에서 이와 같은 유지 및 관리는 어려운 문제점이 있다.
또한, 무엇보다고 규칙 기반의 유형 분류는 시스템 운영상의 문제라기보다는 오히려 시스템 설계 상의 검증에 그칠 가능성이 높다. 즉, 미리 규칙을 정해 놓는 행위 자체가 시스템의 설계 영역에 해당하는 것일 수 있으며, 이미 알고 있는 문제 이외에 새롭게 발생하는 문제에 대해서는 전혀 대비할 수 없는 문제점이 있다.
관련하여, 도 5 는 신규 발생 패턴의 예시이고, 도 6 은 관리중인 패턴의 예시이다. 규칙 기반의 유형 분류에 따를 경우, 도 6 에 도시된 바와 같은 이미 관리하고 있는 분류가 완료된 유형의 로그 메시지의 패턴에 대해서는 검출 및 분류가 가능하지만, 도 5 에 도시된 바와 같은 신규로 발생한 패턴, 즉 기 분류된 유형 중 매칭되는 유형이 없는 로그 메시지의 경우에는 패턴 분류가 불가능한 문제가 있다.
본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류는, 상기와 같은 문제점을 해결하기 위한 것으로서, 시스템의 운영에 따른 로그 메시지를 유사도를 기반으로 분류함으로써 로그 메시지에 대한 모니터링을 용이하게 하는 것을 일 목적으로 한다. 본 발명의 일 실시예에 따른 로그 메시지의 패턴 분류 방법에 따르면, 자동으로 로그 메시지의 패턴을 찾아서 메시지를 분류할 수 있다. 따라서 종래 정의하지 아니한 유형의 패턴에 대해서도 패턴 분류가 가능하고, 패턴 별 로그 메시지의 모니터링 및 신규 패턴의 발생에 대한 모니터링 역시 가능하다.
이와 같은 패턴 분류 방법에 있어서는, 사전에 정해진 입력 없이 스스로 분류 패턴을 발견할 수 있어야 하고, 다양한 종류의 로그 메시지 분석이 가능해야 한다. 로그 메시지는 컴퓨터에서 생성된 정형 메시지를 포함할 수 있다. 또한, 실시간 (예를 들어, 초당 1,000 건 이상) 의 분류가 가능해야 하고, 자원 (메모리, CPU) 요구 사항이 패턴 개수에만 비례 (cf. 처리하는 데이터의 건수에 비례) 하는 것이 바람직하다. 또한, 사용자는 최소한의 파라미터 만을 지정하며, 이 파라미터는 데이터의 종류에 관계없이 공통적으로 적용이 가능하도록 하는 것이 바람직하다.
로그 메시지의 패턴 분류 방법
도 7 은 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법의 흐름도이다. 도 7 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법은, 로그 메시지를 획득 (단계 710) 하여, 이를 분절 함으로써 적어도 하나 이상의 토큰을 생성 (단계 720) 하고, 로그 메시지와 기존 패턴의 유사도를 결정 (단계 730) 한 뒤, 유사도가 임계치 이상이면 기존 패턴으로 분류 (단계 740) 하고, 유사도가 임계치 미만이면 신규 패턴으로 분류 (단계 750) 할 수 있다.
이하, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법을 도 2 및 도 7 을 참조하여 보다 구체적으로 설명한다.
도 7 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법은 먼저 로그 메시지를 획득한다 (단계 710). 로그 메시지는 예를 들어 네트워크를 통해 하나 이상의 단말로 서비스를 제공하도록 구성된 시스템에서 프로그램을 실행함에 따라 발생되는 메시지들을 포함할 수 있다. 일 측면에 따르면, 시스템은 복수의 서버들을 포함할 수도 있고, 복수의 서버가 포함되는 경우 적어도 하나의 서버에서 프로그램이 실행될 수 있다. 도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 나타내는 블록도이다. 일 측면에 따르면, 상기 프로그램이 실행될 수 있는 서버는 컴퓨팅 디바이스에 의해 구현될 수 있다. 예를 들어, 로그 메시지는 도 2 의 컴퓨팅 디바이스 (30) 의 프로세서 (200) 상에서 실행되는 프로그램에 의해 발생될 수 있고, 발생된 로그 메시지는 로그 파일 저장부 (110) 에 저장될 수 있다. 따라서, 본 발명의 일 실시예에 따른 로그 메시지의 패턴을 분류하는 방법에서, 로그 메시지는 예를 들어 로그 파일 저장부 (110) 와 같은 메모리 장치로부터 획득될 수 있다. 또는, 로그 메시지는, 컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출될 수 있다.
다시 도 7 을 참조하면, 획득된 로그 메시지들을 분절하여 하나 이상의 토큰을 생성할 수 있다 (단계 720). 도 8 은 로그 메시지 분절에 따른 토큰 생성의 개념도이다. 도 8 에 도시된 바와 같이, 토큰은 예를 들어 의미를 가질 수 있는 최소 요소일 수 있다. 일 측면에 따르면 하나의 토큰은 단어일 수도 있다. 도 8 에 예시적으로 도시된 바와 같이, 하나의 로그 메시지는 복수의 경계를 가지고 분절되어 복수의 토큰을 형성할 수 있고, 예를 들어, 경계 (820) 을 기준으로 토큰 (810-1) 및 (810-2) 로 구분될 수 있다.
로그 메시지를 분할하여 토큰을 생성함에 있어, 본 발명의 일 측면에 따르면 로그 메시지에 포함된 공백 영역을 경계로 로그 메시지를 분절할 수 있으며, 또한 일 측면에 따르면 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하도록 할 수 있다. 여기서, 괄호는 대괄호, 중괄호 및 소괄호 중 적어도 하나를 의미할 수 있다. 이 때, 공백 없는 단어 내에 괄호가 완결된 경우에는 괄호 여부와 상관 없이 공백 영역에 의해 토큰이 분절되도록 할 수도 있다. 이와 같은 로그 메시지의 분절 규칙에 따라 로그 메시지는 복수의 토큰으로 분절될 수 있다. 이외에도, 패턴 분류의 목적에 맞도록 로그 메시지에 대한 추가적인 사전 처리 절차를 수행할 수 있다.
다시 도 7 을 참조하면, 로그 메시지의 분절을 통해 생성된 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 각각 결정할 수 있다 (단계 730). 이전에 분류된 하나 이상의 기존 패턴들 역시 각각 분절되어 복수의 토큰을 가지고 있으므로, 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지는 양자 모두 복수의 토큰을 포함하고 있으며, 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지를 토큰 단위로 비교하여 기존 패턴 중 하나와 현재 분류 대상인 로그 메시지의 유사도를 결정할 수 있다. 복수의 기존 패턴들에 대해서는 각각 현재 분류 대상인 로그 메시지와의 유사도를 결정하고, 가장 유사도가 높은 기존 패턴과 현재 분류 대상인 로그 메시지와의 유사도를 결정할 수 있다.
유사도의 결정은, 토큰 단위의 비교를 기반으로 하되 다양한 기준이 적용될 수 있다. 도 9 는 로그 메시지 유사도 결정의 개념도이다. 도 9 에 도시된 바와 같이, 예를 들어 제 1 로그 메시지 (910) 와 제 2 로그 메시지 (920) 를 예로 들어, 로그 메시지 간의 비교 혹은 로그 메시지와 패턴 (여기서 패턴은 이미 분류된 로그 메시지일 수 있음) 간의 비교를 통산 유사도 산출이 설명될 수 있다.
일 측면에 따르면, 유사도를 결정하는 것은, 로그 메시지 및 하나 이상의 기존 패턴 중 적어도 하나로부터, 로그 메시지 및 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 유사도로서 결정할 수 있다. 도 9 를 예시로서 설명하면, 제 1 로그 메시지 (910) 를 제 2 로그 메시지 (920) 로 변경하기 위해서는, 변경 부분 (930) 에 나타난 바와 같이 제 1 로그 메시지 (910) 에서 제 1 부분 (931) 인 'an' 을 삭제하고, 제 2 로그 메시지 (920) 에서 제 2 부분 (933) 인 'another' 를 추가하는 변경이 수행되어야 한다. 따라서, 변경 거리는 2 회의 변경을 거쳤으므로 2 로서 결정될 수 있고, 다른 측면에 따르면 변경 거리는 변경 회수의 절반인 1 로서 결정될 수도 있다.
또한 일 측면에 따르면, 유사도를 결정하는 것은, 로그 메시지 및 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 로그 메시지 및 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 유사도를 결정할 수 있다. 도 9 를 예시로서 설명하면, 제 1 로그 메시지 (910) 와 제 2 로그 메시지 (920) 사이에서 일치하는 토큰은 'This', 'is', 및 'Error' 로서 3 개이며, 상이한 토큰은 각자 'an' 또는 'another' 로서 1 개이므로, 이러한 비율을 기준으로 유사도가 결정될 수 있다. 예를 들어, 도 9 에서는 단순한 산술적 계산을 통해 유사도는 3/4, 즉 0.75 로서 산정될 수 있다.
한편, 로그 메시지 및 기존 패턴과의 비교에 있어서 양자가 포함하고 있는 토큰의 개수가 상이할 수 있고, 일치하지 않는 토큰에 대한 개수 산정이 문제될 수 있다. 즉, 예를 들어 로그 메시지에는 일치하지 않는 토큰이 3 개, 기존 패턴에는 일치하지 않는 토큰이 1 개 존재할 때, 일치하지 않는 토큰의 개수는 3 개로 결정되거나, 또는 1 개로 결정될 수 있다. 이는 유사도 결정의 민감도 레벨에 따라 사용자가 달리 설정하도록 할 수도 있다.
일 측면에 따르면, 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고, 일치하지 않는 토큰의 개수는, 로그 메시지 및 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정하도록 할 수도 있다. 따라서, 상기 예시에서 일치하지 않는 토큰의 개수가 1 개로 결정될 수도 있다.
도 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 으로 결정될 수 있다.
본 발명의 일 측면에 따르면, 유사도의 결정에 있어서, 미리 결정된 가중 토큰 목록에 포함된 토큰에 대해서는 1 초과의 가중치를 적용하여 유사도를 결정하도록 할 수 있다. 즉, 유사도를 선정함에 있어서 더 중요한 의미를 포함하는 토큰에 대해서는 유사도에 더 높게 반영되도록 할 수 있다. 예를 들어, 가중 토큰 목록에는 하나 이상의 구문 (syntax) 토큰이 포함될 수 있고, 구문 토큰은 프로그램에서 에러를 지시하기 위해 미리 지정된 구문을 포함하는 토큰일 수 있다. 일 측면에 따르면, 구문 토큰에는 예를 들어 1.2 의 가중치를 적용할 수 있고, 둘 이상의 로그 메시지를 비교함에 있어서 일치하는 토큰이 2 개의 구문 토큰일 경우, 일치하는 토큰의 개수는 2.4 로 계산될 수 있다. 따라서, 일치하는 토큰이 가중 토큰 목록에 포함되지 않은 토큰일 때에 비해 유사도가 더 크게 계산될 수 있다.
다시 도 7 을 참조하면, 결정된 유사도를 기반으로, 기존 패턴 중 현재 분류 대상인 로그 메시지와의 관계에서 가장 유사도가 높은 패턴의 유사도 계산 값을 이용하여, 가장 유사도가 높은 패턴의 유사도가 임계값보다 높으면 현재 분류 대상인 로그 메시지를 가장 유사도가 높은 패턴으로 분류할 수 있고 (단계 740), 가장 유사도가 높은 패턴의 유사도가 임계값보다 작으면 현재 분류 대상인 로그 메시지를 신규 패턴으로 분류 (단계 750) 할 수 있다.
즉, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 로그 메시지를 제 1 패턴으로 분류 (단계 740) 할 수 있으며, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 로그 메시지를 신규 패턴으로 분류할 수 있다 (단계 750).
여기서, 패턴 분류를 위한 임계값은 시스템 관리자의 설정에 따라 변경되어 분류의 민감도를 조정하도록 할 수 있다. 임계값을 증가시킬수록, 동일 패턴으로 분류되는 로그 메시지들이 유사한 성질을 가질 가능성이 높아지고, 해당 패턴이 나타내는 로그 메시지의 속성을 더 정확하게 대표하도록 할 수 있으나, 패턴의 종류가 많아지게 되어 관리가 다소 어려울 수도 있다. 반면에, 임계값을 감소시킬수록, 패턴의 유형이 감소하게 되어 관리에 이점이 있고 처리를 위한 리소스도 적게 요구되는 장점이 있으나, 동일 패턴으로 분류된 로그 메시지 간에도 상이한 성질을 가질 수도 있다. 임계값의 설정은 처리하게 되는 시스템의 특성 또는 처리 기간과 같이, 조건에 따라 적응적으로 변경될 수도 있다. 예시적인 유사도의 임계값은 0.7일 수 있으며, 0.7 을 기준으로 임계값 이상 또는 초과의 경우, 임계값 이하 또는 미만의 경우로 패턴 분류 여부를 결정할 수도 있다.
한편, 로그 메시지에 포함된 토큰의 개수에 따라, 임계값이 상이하게 적용되도록 할 수 있다. 로그 메시지에 포함된 토큰의 수가 지나치게 작을 경우, 동일 토큰 또는 동일하지 않은 토큰의 개수에 상당히 민감하게 유사도가 변동될 수 있다. 따라서, 일 측면에 따르면 로그 메시지에 포함된 토큰의 개수가 미리 결정한 개수 미만일 경우에는, 토큰의 개수가 미리 결정한 개수 이상일 때와 임계값을 다르게 설정할 수 있다.
예를 들어, 임계치는, 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고, 임계치는, 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며, 제 1 값과 제 2 값은 상이하게 설정될 수 있다. 일 측면에 따르면, 제 1 값은 제 2 값보다 작을 수 있다.
일 측면에 따라, 미리 결정한 개수 미만 (또는 이하) 인지 여부는 비교 대상인 로그 메시지 및/또는 패턴 중 적어도 하나에 포함된 토큰이 미리 결정한 개수 미만 (또는 이하) 인 경우로 설정하고, 미리 결정한 개수 이상 (또는 초과) 인지 여부는 비교 대상인 로그 메시지 및 패턴에 포함된 토큰이 미리 결정한 개수 이상 (또는 초과) 인지 여부로 결정할 수 있다.
본 발명의 다른 측면에 의하면, 임계치는 하나 이상의 기존 패턴별로 각각 설정될 수 있다. 따라서, 특정 패턴에 대해서는 더 낮은 임계치를 적용하고, 다른 특정 패턴에 대해서는 더 높은 임계치를 적용할 수도 있다.
한편, 동일 패턴으로 분류되는 복수의 로그 메시지에 대해서, 패턴의 계층 구조에 따라 서브 패턴들로 재차 분류될 수 있다. 예를 들어, 제 1 패턴에 포함되는 제 1-1 서브 패턴 및 제 1-2 서브 패턴이 존재할 수 있다. 동일 패턴으로 분류되는 로그 메시지에 대해서도, 각각의 로그 메시지들 간에 변경될 수 있는 부분의 개수나 위치에 따라 다소 상이한 특성을 가질 수 있으므로, 패턴의 분류를 계층적으로 수행해여 보다 구체적인 분류가 가능하도록 할 수 있다.
도 11 은 로그 메시지 서브 패턴 분류를 위한 가변 영역 및 공통 영역의 개념도이다. 도 11 에 도시된 바와 같이, + 또는 - 가 존재하는 부분은 치환이 일어나면 되므로 이를 (?????) 로 바꿀 수 있으며, 하나의 패턴 내에도 여러 개의 서브 패턴이 존재할 수 있다. 즉, 도 11 에 도시된 바와 같이, 신규 패턴이나 기존 패턴들 각각은, 패턴을 구성하는 토큰들 중 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 (1110-1, 1110-2, 1110-3) 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역 (1120) 을 포함할 수 있다. 여기서 동일 패턴으로 분류되는 로그 메시지들 중 제 1 서브세트는 예를 들어 가변 토큰 영역 (1120) 을 2 개 가질 수 있고, 동일 패턴으로 분류되는 로그 메시지들 중 제 2 서브세트는 예를 들어 가변 토큰 영역 (1120) 을 1 개 가질 수 있으므로, 제 1 서브세트와 제 2 서브세트는 각각 상이한 서브 패턴으로 분류될 수 있다.
관련하여, 일 측면에 따르면, 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고, 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 가변 토큰 영역의 위치 및 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함할 수 있다.
도 12 는 개별 로그 메시지, 패턴 및 서브 패턴의 예시도이다. 도 12 에 도시된 바와 같이, 패턴 분류의 결과 하나의 패턴 내에 복수의 개별 로그 데이터들 (12a) 이 포함될 수 있다. 또한, 패턴 (12b) 각각은, 패턴에 포함되는 로그 메시지 중 하나를 예시로서 패턴으로서 표시하도록 할 수 있다. 도 12 에서는 syntax error 로 시작하는 복수개의 패턴을 예시적으로 도시하고 있다. 한편, 서브 패턴 (12c) 은 (?????) 를 추출해서 넣은 형태로서, 패턴에 포함되는 서브 패턴은 하나 또는 그 이상일 수 있다.
도 13 은 로그 메시지의 일반화 및 패턴 분류의 예시도이다. 도 13에 도시된 바와 같이, 서브 패턴으로 분류되지 않더라도 패턴 내의 메시지에 대해서 변화하는 부분을 (????) 와 같이 표시 (13a) 함으로써 최소한의 일반화를 수행할 수 있다. 한편, 제 1 패턴 (13b) 와 제 2 패턴 (13c) 은 서로 다른 패턴으로 자동 분류될 수 있다.
한편, 본 발명의 일 측면에 따른 시스템에서 실행되는 프로그램은, 사용자 스크립트 (script) 언어를 통해 수행되는 것일 수 있고, 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함할 수 있다. 즉, 일 측면에 따라 PHP 를 통해 프로그램이 실행될 경우, 수집되는 로그 메시지는 PHP 에러 메시지일 수 있다.
컴퓨팅 디바이스
도 2 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 예시적으로 나타낸 블록도이다. 도 2 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 컴퓨팅 디바이스 (30) 는 로그 파일 저장부 (110) 및 프로세서 (200) 를 포함할 수 있다. 프로세서 (200) 는 예를 들어 복수의 개별 프로세서로서 구성될 수도 있고, 프로세서 (200) 상에서 소프트웨어적으로 구현되는 모듈을 포함하도록 구성될 수 있다. 프로그램 실행 가상 머신 (VM) (250) 은 서비스를 제공하기 위한 프로그램을 프로세서 상에서 구동되도록 하고, 프로그램의 구동에 따른 로그 메시지들을 로그 파일 저장부 (110) 에 저장하도록 구성될 수 있다.
로그 메시지 생성 유닛 (210) 은 예를 들어 로그 파일 저장부 (110) 로부터 로그 메시지를 획득하고, 로그 메시지 분류 유닛 (220) 에 제공할 수 있다. 로그 메시지 분류 유닛 (220) 에 포함된 분절 유닛 (221) 은 로그 메시지를 분절하여 하나 이상의 토큰을 생성하도록 구성되고, 유사도 결정 유닛 (223) 은 토큰 단위의 비교를 통해, 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하며, 패턴 분류 유닛 (225) 은 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 로그 메시지를 제 1 패턴으로 분류하고, 하나 이상의 기존 패턴 중 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 로그 메시지를 신규 패턴으로 분류하도록 구성될 수 있다. 한편, 서브 패턴 분류 유닛 (227) 은 동일 패턴이라도 예를 들어 변동 가능 토큰의 개수 또는 위치 중 적어도 하나 이상에 따라 상이한 서브 패턴으로 로그 메시지가 분류되도록 할 수 있다.
로그 메시지 분류 유닛 (220) 의 작동에 따라 신규 패턴 분류가 발생되었을 경우, 신규 패턴에 대한 정보가 통지 유닛 (240) 으로 전달되고, 통지 유닛 (240) 은 이를 관라자 단말 (40) 로 제공하여 관리자가 신규 패턴으로 분류되는 로그 메시지가 발생하였음을 통지받도록 할 수 있다. 또한, 로그 메시지 분류 유닛 (220) 으 작동에 따라 기존 패턴으로 분류되는 로그 메시지에 대해 패턴 분류 정보가 통계 유닛 (230) 으로 전달되며, 기존 패턴으로 분류되는 로그 메시지가 소정 개수 이상 모였을 때, 통계 유닛 (230) 은 예를 들어 특정 유형의 패턴으로 분류되는 로그 메시지가 정해진 값에 비해 많이 발생하거나, 변화 속도가 미리 정해진 값에 비해 빠르다고 판단하는 것과 같이 이상 징후를 감지하여, 이상 징후에 관한 정보를 통지 유닛 (240) 으로 전달하고 통지 유닛 (240) 은 이를 관리자 단말 (40) 로 제공하여 관리자가 로그 메시지 발생에 따른 이상 징후를 통지받도록 할 수 있다. 여기서 관리자 단말 (40) 은 컴퓨팅 디바이스/서버 (30) 와 별개의 단말로서 구성될 수도 있고, 컴퓨팅 디바이스 (30) 가 관리자 단말 (40) 과 일체로서 형성될 수도 있다.
한편, 도 14 는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 구성을 개략적으로 나타낸다. 도 2 의 컴퓨팅 디바이스는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 예시적인 구성이며, 도 14 에 도시된 바와 같이 본 발명의 일 실시예에 따른 컴퓨팅 디바이스 (1400) 는 보다 간략하게 구성될 수도 있다. 메모리 (1410) 는 분류된 기존 패턴들에 대한 정보를 포함할 수 있으며, 본 발명의 일 실시예에 따른 패턴 분류 방법을 프로세서 상에서 구동하기 위한 명령어들을 저장할 수도 있다. 프로세서 (1420) 는 본 발명의 일 실시예에 따른 패턴 분류 방법을 실행할 수 있으며, 서비스를 제공하기 위한 프로그램을 실행시킬 수도 있다. 송수신부 (1430) 는 예를 들어 네트워크 (1500) 를 통해 서비스를 사용하는 사용자 단말과 정보를 송수신하거나, 별도의 관리자 단말 (40) 로 분류된 패턴과 관련되는 정보를 전달하도록 구성될 수도 있다.
상술한 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.
지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가되어질 수 있다.
이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
전술한 실시 예들의 조합은 전술한 실시 예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.
전술한 실시 예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
전술한 실시 예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
Claims (27)
- 컴퓨팅 디바이스에 의해 수행되는, 로그 메시지의 패턴을 분류하는 방법으로서,
로그 메시지를 획득하는 단계;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하는 단계;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하는 단계;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하는 단계; 및
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하는 단계를 포함하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 로그 메시지는,
오류 메시지 및 경고 메시지 중 적어도 하나를 포함하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 로그 메시지는,
컴퓨팅 디바이스에 포함된 프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 토큰을 생성하는 단계는,
상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 유사도를 결정하는 단계는,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 유사도를 결정하는 단계는,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 6 항에 있어서,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고,
상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정되는, 로그 메시지의 패턴을 분류하는 방법.
- 제 6 항에 있어서,
상기 유사도를 결정하는 단계는,
미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 8 항에 있어서,
상기 가중 토큰 목록은,
하나 이상의 구문 (syntax) 토큰을 포함하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며,
상기 제 1 값은 상기 제 2 값보다 작은, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 임계치는,
상기 하나 이상의 기존 패턴별로 각각 설정되는, 로그 메시지의 패턴을 분류하는 방법.
- 제 1 항에 있어서,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함하는, 로그 메시지의 패턴을 분류하는 방법.
- 제 3 항에 있어서,
상기 프로그램의 실행은 사용자 스크립트 (script) 언어를 통해 수행되는, 로그 메시지의 패턴을 분류하는 방법.
- 제 13 항에 있어서,
상기 사용자 스크립트 언어는, PHP, ASP, JSP, PYTHON, PERL 또는 RUBY 중 적어도 하나를 포함하는, 로그 메시지의 패턴을 분류하는 방법.
- 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스로서, 상기 프로세서는,
로그 메시지를 획득하고;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하도록 구성되는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 로그 메시지는,
오류 메시지 및 경고 메시지 중 적어도 하나를 포함하는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 로그 메시지는,
프로세서에 의한 프로그램의 실행에 따라 발생하는 메시지 정보를 기록하는 로그 파일로부터 추출되는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 토큰을 생성하는 것은,
상기 로그 메시지에 포함된 공백 영역을 경계로 상기 로그 메시지를 분절하되, 괄호로 구분된 영역에 포함된 공백 영역은 분절하지 아니하는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 유사도를 결정하는 것은,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 적어도 하나로부터, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 다른 하나로 변경하기 위한 토큰 변경의 회수를 기반으로 결정되는 변경 거리 (Edit distance) 를 상기 유사도로서 결정하는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 유사도를 결정하는 것은,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하는 토큰의 개수와, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 사이에서 일치하지 않는 토큰의 개수의 비율을 기준으로 상기 유사도를 결정하는, 컴퓨팅 디바이스.
- 제 20 항에 있어서,
상기 로그 메시지 및 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수는 서로 상이하고,
상기 일치하지 않는 토큰의 개수는, 상기 로그 메시지 및 상기 하나 이상의 기존 패턴 중 유사도가 높게 결정되는 쪽을 기준으로 결정되는, 컴퓨팅 디바이스.
- 제 20 항에 있어서,
상기 유사도를 결정하는 것은,
미리 결정된 가중 토큰 목록에 포함된 토큰에 대해 1 초과의 가중치를 적용하여 상기 유사도를 결정하는, 컴퓨팅 디바이스.
- 제 22 항에 있어서,
상기 가중 토큰 목록은,
하나 이상의 구문 (syntax) 토큰을 포함하는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이거나 또는 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 미만이라는 결정에 응답하여 제 1 값을 가지고,
상기 임계치는, 상기 로그 메시지에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이고 또한 상기 하나 이상의 기존 패턴에 포함된 토큰의 개수가 미리 결정한 제 1 개수 이상이라는 결정에 응답하여 제 2 값을 가지며,
상기 제 1 값은 상기 제 2 값보다 작은, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 임계치는,
상기 하나 이상의 기존 패턴별로 각각 설정되는, 컴퓨팅 디바이스.
- 제 15 항에 있어서,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 공통되는 부분인 공통 토큰 영역 및 동일 패턴으로 분류되는 복수의 로그 메시지들 사이에서 서로 상이한 부분인 가변 토큰 영역을 포함하고,
상기 하나 이상의 기존 패턴 또는 신규 패턴 중 적어도 하나는, 상기 가변 토큰 영역의 위치 및 상기 가변 토큰 영역의 개수 중 적어도 하나를 기반으로 결정되는 복수의 서브 패턴을 포함하는, 컴퓨팅 디바이스.
- 프로세서에 의해 실행 가능한 명령어들을 저장하는 컴퓨터 판독 가능한 저장 매체로서, 상기 프로세서에 의해 실행되었을 때 상기 명령어들은 상기 프로세서로 하여금,
로그 메시지를 획득하고;
상기 로그 메시지를 분절하여 하나 이상의 토큰을 생성하고;
상기 토큰 단위의 비교를 통해, 상기 로그 메시지와 하나 이상의 기존 패턴과의 유사도를 결정하고;
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 이상이라는 결정에 응답하여, 상기 로그 메시지를 상기 제 1 패턴으로 분류하고; 그리고
상기 하나 이상의 기존 패턴 중 상기 로그 메시지와의 유사도가 가장 높은 제 1 패턴의 상기 로그 메시지와의 유사도가, 미리 결정한 임계치 미만이라는 결정에 응답하여, 상기 로그 메시지를 신규 패턴으로 분류하게 하도록 구성되는, 컴퓨터 판독 가능한 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180152377A KR102137109B1 (ko) | 2018-11-30 | 2018-11-30 | 로그 메시지의 패턴을 분류하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180152377A KR102137109B1 (ko) | 2018-11-30 | 2018-11-30 | 로그 메시지의 패턴을 분류하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200065683A true KR20200065683A (ko) | 2020-06-09 |
KR102137109B1 KR102137109B1 (ko) | 2020-07-23 |
Family
ID=71082247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180152377A KR102137109B1 (ko) | 2018-11-30 | 2018-11-30 | 로그 메시지의 패턴을 분류하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102137109B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282751A (zh) * | 2021-05-28 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 日志分类方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990056548A (ko) | 1997-12-29 | 1999-07-15 | 윤종용 | 다중 로그 메시지 출력 방법 |
KR20070051429A (ko) * | 2005-11-15 | 2007-05-18 | 한국전자통신연구원 | 상황 정보 관리 시스템 및 방법 |
WO2016093839A1 (en) * | 2014-12-11 | 2016-06-16 | Hewlett Packard Enterprise Development Lp | Structuring of semi-structured log messages |
KR20160142311A (ko) * | 2014-03-11 | 2016-12-12 | 아마존 테크놀로지스, 인크. | 블록-기반 저장장치에서의 페이지 캐시 기록 로깅 |
US20170236023A1 (en) * | 2015-11-17 | 2017-08-17 | Nec Laboratories America, Inc. | Fast Pattern Discovery for Log Analytics |
-
2018
- 2018-11-30 KR KR1020180152377A patent/KR102137109B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990056548A (ko) | 1997-12-29 | 1999-07-15 | 윤종용 | 다중 로그 메시지 출력 방법 |
KR20070051429A (ko) * | 2005-11-15 | 2007-05-18 | 한국전자통신연구원 | 상황 정보 관리 시스템 및 방법 |
KR20160142311A (ko) * | 2014-03-11 | 2016-12-12 | 아마존 테크놀로지스, 인크. | 블록-기반 저장장치에서의 페이지 캐시 기록 로깅 |
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 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113282751A (zh) * | 2021-05-28 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 日志分类方法及装置 |
CN113282751B (zh) * | 2021-05-28 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 日志分类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR102137109B1 (ko) | 2020-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954568B2 (en) | Root cause discovery engine | |
Baldwin et al. | Leveraging support vector machine for opcode density based detection of crypto-ransomware | |
US20190258648A1 (en) | Generating asset level classifications using machine learning | |
Mannhardt et al. | Decision mining revisited-discovering overlapping rules | |
US8453027B2 (en) | Similarity detection for error reports | |
US20210279164A1 (en) | Real Time Application Error Identification and Mitigation | |
US11860721B2 (en) | Utilizing automatic labelling, prioritizing, and root cause analysis machine learning models and dependency graphs to determine recommendations for software products | |
CN112602081A (zh) | 利用警报置信度分配来增强网络安全和操作监控 | |
US11829455B2 (en) | AI governance using tamper proof model metrics | |
US20160306967A1 (en) | Method to Detect Malicious Behavior by Computing the Likelihood of Data Accesses | |
US11146580B2 (en) | Script and command line exploitation detection | |
KR102153035B1 (ko) | 악성 마이닝 동작 탐지 방법 및 그 시스템 | |
US10713140B2 (en) | Identifying latent states of machines based on machine logs | |
US10824694B1 (en) | Distributable feature analysis in model training system | |
JP2016100005A (ja) | リコンサイル方法、プロセッサ及び記憶媒体 | |
CN111897696A (zh) | 服务器集群硬盘状态检测方法、装置、电子设备及存储介质 | |
US20220277176A1 (en) | Log classification using machine learning | |
US20240004993A1 (en) | Malware detection in containerized environments | |
KR102137109B1 (ko) | 로그 메시지의 패턴을 분류하는 방법 및 장치 | |
US20220366056A1 (en) | Computer security using zero-trust principles and artificial intelligence for source code | |
CN112632000B (zh) | 日志文件聚类方法、装置、电子设备和可读存储介质 | |
US20190163598A1 (en) | Methods and systems to determine baseline event-type distributions of event sources and detect changes in behavior of event sources | |
CN115495424A (zh) | 数据处理的方法、电子设备和计算机程序产品 | |
JP7538272B2 (ja) | 機械学習モデル運用管理システム、運用管理方法及びコンピュータプログラム | |
CN109800775B (zh) | 文件聚类方法、装置、设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |