Journal Search Engine
Search Advanced Search Adode Reader(link)
Download PDF Export Citaion korean bibliography PMC previewer
ISSN : 2005-0461(Print)
ISSN : 2287-7975(Online)
Journal of Society of Korea Industrial and Systems Engineering Vol.39 No.2 pp.129-137
DOI : https://doi.org/10.11627/jkise.2016.39.2.129

Correlation Analysis of Event Logs for System Fault Detection

Ju-Won Park*, Eunhye Kim**, Jaekeun Yeom*, Sungho Kim*
*Div. of Supercomputing, KISTI
**Hyper-connected Communication Research Lab. ETRI
Corresponding Author : juwon.park@kisti.re.kr
April 18, 2016 June 15, 2016 June 17, 2016

Abstract

To identify the cause of the error and maintain the health of system, an administrator usually analyzes event log data since it contains useful information to infer the cause of the error. However, because today’s systems are huge and complex, it is almost impossible for administrators to manually analyze event log files to identify the cause of an error. In particular, as OpenStack, which is being widely used as cloud management system, operates with various service modules being linked to multiple servers, it is hard to access each node and analyze event log messages for each service module in the case of an error. For this, in this paper, we propose a novel message-based log analysis method that enables the administrator to find the cause of an error quickly. Specifically, the proposed method 1) consolidates event log data generated from system level and application service level, 2) clusters the consolidated data based on messages, and 3) analyzes interrelations among message groups in order to promptly identify the cause of a system error. This study has great significance in the following three aspects. First, the root cause of the error can be identified by collecting event logs of both system level and application service level and analyzing interrelations among the logs. Second, administrators do not need to classify messages for training since unsupervised learning of event log messages is applied. Third, using Dynamic Time Warping, an algorithm for measuring similarity of dynamic patterns over time increases accuracy of analysis on patterns generated from distributed system in which time synchronization is not exactly consistent.


시스템 결함 분석을 위한 이벤트 로그 연관성에 관한 연구

박 주원*, 김 은혜**, 염 재근*, 김 성호*
*한국과학기술정보연구원 슈퍼컴퓨팅본부
**한국전자통신연구원 초연결통신연구소

초록


    1서 론

    일반적으로 시스템 관리자는 시스템에 결함이 발생한 경우 결함의 원인을 파악하기 위해 이벤트 로그 데이터를 분석한다. 이벤트 로그 파일에는 Warning, Error, Critical 등 결함의 등급을 의미하는 Severity level 값뿐만 아니라 결함의 원인을 추론할 수 있는 메시지를 포함하고 있기 때문에 시스템 관리자는 이벤트 로그의 메시지를 분석함 으로써 결함의 발생 원인을 추론할 수 있다. 그러나 최근 들어 시스템의 규모가 커지고 복잡해짐에 따라 발생하는 이벤트 로그 데이터의 양이 많고 시스템 구성 모듈간 관 계도 복잡해 관리자가 이벤트 로그 파일을 하나하나 분석 하여 결함 원인을 파악하는 것은 거의 불가능하다[7]. 특 히, 클라우드 관리 시스템으로 많이 활용되는 오픈스택 (OpenStack)[6]의 경우 다수의 서버에 NOVA, NEUTRON, KEYSTONE 등 다양한 서비스 모듈이 연계되어 실행되 기 때문에 결함 발생 시 각 노드에 접속하여 서비스 모듈 별로 이벤트 로그 메시지를 분석하는 것은 매우 어려운 작업이다. 또한 운영 체제, 장치 드라이버와 같은 시스템 레벨에서 발생하는 결함이 응용 서비스 레벨에 영향을 주 기 때문에 시스템 레벨의 이벤트 로그와 응용 서비스 레 벨의 이벤트 로그를 통합하여 분석해야 결함 원인을 파악 할 수 있다.

    본 논문에서는 시스템뿐만 아니라 응용 프로그램에서 발생하는 이벤트 로그 데이터를 하나의 서버에 수집하고 이를 메시지 기반으로 유사한 로그를 군집화하고 연관성 을 분석함으로써 관리자가 결함의 원인을 신속히 파악할 수 있는 메시지 기반 로그 분석 방안을 제시한다. 이를 위 해 먼저, 다수의 서버에서 발생하는 이벤트 로그 데이터 를 수집하여 하나의 수집 서버로 전송함으로써 분산된 이 벤트 로그 데이터를 수집한다. 둘째, 수집된 이벤트 로그 데이터를 메시지 기반으로 분석하기 위해 정규화를 진행 한다. 셋째, 정규화 된 메시지를 계층적 군집(Hierarchical Clustering) 기법[4]을 통해 군집화한다. 마지막으로 Dynamic Time Warping(DTW) 기법[12]을 이용하여 군집화된 메시지 그룹간의 연관성을 분석한다.

    본 논문은 다음 3가지 측면에서 의의가 있다. 먼저, 시 스템 레벨과 응용 서비스 레벨의 이벤트 로그를 모두 수 집하여 로그간 연관성을 분석함으로써 결함 발생의 근본 원인을 파악할 수 있다. 둘째, 이벤트 로그 메시지를 비 지도 학습(unsupervised learning) 기반으로 그룹화함으로 써 모델 생성시 관리자가 메시지를 분류해줘야 하는 어 려움을 해결할 수 있다. 셋째, 시간에 따른 동적 패턴의 유사도를 분석하는 DTW 기법을 활용함으로써 시간 동 기화가 정확히 일치하지 않는 분산 시스템에서 발생하는 발생 패턴을 정확히 분석할 수 있다.

    본 논문의 제 2장에서는 관련 연구에 대해 살펴본다. 제 3장에서는 본 논문에서 제시한 메시지 기반 연관성 분석 프레임워크를 설명하고 제 4장에서는 오픈스택 시 스템을 대상으로 구현 방안을 제시한다. 제 5장에서는 실제 운영 중인 오픈스택의 이벤트 로그 데이터를 수집 하여 분석한 결과를 제시하고 마지막으로 제 6장에서 결 론을 맺는다.

    2관련 연구

    2.1오픈스택

    최근 대규모의 클라우드 시스템을 구축하고 서비스하 기 위해 오픈스택을 많이 활용한다. 오픈스택은 컴퓨팅, 네트워킹, 스토리지 자원을 대규모 풀(pool) 형태로 구성 하여 사용자의 요청시 자원을 동적으로 구성하여 제공하 기 위한 오픈 클라우드 관리 시스템이다[6]. <Figure 1> 은 오픈스택의 주요 구성 서비스를 보여주는 것으로 7개 의 서비스가 유기적으로 연동되어 서비스된다.

    • NOVA : 호스트 노드의 CPU, 메모리 등 컴퓨팅 자원 을 이용하여 가상 노드를 만들기 위한 서비스로써 모 든 컴퓨팅 노드에 설치된다.

    • NEUTRON : 가상 노드의 네트워크 연결을 지원하기 위한 서비스로써 네트워크 노드와 컴퓨팅 노드에 설치 된다. 일반적으로 네트워크 노드에 설치되는 l3 에이젼 트는 DHCP를 통해 동적 IP를 할당하며 컴퓨팅 노드 에 설치되는 l2 에이전트는 호스트 노드에 브릿지를 생 성하여 하나의 네트워크 카드를 다수의 가상 노드에서 공유하도록 지원한다.

    • CINDER : 블럭(Block) 스토리지를 제공하는 서비스로 써 가상 노드의 기본 저장 영역을 제공한다.

    • SWIFT : 오브젝트(Object) 스토리지를 제공하는 서비 스로써 이를 통해 아마존의 S3와 같은 서비스를 제공 할 수 있다.

    • GLANCE : 가상 노드 이미지를 관리하기 위한 서비스 로써 다양한 형태의 가상 노드를 이미지로 생성하여 관리할 수 있다.

    • KEYSTONE : 사용자의 접근 관리 및 인증을 위한 서 비스를 제공한다.

    • HORIZON : GUI를 통해 관리자가 쉽게 오픈스택 운 영 및 관리를 할 수 있도록 구현된 서비스로써 웹 인 터페이스를 통해 제공된다.

    2.2로그 메시지 포맷

    본 논문에서는 시스템 레벨과 응용 서비스 레벨에서 발생한 이벤트 로그 데이터를 통합하여 분석함으로써 결 함의 원인을 파악하고자 한다. 이를 위해 시스로그데몬 (syslogd)에서 출력되는 로그 데이터와 오픈스택에서 출 력되는 로그 데이터의 포맷을 살펴본다. 먼저 시스로그 데이터는 Gerhards[2]에서 데이터 포맷과 전송 방법 등을 규정하고 있으며 본 논문에서는 헤더 정보를 중심으로 <Table 1>에서 제시한 포맷으로 이벤트 로그 정보를 수 집한다.

    둘째, 오픈스택 로그 데이터는 <Figure 2>와 같이 이벤 트 발생 시각, 프로세스 ID, severity level, 이벤트 발생한 오픈스택 모듈, 메시지 총 5개의 필드로 구분되어 출력 된다. 로그 발생 시각은 “년-월-일 시: 분: 초” 포맷으로 출력 되며 severity level은 DEBUG, INFO, AUDIT, WARNING, ERROR, CRITICAL, TRACE 총 7단계로 구분된다. 오픈 스택 이벤트 로그의 큰 특징 중 하나인 TRACE 로그 메 시지는 결함의 원인을 파악하기 위해 역추적한 결과를 출 력한 메시지로써 결함의 원인을 유추하는데 유용한 정보 를 제공한다.

    2.3머신 러닝 기반 시스템 로그 분석 기법

    최근 산업 분야에 데이터 마이닝 분야에서 연구되고 있 는 기법들이 다양하게 활용되고 있다[3, 13]. Joo and choi [3]에서는 군집화 및 프로세스 마이닝을 기반으로 커리큘 럼 마이닝 프레임워크를 제안하였으며 Yoo[13]에서는 군 집분석을 활용하여 제품 플랫폼을 구성할 공동모듈 선정 방법을 제시하였다. 특히, 슈퍼컴퓨터를 비롯한 대규모 클 러스터 시스템의 시스템 로그 분석을 위해 머신 러닝 기법 을 활용한 논문이 증가하고 있다[5, 8, 11, 14-15]. Pitakrat et al.[8]에서는 시스템 이벤트 로그를 분류하고 머신러닝 기법을 이용하여 장애를 예측하는 SCAPE 기법을 제시하 였다. 이를 위해 먼저 중복 데이터를 필터링하여 데이터양 을 줄이고 지도 학습(supervised learning) 기법을 사용하여 이벤트 로그를 분류한다. 이렇게 분류된 데이터를 기반으 로 이벤트 발생 시간 패턴을 검출하고 향후 발생할 이벤트 발생 시간을 예측하는 것이다. Oliner and Stearley[5]에서 는 5개의 슈퍼컴퓨터에서 발생하는 이벤트 로그를 수집하 고 알람 메시지를 구분하여 필터링함으로써 이벤트 로그 발생 패턴을 분석한 결과를 제시하였다. Zheng et al.[14] 에서는 미국 아르곤 국립 연구소에 있는 Intrepid 시스템 (IBM Blue Gene/P)에서 발생하는 이벤트 로그 정보를 수 집하여 중요 이벤트(Fatal event)가 발생하기 전에 발생하 는 이벤트 로그를 Genetic algorithm 기법으로 분석한 결과 를 제시하였다. Sahoo et al.[11]에서는 대규모 클러스터 시 스템의 능동적(proactive) 예측 및 관리 시스템을 제시하였 다. 이를 위해 대규모의 클러스터 시스템에서 발생하는 로 그를 수집하여 6개의 이벤트 타입과 4개의 클래스로 분류 하고 time-series model, rule-based classification model, Bayesian network model을 적용하여 예측한 실험 결과를 제시하였다. Zheng et al.[15]에서는 필터링 작업 시에 중복 된 정보는 제거하고 패턴 분석의 필수적인 정보는 보존함 으로써 예측의 정확도를 향상시켰다.

    본 연구는 기존 연구와 비교해 다음 3가지 측면에서 의 의를 찾을 수 있다. 먼저, 시스로그데몬에서 생성되는 이 벤트 로그 메시지를 분석함으로써 x86 기반 클러스터 시 스템에 적용이 가능하다. 기존의 많은 연구에서는 IBM Blue Gene 시스템의 이벤트 로그 데이터를 활용하여 분 석하였다[5, 8, 15]. IBM POWER 시스템의 경우 이벤트 로그 메시지가 시스로그데몬에 비해 세분화되어 분류 및 예측에 효율적이지만 일반적으로 많이 활용되는 x86 기 반 서버에는 적용할 수 없다는 문제가 있다. 둘째, 비지도 학습 기반의 머신 러닝 기법을 활용하여 모델 훈련 시 사 용자가 이벤트를 분류할 필요가 없다. Oliner and Stearley [5], Pitakrat et al.[8]의 경우 이벤트 로그 메시지를 사용자 가 직접 분류하는 지도 학습 기반의 머신 러닝 기법을 사 용하여 이벤트 로그 데이터가 대량으로 생성되는 대규모 의 분산 시스템에 적용하는데 어려움이 있다. 셋째, 시스 템 레벨의 이벤트 로그와 응용 서비스 레벨의 이벤트 로그 를 통합하여 연관성 분석 결과를 제시한다. 기존 연구에 서는 시스템 레벨에서 발생하는 이벤트 로그 데이터만을 대상으로 메시지 분류 및 결함 예측 결과를 제시할 뿐 메시 지 간의 연관 관계를 제시하지는 못했다[5, 8, 11, 14-15].

    3제안 기법

    슈퍼컴퓨터와 같이 대규모 시스템에서 신속한 결함 원 인을 분석하기 위해서는 시스템 레벨과 응용 서비스 레 벨의 이벤트 로그를 모두 수집하고 통합하여 로그간 연 관성을 파악해야 한다. 이를 위해 본 논문에서는 이벤트 로그 기반 연관성 분석 프레임워크를 제시하며 <Figure 3>에서 보는 바와 같이 4단계로 구분할 수 있다.

    첫째, 분산된 다수의 서버에서 발생하는 이벤트 로그 데이터들을 하나의 서버로 수집한다. 둘째, 수집된 이벤 트 로그 데이터를 정규화한다. 즉, 수집된 데이터에 필터 링 기법을 적용하여 중복된 이벤트 로그를 제거하고 결 함의 원인을 유추할 수 있는 메시지 부분을 추출하여 정 규화시킨다. 셋째, 정규화된 로그 데이터를 메시지 기반 으로 군집화한다. 이를 위해 먼저 메시지 전체를 기준으 로 단어별로 분류한 후 단어의 사용 여부 및 사용 빈도 수를 나타내는 메트릭 형태로 변환한다. 이렇게 변환된 메트릭의 유클리디안 거리(Euclidean distance)를 기반으 로 계층적 군집분석을 적용하여 유사도에 따라 군집화한다. 넷째, DTW 분석 기법을 기반으로 군집화된 메시지 그룹 간의 연관성을 분석한다. 일반적으로 동시에 발생한 로 그 메시지들은 관련성이 높기 때문에 군집화된 메시지의 발생 시간 패턴을 비교함으로써 메시지간 연관성을 분석 할 수 있다.

    4구 현

    본 논문에서는 최근 클라우드 서비스를 위해 많이 활 용되고 있는 오픈스택 시스템을 대상으로 시스로그데몬 에서 출력되는 이벤트 로그(시스템 레벨의 로그 데이터) 와 각 서비스 모듈에서 출력되는 이벤트 로그(응용 서비 스 레벨의 로그 데이터)를 수집하고 분석하여 이벤트 로 그간 연관성을 제시한다.

    4.1로그 수집

    오픈스택은 제 2.1절에서 언급한 바와 같이 다수의 서비 스 모듈이 연동되어 실행되는 클라우드 관리 플랫폼으로 일반적으로 하나의 서버가 아닌 다수의 서버에 분산되어 실행된다. 또한 실행되는 서비스에 따라 서로 다른 파일 에 로그가 출력된다. 예를 들어, 컴퓨팅 노드에 설치되는 NOVA 서비스의 경우 /var/log/nova 파일에, NEUTRON의 경우 /var/log/neutron 파일에 이벤트 로그가 각각 출력된 다. 이와 같이 다수의 서버에 다수의 파일로 혼재되어 있 는 로그 파일을 하나의 서버로 수집하기 위해 본 논문에서 는 시스로그데몬을 활용한다. 즉, 오픈스택 이벤트 로그 메시지를 OpenStack[6]에서 제시한 포맷으로 시스템 로그 에 출력하고 이를 rsyslog 클라이언트[10]를 통해 서버로 전송한다. 이를 위해 먼저, rsyslog 서버를 <Figure 4>와 같 은 설정을 통해 활성화하여 rsyslog 클라이언트로부터 이 벤트 로그 데이터를 수집하고 이를 데이터베이스에 저장 한다.

    둘째, 오픈스택에서 출력되는 메시지를 시스로그 형태 로 시스템 로그 파일에 출력되도록 오픈스택의 각 서비 스 설정 파일에 <Figure 5>와 같은 설정을 추가한다.

    셋째, 시스템 로그에 출력된 로그 메시지를 수집하여 rsyslog 서버로 전송하기 위해 오픈스택을 구성하는 모든 노드의 rsyslog.conf 파일에 <Figure 6>의 설정을 추가하 여 rsyslog 클라이언트를 활성화한다.

    이와 같이 3단계의 설정을 NOVA 서비스에 추가할 경우 이벤트 로그 메시지가 /var/log/nova가 아닌 /var/log/ message에 Facility 값을 16(LOG_LOCAL0)으로 설정되 어 출력됨을 확인할 수 있다.

    4.2전처리

    오픈스택은 분산된 다수의 서버에서 다양한 서비스 모듈이 실행되고 서로 연동되어 운영되기 때문에 이벤트 로그 메시지의 종류가 다양하고 수도 매우 많다. 그러므 로 필터링을 통해 중복된 이벤트 로그 메시지를 제거하 고 메시지 필드의 내용 중에서 중요한 메시지만을 추출 하여 정규화하는 전처리 작업이 필요하다. Pitakrat et al. [8]에서 제시한 바와 같이 추출된 메시지 내용을 의미론 적으로 유사한 이벤트 로그로 군집화하기 위해 다음 정 규화 과정을 실행한다.

    먼저, 모든 문자를 소문자로 변환한다. 대소문자는 의 미론적으로 구분이 없음에도 불구하고 대부분의 프로그 래밍 언어에서 구분하여 처리하는 경우가 많다. 특히, 데 이터 마이닝 분야에서 많이 활용되는 언어 중 하나인 R [9]의 경우 대소문자를 구분하여 비교하기 때문에 모든 문자를 소문자로 변환한 후 유사성을 계산한다. 둘째, 의 미를 담고 있는 단어가 아닌 기호, 숫자, 조사 등을 제거 한다. 예를 들어, -, +, ‘, : 와 같은 기호나 a, the, of, such 와 같은 관사 및 조사를 제거함으로써 군집화의 정확도 를 높일 수 있다. 셋째, ID와 같은 고유값을 제거한다. 오픈스택의 경우 모든 가상 인스턴스에 ID를 부여하여 관리한다. 그러므로 동일한 현상의 이벤트 로그 메시지 에도 각각 다른 인스턴스 ID가 포함되어 있기 때문에 ID 을 제거하여 정확도를 높인다. 넷째, 디렉토리 경로는 PATH라는 단어로 대체한다. 오픈스택의 로그에는 파일 의 위치를 표기하는 디렉토리 경로가 다수 포함되어 있 으나 의미론적 입장에서는 파일의 위치를 설명하는 부수 적인 의미를 내포하기 때문에 디렉토리 경로를 PATH라 는 단어로 변경하여 군집화를 진행한다.

    4.3메시지 기반 군집화

    전처리 작업을 통해 정규화된 메시지를 의미론적으로 유사한 것으로 군집화하기 위해 먼저 메시지 전체를 단 어별로 분류하고 단어의 사용여부와 빈도수를 나타내는 메트릭으로 변환한다. 이를 기반으로 <Table 2>에서 보 는 바와 같이 계층적 군집분석 기법을 통해 유사도를 계 산하고 유사도가 일정값(threshold)보다 큰 경우 하나의 클러스터를 구성함으로써 군집화한다.

    4.4DTW 기법을 통한 군집화된 메시지 그룹 간 연관성 분석

    일반적으로 동일한 결함에 의한 이벤트 로그 메시지들 은 동일한 시간에 발생한다. 그러므로 이벤트 로그 메시 지가 발생한 시간의 패턴을 비교 분석하여 메시지간 연관 성을 파악할 수 있다. 본 논문에서는 이벤트 발생 패턴을 비교 분석하기 위해 DTW 기법을 활용한다. DTW는 시간 길이가 서로 다른 두 동적 패턴 사이의 유사도를 판별하 기 위한 알고리즘으로 두 개의 순차 데이터의 시간 길이 를 왜곡시킴으로써 두 패턴의 최적의 정합(matching)을 구 하고, 해당 정합에서의 두 데이터 사이의 거리를 계산한다. 예를 들어, 길이가 각각 p, q인 두 이벤트 발생 시간 패턴 X = (x1, x2, …, xp), Y = (y1, y2, …, yp)가 주어졌을 때, 패 턴의 정렬을 위해 행렬이 만들어지며, 이 행렬의 (i, j)번 째 요소는 유클라디안 거리 (xi - yj)2 를 이용한 d(xi, yj) 를 포함한다. DTW 알고리즘은 연속성, 단조성의 조건을 이용하며, 두 패턴 간의 누적 거리 D (i, j)는 다음과 같이 계산된다.

    D ( i , j ) = min { D ( i 1 , j 1 ) D ( i 1 , j ) D ( i , j 1 ) } + d ( x i , y j )

    본 논문에서는 군집화된 메시지 그룹들의 발생 패턴 유 사도를 DTW를 이용하여 계산하고 이를 기반으로 로그 연관성을 분석함으로써 동일한 결함 원인에 의해 발생하 는 메시지 형태를 파악할 수 있다.

    5실험 결과

    5.1실험 환경

    본 논문에서는 한국과학기술정보연구원에서 실제 운 영하고 있는 오픈스택 플랫폼의 이벤트 로그 데이터를 하 루 동안 수집하여 제 4장에서 제시한 방법으로 R을 통해 분석한 결과를 제시한다. <Figure 7>은 구성된 오픈스택 플랫폼의 구성도를 보여준다.

    <Figure 7>에서 보는 바와 같이 구성된 오픈스택 플랫 폼은 총 31대로 구성되어 있으며 28대의 컴퓨팅노드와 네트 워크노드, 제어노드, 인증노드로 1대씩을 사용하고 있다. 오픈스택 커뮤니티에서 제공하는 메뉴얼에서 제시한 바 와 같이 각 서비스 모듈간 통신을 위한 관리 네트워크와 실제 데이터 전송을 위한 데이터 네트워크를 별도로 구성 하였으며 외부 연결을 위해 제어노드, 인증노드, 네트워크 노드만 외부 네트워크에 연결하였다. 시스로그데몬에서 출력되는 이벤트 로그 데이터와 오픈스택의 로그 데이터 를 서버로 전송하기 위해 모든 오픈스택 노드에 rsyslog 클라이언트를 설치하고 관리 네트워크에 rsyslog 서버를 연결하여 이벤트 로그 데이터를 수집하였다.

    5.2메시지 기반 군집화 결과

    <Table 3>는 수집된 이벤트 로그의 메시지를 기반으로 의미론적으로 군집화한 결과를 보여준다. <Table 3>의 첫 번째 필드는 이벤트 로그 데이터가 발생한 호스트 정보이 다. 두 번째 필드는 메시지가 발생한 오픈스택 모듈을 나 타내는 필드이다. 제 2.2절에서 언급한 바와 같이 오픈스 택의 경우 로그 데이터 포맷에 이벤트 로그가 발생한 서 비스 모듈이 표기되기 때문에 결함이 발생한 모듈을 쉽게 파악할 수 있다. 세 번째 필드는 Facility code로 오픈스택 의 경우 16(LOG_LOCAL0) 값으로 수집되었음을 확인할 수 있다. 네 번째 필드는 발생한 이벤트 로그 수이며 다섯 번째 필드는 메시지 기반으로 군집화한 결과이다. 본 실 험에서는 오픈스택 모듈 필드와 Facility 필드 값을 이용 하지 않고 메시지에 담겨있는 텍스트만을 이용한 비지도 학습 방식의 군집화 기법을 사용했음에도 두 번째, 세 번 째 필드와의 연관성을 확인할 수 있다. 즉, 오픈스택에서 발생한 이벤트 로그의 경우 neutron.agent.l3_agent 모듈에 서 발생하는 이벤트 로그만 8번과 9번 그룹으로 구분되었 을 뿐 나머지 모듈에서 발생한 이벤트 로그 데이터는 하 나의 그룹으로 구분되어 있음을 확인할 수 있다. 8번과 9 번 그룹으로 구분된 이유는 각 그룹별 메시지와 원인을 보여주는 <Table 4>를 통해 동일한 오픈스택의 neutron. agent.l3_agent 모듈에서 발생한 이벤트 로그임에도 발생 원인은 Failed synchronizing routers와 Failed reporting state 로 차이가 있음을 확인할 수 있다. 또한, Compute node 3 에서 Facility 0(커널 메시지)로 발생된 메시지도 <Table 4>를 통해 메시지 형태는 커널 메시지로 동일하지만 내 용에는 차이가 있음을 확인할 수 있다.

    5.2DTW를 통한 군집화된 메시지간 연관성 분석 결과

    <Figure 8>은 각 그룹별 이벤트 로그 데이터 발생 패 턴을 보여주는 것으로 X축은 발생 시각(00:00~23:59)을 의미하여 Y축은 발생된 이벤트 로그 데이터 수를 의미 한다.

    <Figure 9>는 군집화된 메시지 그룹에서 이벤트 발생 패턴 유사도를 DTW를 통해 계산하고 거리값 15를 기준 으로 그룹을 분류한 결과를 나타낸다. 그림에서 보는 바 와 같이 3, 4, 5 그룹과 6, 7, 8, 9 그룹간 패턴 유사도가 높음을 확인할 수 있다. 특히, 3, 4, 5 그룹의 경우 <Figure 8>를 통해 이벤트 로그 발생 패턴이 동일함을 확인할 수 있고 이는 동일한 결함 원인으로 발생되는 이벤트 로그 메시지들로 유추할 수 있다. <Table 4>를 통해 3, 4, 5 메 시지 그룹의 실제 내용 및 원인을 살펴보면 모두 SATA 로 연결된 하드 디스크 사용에 결함이 있어서 발생하는 이벤트 로그 메시지 그룹들임을 확인할 수 있다.

    그룹 6, 7, 8, 9의 경우 제어노드의 Neutron-server와 네 트워크노드의 Neutron l3 agent에서 발생하는 이벤트 로 그 메시지로 두 모듈간 연결에 결함이 있어서 발생한 이 벤트 로그 메시지다.

    본 논문의 실험 결과에서 주목할 만한 결과는 6 그룹과 패턴 유사도가 높은 그룹을 발견한 것이다. <Figure 8>과 같이 7, 8, 9 그룹의 발생 패턴의 유사도가 높은 것은 쉽게 파악할 수 있지만 6 그룹의 경우 패턴 유사도가 높은 그룹 을 발견하기 어렵다. 실제로 Neutron 서버와 AMQP 사이 의 연결 문제로 인하여 발생한 이벤트 로그 메시지(Class 6)의 경우 오픈스택 모듈 필드는 root로 표기되어 오픈스 택 서비스 모듈과의 연관성을 유추하기 어려우며 이벤트 로그 개수만으로도 다른 그룹과의 연관성을 유추하기 어 렵다. 그러나 본 연구에서는 이벤트 로그 메시지 군집의 DTW 기반 유사도 분석을 통해 6 그룹의 발생 패턴과 유 사도가 높은 오픈스택 서비스 모듈을 파악할 수 있었다.

    6결 론

    시스템 관리자는 시스템에 결함이 발생한 경우 결함 의 원인을 파악하기 위해 이벤트 로그 데이터를 분석한다. 그러나 시스템은 규모가 크고 복잡해짐에 따라 발생하는 이벤트 로그 데이터양이 많고 시스템 구성 모듈간 관계 도 복잡해 관리자가 이벤트 로그 파일을 하나하나 분석 하여 결함 원인을 파악하는 것은 거의 불가능하다. 이를 위해 본 논문에서는 시스템뿐만 아니라 응용 프로그램에 서 발생하는 이벤트 로그 데이터를 하나의 서버에 수집 하고 이를 메시지 기반으로 유사한 로그로 군집화하고 연관성을 분석함으로써 관리자가 결함의 원인을 신속히 파악할 수 있는 메시지 기반 로그 분석 방안을 제시하였 다. 또한 제안된 분석 기법을 구현할 수 있는 방안도 제 시하고 실제로 운영 중인 오픈스택 시스템의 이벤트 로 그 데이터를 수집하여 분석 결과를 제시하였다.

    Figure

    JKISE-39-129_F1.gif

    OpenStack Service Modules

    JKISE-39-129_F2.gif

    OpenStack Log Format

    JKISE-39-129_F3.gif

    Overview of the Proposed Framework

    JKISE-39-129_F4.gif

    Rsyslog Server Configuration

    JKISE-39-129_F5.gif

    OpenStack Configuration

    JKISE-39-129_F6.gif

    Rsyslog Client Configuration.

    JKISE-39-129_F7.gif

    Experiment Environment

    JKISE-39-129_F8.gif

    Clustered Messages Occurring Time Patterns

    JKISE-39-129_F9.gif

    Correlation among Clustering Messages

    Table

    Syslog Format

    Context-aware Message Clustering

    Clustering Results

    Clustering Message and Description

    Reference

    1. Feinerer I , Hornik K (2013) Package tm , Tech. Rep. CRAN,
    2. Gerhards R (2009) The syslog protocol , RFC 5424,
    3. Joo W-M , Choi JY (2015) Curriculum mining analysis using clustering-based process mining , Journal of Society of Korea Industrial and Systems Engineering, Vol.38 (4) ; pp.45-55
    4. Kaufman K , Rousseeuw PJ (2009) Finding groups in data : An introduction to cluster analysis, John Wiley and Sons,
    5. Oliner A , Stearley J (2007) What supercomputers say : A study of five system logs , in Proc. of 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks, ; pp.575-584
    6. OpenStackOpenStack open source cloud computing software, [Online], Available at : http://www.openstack.org/
    7. Park Y-S , Yoon B-N , Lim J-H (1999) An empirical study on faults prediction for large scale telecommunication software , Journal of the Korean Society for Quality Management, Vol.27 (2) ; pp.263-276
    8. Pitakrat T , Grunert J , Kabierschke O , Keller F , Hoorn A (2014) A framework for system event classification and prediction by means of machine learning , in Proc. of the 8th International Conference on Performance Evaluation Methodologies and Tools. ICST, (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), ; pp.173-180
    9. R development core teamA language and environment for statistical computing, [Online], Available : http://www.r-project.org
    10. RSYSLOGThe rocket-fast system for log processing, Available: http://www.rsyslog.com
    11. Sahoo RK , Oliner AJ , Rish I , Gupta M , Moreira JE , MA S , Vilalta R , Sivasubramaniam A (2003) Critical event prediction for proactive management in large-scale computer clusters , in Proc. of the 9th ACM SIGKDD international conference on Knowledge discovery and data mining, ; pp.426-435
    12. Sakoe H , Chiba S (1978) Dynamic programming algorithm optimization for spoken word recognition , IEEE Transactions on Acoustics Speech and Signal Processing, Vol.26 (1) ; pp.43-49
    13. Yoo J (2014) Module communization for product platform design using clustering analysis , Journal of Society of Korea Industrial and Systems Engineering, Vol.37 (3) ; pp.89-98
    14. Zheng Z , Lan Z , Gupta R , Coghlan S , Beckman P (2010) A practical failure prediction with location and lead time for Blue Gene/P , in Proc. of International Conference on Dependable Systems and Networks Workshops (DSN-W), ; pp.15-22
    15. Zheng Z , Lan Z , Park BH , Geist A (2009) System log pre-processing to improve failure prediction , in Proc. of IEEE/IFIP International Conference on Dependable Systems and Networks, ; pp.572-577