KR20170084445A - 시계열 데이터를 이용한 이상 감지 방법 및 그 장치 - Google Patents

시계열 데이터를 이용한 이상 감지 방법 및 그 장치 Download PDF

Info

Publication number
KR20170084445A
KR20170084445A KR1020160003500A KR20160003500A KR20170084445A KR 20170084445 A KR20170084445 A KR 20170084445A KR 1020160003500 A KR1020160003500 A KR 1020160003500A KR 20160003500 A KR20160003500 A KR 20160003500A KR 20170084445 A KR20170084445 A KR 20170084445A
Authority
KR
South Korea
Prior art keywords
series data
time series
cluster
clusters
monitoring object
Prior art date
Application number
KR1020160003500A
Other languages
English (en)
Inventor
김정경
Original Assignee
삼성에스디에스 주식회사
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 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020160003500A priority Critical patent/KR20170084445A/ko
Publication of KR20170084445A publication Critical patent/KR20170084445A/ko

Links

Images

Classifications

    • 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F17/30705

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 태양에 따른 시계열 데이터를 이용한 이상 감지 방법은, 모니터링 대상으로부터 시계열 데이터를 수집하는 단계와 상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 단계와 상기 클러스터의 임계치를 동적으로 연산하는 단계 및 상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계를 포함할 수 있다.

Description

시계열 데이터를 이용한 이상 감지 방법 및 그 장치 {Method and apparatus for detecting abnormality using time-series data}
본 발명은 시계열 데이터를 이용하여 이상을 감지하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는 시계열 데이터의 특성을 이용하여 모니터링 대상을 여러 개의 그룹으로 분류하고, 각 그룹의 과거 시계열 데이터를 기준으로 임계치를 동적으로 연산하여 이상을 감지하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
최근 병렬 처리 기술의 발달로 인하여 다수의 서버를 이용한 분산 처리 환경의 구축 및 모니터링이 중요시 되고 있다. 예를 들면, 다양한 역할의 서버와 네트워크 및 어플리케이션을 이용하여 인프라를 구축하고, 구축한 인프라의 성능 향상을 위해 주기적으로 별도의 관리 시스템 또는 솔루션을 통해 인프라를 모니터링한다.
이와 같이 다수의 서버로 구성된 인프라의 가용성(availability) 및 성능을 확보하기 위해서는 모니터링 대상이 시시각각 생성하는 시계열 데이터의 임계치(threshold)를 사전에 설정하여야 한다. 즉 사전에 설정된 임계치 이상 또는 이하의 시계열 데이터가 발생하면 이를 이상으로 감지하는 것이다.
종래에는 주로 고정 임계치(static threshold)를 사용하였다. 하지만 서버별 또는 시기별 특징을 고려하지 못한 고정 임계치를 이용한 모니터링에서는 이상이 아님에도 이상으로 판단하거나 반대로 이상임에도 이상이 아닌 것으로 판단하는 경우가 빈번하게 발생하였다.
또한, 종래에는 고정 임계치를 설정할 때 모니터링 대상의 시계열 데이터가 암묵적 또는 명시적으로 정규 분포(normal distribution)를 따른다고 가정하고 고정 임계치를 설정하였다. 즉 이상을 감지하기 위해 과거 특정 시점 동안에 생성된 모니터링 대상의 시계열 데이터의 평균(μ
Figure pat00001
과 표준편차(σ)를 구하고, μ±nσ (n=1,2,3,…)의 범위를 벗어나는지를 확인하였다. 하지만 실제 발생하는 시계열 데이터는 정규 분포를 따르지 않는 경우가 많다.
이처럼 고정 임계치를 사용하는 경우 발생할 수 있는 문제점 및 정규 분포를 따르지 않는 경우 발생할 수 있는 문제점를 해결하기 위해서는, 정규 분포가 아닌 시계열 데이터에도 적용할 수 있는 동적 임계치(dynamic threshold)를 이용한 이상 탐지 방법이 요구된다.
대한민국 공개특허 공보 2013-0020265 (공개일 2013.02.27)
본 발명이 해결하고자 하는 기술적 과제는 시계열 데이터를 이용하여 이상을 감지하는 방법 및 그 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 태양에 따른 시계열 데이터를 이용한 이상 감지 방법은, 모니터링 대상으로부터 시계열 데이터를 수집하는 단계와 상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 단계와 상기 클러스터의 임계치를 동적으로 연산하는 단계 및 상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계를 포함할 수 있다.
일 실시예에서, 상기 시계열 데이터를 수집하는 단계는, 현재로부터 일정 기간 이내의 시계열 데이터만 수집하는 단계를 포함할 수 있다.
다른 실시예에서, 상기 모니터링 대상을 클러스터로 분류하는 단계는, K-평균 알고리즘(K-means algorithm)을 이용하여, 클러스터로 분류하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 모니터링 대상을 클러스터로 분류하는 단계는, 상기 시계열 데이터의 분산, 최대값, 계절성 중에서 하나 이상을 이용하여, 클러스터로 분류하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 클러스터의 임계치를 동적으로 연산하는 단계는, 비모수 부트스트랩(Non-parametric Bootstrap Method)을 이용하여, 상기 클러스터의 임계치를 동적으로 연산하는 단계를 포함할 수 있다.
또 다른 실시예에서, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계는, 상기 임계치를 벗어나는 시계열 데이터가 연속해서 일정 횟수 이상 발생하는 경우에 한해, 이상으로 판단하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 태양에 따른 서버의 CPU 사용률 이상 감지 방법은 복수의 서버로부터 CPU 사용률의 시계열 데이터를 수집하는 단계와 상기 CPU 사용률의 시계열 데이터를 이용하여, 상기 복수의 서버를 클러스터로 분류하는 단계와 상기 클러스터의 상한 임계치를 동적으로 연산하는 단계 및 상기 상한 임계치를 초과하는지 여부를 모니터링하여, 상기 클러스터에 속한 서버의 CPU 사용률의 이상을 감지하는 단계를 포함할 수 있다.
일 실시예에서, 상기 클러스터는, 분산이 작고 최대값이 작은 제1 클러스터, 분산이 작고 최대값이 큰 제2 클러스터, 분산이 크고 계절성이 있는 제3 클러스터 및 분산이 크고 계절성이 없는 제4 클러스터를 포함하는 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 태양에 따른 시계열 데이터를 이용한 이상 감지 장치는 네트워크 인터페이스와 하나 이상의 프로세서와 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리 및 시계열 데이터를 저장하는 스토리지를 포함할 수 있다. 여기서 상기 컴퓨터 프로그램은, 모니터링 대상으로부터 상기 시계열 데이터를 수집하는 오퍼레이션과 상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션과 상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션 및 상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 오퍼레이션을 포함할 수 있다.
일 실시예에서, 상기 시계열 데이터를 수집하는 오퍼레이션은, 현재로부터 일정 기간 이내의 시계열 데이터만 수집하는 오퍼레이션을 포함할 수 있다.
다른 실시예에서, 상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션은, K-평균 알고리즘(K-means algorithm)을 이용하여, 클러스터로 분류하는 오퍼레이션을 포함할 수 있다.
또 다른 실시예에서, 상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션은, 상기 시계열 데이터의 분산, 최대값, 계절성 중에서 하나 이상을 이용하여, 클러스터로 분류하는 오퍼레이션을 포함할 수 있다.
또 다른 실시예에서, 상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션은, 비모수 부트스트랩(Non-parametric Bootstrap Method)을 이용하여, 상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션을 포함할 수 있다.
또 다른 실시예에서, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 오퍼레이션은, 상기 임계치를 벗어나는 시계열 데이터가 연속해서 일정 횟수 이상 발생하는 경우에 한해, 이상으로 판단하는 오퍼레이션을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 태양에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합하여, 모니터링 대상으로부터 시계열 데이터를 수집하는 단계와 상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 단계와 상기 클러스터의 임계치를 동적으로 연산하는 단계 및 상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계를 실행시키기 위하여 기록 매체에 저장된 컴퓨터 프로그램이다.
상기와 같은 본 발명에 따르면, 동적 임계치를 이용하여 모니터링을 수행함으로써, 이상이 아님에도 이상으로 판단하거나 반대로 이상임에도 이상이 아닌 것으로 판단하는 오탐을 줄일 수 있다. 또한, 모니터링 대상을 복수의 그룹으로 나누어 각 그룹의 동적 임계치를 연산함으로써, 각 모니터링 대상별로 동적 임계치를 연산하는 것보다 모니터링의 효율을 높일 수 있다.
또한, 비모수 부트스트랩(Non-parametric Bootstrapping Method)를 이용함으로써, 정규 분포에 해당하지 않는 시계열 데이터도 모니터링할 수 있다. 또한, 과거의 시계열 데이터를 기반으로 동적 임계치를 연산함으로써 이상 감지의 정확도를 높일 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 시계열 데이터의 모니터링 방법의 순서도이다.
도 2는 본 발명의 일 실시예에 따른 시계열 데이터의 모니터링 방법을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에서 시계열 데이터의 특성에 따라 서버를 그룹으로 분류하는 과정을 설명하기 위한 순서도이다.
도 4a 내지 도 4b는 본 발명의 일 실시예에서 이용하는 K 평균 알고리즘을 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에서 계절성 여부 판단에 이용하는 X-12-ARIMA 알고리즘을 설명하기 위한 개념도이다.
도 6a 내지 도 6b는 본 발명의 일 실시예에서 이용하는 비모수 부트스트랩 알고리즘과 ROC 커브를 설명하기 위한 개념도이다.
도 7은 본 발명의 일 실시예에 따른 이상 감지 방법으로 모니터링을 수행하는 과정을 설명하기 위한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 시계열 데이터를 이용한 이상 감지 장치를 설명하기 위한 개념도이다.
도 9은 본 발명의 일 실시예에 따른 시계열 데이터를 이용한 이상 감지 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는 이해의 편의를 돕기 위해 여러 대의 서버의 CPU 사용률을 모니터링하는 것을 전제로 설명을 계속하기로 한다. 다만, 이는 이해의 편의를 돕기 위한 것일 뿐 이와 같은 구성으로 한정하기 위함이 아니다.
즉, 서버의 CPU 사용률 이외의 데이터도 얼마든지 모니터링 대상이 될 수 있다. 예를 들면, 서버의 네트워크 트래픽을 모니터링할 수도 있고, 클라우드 서버의 저장공간 사용량을 모니터링할 수도 있다. 이처럼 다양한 유형의 시계열 데이터가 모니터링 대상이 될 수 있다. 즉, 일정한 시간 간격으로 발생하는 데이터라면 이상 감지를 위한 모니터링 대상이 될 수 있다.
또한, 여러 대의 서버를 동시에 모니터링하는 것을 전제로 설명을 계속하기로 한다. 즉, 하나 이상의 서버의 CPU 사용률을 모니터링하거나, 하나 이상의 서버의 네트워크 트래픽을 모니터링하는 경우를 전제로 한다. 여러 대의 서버를 동시에 모니터링할 때, 그 효율을 높이기 위한 방법을 본 발명의 일 실시예와 함께 살펴보도록 한다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 시계열 데이터의 모니터링 방법의 순서도이다.
도 1을 참고하면, 우선 여러 대의 서버의 CPU 사용률 데이터를 추출하고 이를 정제한다(S1000). 여러 대의 서버의 CPU 사용률 데이터를 추출하는 과정은 시계열 데이터를 생성하는 과정을 말한다. 즉 일정한 주기로 CPU 사용률 데이터를 뽑아서 이를 이용하여 모니터링을 수행하는 것이다. 예를 들면 1분 단위로 평균 CPU 사용률을 시계열 데이터로 생성하는 것이다.
또한, 서버의 최근 상태를 반영하기 위하여 모든 시간의 시계열 데이터를 이용하는 것이 아니라 현재를 기점으로 일정 시간 동안의 시계열 데이터만을 이용한다. 예를 들면, 최근 3주치의 CPU 사용률을 대상으로 시계열 데이터를 추출한다.
정리하면 데이터의 추출 과정에는 데이터의 기간과 주기를 고려하여 시계열 데이터를 생성한다. 이처럼 데이터의 기간과 주기를 고려하여 시계열 데이터를 생성함으로써, 서버의 최근 상태를 반영할 수 있고 이를 통해서 이상 감지의 정확도를 높일 수 있다.
다음으로는 시계열 데이터의 정제가 진행된다. 시계열 데이터의 정제란, 일정한 시간 간격으로 발생한 시계열 데이터를 취사선택하는 것을 말한다. 예를 들면, 서버의 CPU 사용률을 모니터링하는 과정에서, 최근 3주 이내에 서버의 물리적인 증설 작업이 수행된 적이 있다면 증설 작업 이전의 시계열 데이터는 모니터링 과정에서 제외하여야 할 것이다. 서버의 환경이 변화하였음으로 이상 감지를 위한 임계치 역시 변화가 필요하기 때문이다.
데이터를 정제하는 과정은 시계열 데이터가 일정 시간 이상 누락된 경우라면, 이를 물리적인 작업으로 인한 것으로 보고, 누락된 시점 이전의 시계열 데이터를 무시하는 방식으로 자동으로 수행될 수 있다. 예를 들면 최근 3주 이내에 1분 단위의 CPU 사용률에 대한 시계열 데이터에서 5시간가량의 CPU 사용률 데이터가 비어 있다면 이를 물리적 환경의 변화로 추정하고, 그 이전의 시계열 데이터는 모니터링 대상에서 자동으로 제외하는 방식으로 수행될 수 있다.
이렇게 모니터링 대상이 되는 CPU 사용률의 시계열 데이터를 생성하였다면, 그 후에는 시계열 데이터의 특성을 이용하여 여러 대의 서버를 그룹으로 분류한다(S2000). CPU 사용률의 시계열 데이터를 이용하여 서버를 그룹으로 분류하는 과정은 시계열 데이터의 특성을 이용하여 클러스터링(clustering)을 수행하는 과정을 말한다. 이때에는 다양한 특성과 알고리즘(algorithm)이 이용될 수 있다.
예를 들면, 시계열 데이터의 다양한 특성 중에서 분산, 최대값, 계절성을 이용하여 클러스터링을 수행할 수 있다. 물론 이러한 특성 외의 다른 특성을 이용하여 클러스터링을 수행할 수도 있다. 또한 다양한 클러스터링 알고리즘 중에서 K 평균 알고리즘(K-means algorithm)을 이용하여 클러스터링을 수행할 수 있다. 여러 대의 서버를 그룹으로 분류하는 과정에 대해서는 도 4a 내지 도 4b에서 보다 자세히 살펴보기로 한다.
이처럼 여러 대의 서버를 분류하여 클러스터를 구성함으로써, 모니터링의 효율을 높일 수 있다. 즉 각각의 서버를 별도로 임계치를 설정하고 모니터링하기보다 비슷한 유형의 서버를 묶어서 그룹의 임계치를 설정하고 모니터링함으로써, 보다 신속하고 간편하게 모니터링을 수행할 수 있다. 이는 비슷한 성능의 서버를 여러 대 이용하여 분산 환경을 구성한 경우에는 보다 더 효과적일 수 있다.
여러 대의 서버를 그룹으로 분류한 후에는 각 그룹의 임계치를 연산한다(S3000). 즉, 각 서버의 임계치를 별도로 연산하는 것이 아니라 각 서버를 여러 개의 그룹으로 나누고 그룹의 임계치를 생성하여 모니터링을 수행하는 것이다. 이를 통하여 모니터링의 효율을 높일 수 있다. 그룹의 임계치를 설정한 후에는, 이를 이용하여 이상을 감지한다(S4000).
도 2는 본 발명의 일 실시예에 따른 시계열 데이터의 모니터링 방법을 설명하기 위한 개념도이다.
도 2를 참고하면, 모니터링 대상이 되는 여러 대의 서버에서 매초 발생하는 CPU 사용률 데이터를 수집 서버로 전송한다. 수집 서버는 이러한 빅 데이터를 처리하기 위한 시스템으로, 수집된 매초의 CPU 사용률 데이터를 1분 단위로 평균을 내어 CPU 사용률의 시계열 데이터를 생성한다. 물론 여기서 1분이라는 수치는 이해의 편의를 돕기 위한 것일 뿐, 얼마든지 다른 기준으로 시계열 데이터를 생성할 수 있다.
매 초 단위로 측정한 CPU 사용률의 로데이터(raw data) 그 자체를 시계열 데이터로 사용할 수도 있고, 이를 5분 단위로 또는 10분 단위로 평균을 내어 시계열 데이터로 사용할 수도 있다. 시계열 데이터의 생성 주기는 모니터링 대상에 따라 달라질 수 있는 값이다. CPU 사용률과 같은 데이터는 중요도가 높고 긴급하게 모니터링해야 하는 항목이므로 1분과 같은 작은 값을 주기로 사용할 수 있으나, 반대로 스토리지의 사용량과 같은 데이터는 상대적으로 중요도가 낮으므로 10분과 같은 큰 값을 시계열 데이터 생성 주기로 사용할 수 있다.
수집 서버에서 1분 단위의 CPU 사용률에 대한 시계열 데이터를 생성한 후에는 데이터의 정제 작업이 진행된다. 데이터의 정제 작업은 두 단계에 걸쳐서 수행될 수 있다. 우선, 앞서 간단히 설명한 것처럼 시계열 데이터를 분석하여 서버의 물리적 작업이 있었는지 여부를 확인한다. 그 후, 서버의 증설이나 축소와 같은 물리적인 작업이 있었다고 판단된 경우에는 해당 시점 이후의 시계열 데이터만 임계치 연산에 사용한다.
서버의 물리적인 작업이 있었는지 여부의 판단 기준은 누락된 시계열 데이터의 시간을 이용하여 자동으로 판단할 수 있다. 예를 들면, 서버의 증설과 같은 물리적인 작업이 있는 경우에는 CPU 사용률 데이터가 생성될 수 없으므로 시계열 데이터를 추출한 후 살펴보면 일정 시간 동안 CPU 사용률 데이터가 누락되어 있을 수 밖에 없다. 이 경우 누락된 시간이 기준치 이상인 경우에는 물리적인 작업이 있었던 것으로 자동으로 판단할 수 있다. 물론, 이렇게 자동으로 판단하는 것 외에도, 관리자로부터 특정 시점 이전의 시계열 데이터를 제외하라는 입력을 수신하여 시계열 데이터를 정제할 수도 있다.
만약 누락된 시간이 기준치 이하인 경우에는 누락된 시계열 데이터만 임계치 연산에서 제외할 수 있다. 예를 들면, 1분을 주기로 한 시계열 데이터에서 시계열 데이터가 1시간 이상 누락된 경우 물리적인 작업이 있었다고 판단하고 누락 시점 이전의 데이터는 제외하도록 설정된 상황을 가정해보자. 여기서, 2분의 시간에 해당하는 시계열 데이터가 누락된 경우라면, 누락된 2분의 시계열 데이터만 제외할 수 있다.
즉 누락된 시계열 데이터를 보정하기 위하여 별도로 평균과 같은 연산을 통해 시계열 데이터를 생성할 필요는 없다. 왜냐하면, 과거 일정 기간 동안의 시계열 데이터를 이용하여 임계치를 연산하기 때문이다. 임계치를 연산하는 과정에서 일부 시계열 데이터가 누락(missing value) 되어도 동적 임계치 연산에는 영향이 없다.
정리하면, 시계열 데이터를 추출한 후, 누락된 시계열 데이터가 있다면 누락된 시간을 사전에 설정된 기준치와 비교해보고 기준치 이하인 경우에는 누락된 시계열 데이터만 제외하고, 기준치 이상인 경우에는 누락된 시점 이전의 시계열 데이터를 모두 제외하는 방식으로 시계열 데이터를 정제하는 작업을 수행할 수 있다.
다음으로 CPU 사용률의 1분 단위의 시계열 데이터를 추출한 후에는 이를 이용하여 여러 대의 서버를 몇 개의 그룹으로 분류하는 작업을 수행한다. 이때 시계열 데이터의 특성 중에서 분산과 최대값 및 계절성을 이용할 수 있다. 이를 이용하면 총 4개의 그룹으로 서버를 클러스터링 할 수 있다. 4개의 그룹으로 서버를 클러스터링 하는 과정은 도 3에서 보다 자세하게 살펴보도록 한다.
그룹 1은 CPU 사용률의 시계열 데이터가 단조로운 패턴의 그룹이다. 즉 대부분의 시계열 데이터가 평균에 몰려 있으며 그 평균의 값이 낮은 경우를 말한다. 또는, 평균 대신 최대값이 작은 경우라고 봐도 무방하다. CPU 사용률의 경우 하한 임계치는 모니터링의 필요가 없고 주로 상한 임계치를 기준으로 모니터링을 수행하므로 최대값 위주로 설명을 계속 하도록 한다.
그룹 2는 CPU 사용률의 시계열 데이터가 사용량이 많은 패턴의 그룹이다. 즉 대부분의 시계열 데이터가 평균에 몰려 있으며 그 최대값이 큰 경우를 말한다. 예를 들면, CPU 사용률의 시계열 데이터가 지속적으로 80~85% 정도의 값을 유지하는 서버들이 여기에 포함될 수 있다. 여기서 예로 든 80% 나 85% 와 같은 수치는 이해를 돕기 위한 수치일 뿐 이와 같은 구성으로 한정하고자 하는 것은 아니다.
이렇게 지속적으로 CPU 사용률이 높은 서버를 별도의 그룹으로 분류하여 모니터링하는 이유는, 이러한 서버들의 경우 상한 임계치에 도달할 가능성이 높기 때문에 추후 서버 증설의 대상이 되기 때문이다. 본 발명은 각 서버를 시계열 데이터의 특성을 기준으로 유형에 따라 그룹으로 분류하고 각 그룹의 임계치를 동적으로 연산하여 모니터링을 수행한다. 여기서 각 그룹의 상한 임계치도 결국은 최대 사용률인 100% 아래의 값을 가질 수밖에 없다.
이 경우에, 이미 CPU 사용률이 높은 그룹 2의 경우 상한 임계치에 도달할 가능성이 높으므로 별도로 그룹 1과 구분하여 모니터링을 수행하는 것이다. 다른 그룹의 경우 이상이 발생하면 이상의 원인을 해결하는 방향으로 대응이 진행되지만 그룹 2의 경우 이상이 발생하면 주로 서버 증설과 같은 물리적인 작업을 통해서 해결하는 방향으로 대응이 진행된다.
그룹 3은 CPU 사용률의 시계열 데이터가 시간/주기적인 패턴을 갖는 그룹이다. 즉 시계열 데이터의 분산이 크며 일정한 주기를 갖는 경우의 그룹이다. 마지막으로 그룹 4는 CPU 사용률의 시계열 데이터가 분산이 큰 패턴의 그룹이다. 즉 그룹 3과 분산이 크다는 점은 동일하나, 주기성을 가지지 않는 서버들이 그룹 4에 해당한다.
이렇게 여러 대의 서버를 CPU 사용률의 시계열 데이터의 특성에 따라 4개의 그룹으로 나누고 각 그룹의 상한 임계치를 동적으로 연산하면 모니터링을 빠르게 수행할 수 있다. 종래의 고정 임계치에 비해서 동적 임계치는 지속적으로 임계치를 갱신해야 하므로 모니터링 시스템의 부하가 발생할 수밖에 없다. 하지만, 이처럼 여러 대의 서버를 몇 개의 그룹으로 나누고 동적 임계치를 연산하게 되면 각 서버의 동적 임계치를 연산하는 경우보다 상대적으로 부하를 줄일 수 있어 모니터링 속도를 향상시킬 수 있다.
모니터링 대상이 되는 서버를 4개의 그룹으로 나눈 후에는 각 그룹의 상한 임계치를 동적으로 연산하여야 하는데 이 과정에서 비모수 부트스트랩 알고리즘과 ROC 커브를 이용할 수 있다. 비모수 부트스트랩 알고리즘과 ROC 커브에 대해서는 추후 도 6a 내지 도 6b에서 보다 자세히 살펴보기로 한다. 이렇게 각 그룹의 상한 임계치를 동적으로 연산한 후에는 임계치를 기준으로 이상을 탐지한다.
동적 임계치를 이용함으로써 오탐율을 줄일 수 있고, 여러 대의 서버를 그룹으로 분류함으로써 동적 임계치 연산에 소모되는 비용을 줄일 수 있다. 또한 최근의 시계열 데이터만 동적 임계치 연산에 이용함으로써 모니터링 성능을 향상시킬 수 있다. 또한 비모수 부트스트랩 알고리즘을 이용함으로써, 정규 분포를 따르지 않는 시계열 데이터도 모니터링을 수행할 수 있다.
도 3은 본 발명의 일 실시예에서 시계열 데이터의 특성에 따라 서버를 그룹으로 분류하는 과정을 설명하기 위한 순서도이다.
도 3을 참고하면 여러 대의 서버를 4개의 그룹으로 나누는 과정을 볼 수 있다. 도 3을 참고하면, 우선 추출된 시계열 데이터의 분산을 구한 후 분산이 기준치 이상인지 비교한다(S2100). 만약 기준치 이상의 분산을 가진다면 해당 시계열 데이터는 흩어진 정도가 큰 경우에 해당한다.
만약 시계열 데이터의 분산이 작은 경우라면 대부분의 시계열 데이터가 평균에 몰려 있는 경우이다. 이 때에는 다시 최대값이 큰지 작은지에 따라 그룹을 나눌 수 있다(S2200). 만약 최대값이 기준치 이하의 값을 갖는다면, 해당 시계열 데이터는 단조로운 패턴을 가지는 그룹 1(110)의 경우에 해당한다. 그룹 1(110)의 시계열 데이터의 예시도(115)를 살펴보면 일정한 범위 내에서 시계열 데이터가 밀집해서 분포하고 있는 것을 볼 수 있다.
반대로 시계열 데이터의 최대값이 기준치 이상의 값을 갖는다면, 해당 시계열 데이터는 사용량이 많은 패턴인 그룹 2(120)의 경우에 해당한다. 그룹 2(120)의 시계열 데이터의 예시도(125)를 살펴보면 CPU 사용률이 지속적으로 높은 사용률을 가지고 있는 것을 볼 수 있다.
만약 시계열 데이터의 분산이 큰 경우라면 흩어진 정도가 일정한 주기를 가지고 반복되는지 아닌지를 기준으로 그룹을 나눌 수 있다(S2300). 만약 계절성(seasonality)을 가지는 경우라면 그룹 3(130)의 시간/주기적 패턴에 해당한다고 볼 수 있다. 그룹 3(130)의 시계열 데이터의 예시도(135)를 살펴보면, 일정한 주기로 반복해서 시계열 데이터가 존재하는 것을 볼 수 있다.
반대로 만약 계절성을 가지지 않는 경우라면 그룹 4(140)의 분산이 큰 패턴에 해당한다고 볼 수 있다. 즉, 분산이 크긴 하지만 일정한 주기를 가지고 시계열 데이터가 반복되는 것은 아닌 서버들이 그룹 4(140)에 해당한다. 그룹 4(140)의 시계열 데이터의 예시도(145)를 살펴보면, 일정한 주기 없이 시계열 데이터들이 큰 편차로 흩어져 있는 것을 볼 수 있다.
이상으로 도 3을 통해서 여러 대의 서버를 4개의 그룹으로 나누는 것을 살펴보았다. 그러나 이는 일종의 예시일 뿐 반드시 4개의 그룹으로 나눠야 하는 것은 아니다. 또한 반드시 분산, 최대값, 계절성의 특성만으로 그룹을 나눠야 하는 것도 아니다. 다른 특성을 이용하여 다른 유형의 그룹으로 분류하는 것도 얼마든지 가능하다. 다만, 이처럼 모니터링 대상을 그룹으로 분류함으로써, 동적 임계치 연산으로 발생할 수 있는 부하를 줄일 수 있으면 충분한다.
대부분의 분산 환경에서는 비슷한 성능의 서버를 여러 대 묶어서 구성한다. 예를 들면, 스토리지 용량만 늘린 서버를 여러 대 묶어서 스토리지용 클라우드 서버 군을 구성한다. 또는, 연산 능력만 강화한 서버를 여러 대 묶어서 병렬형 슈퍼 컴퓨터를 구성하기도 한다. 또는, 여러 대의 서버를 묶어서 부하 분산형(load balancing) 서버 군을 만들어 가용성을 확보하기도 한다. 이렇게 비슷한 성능의 서버들은 시계열 데이터도 비슷한 패턴을 보이기 때문에 각각의 서버별로 동적 임계치를 연산하기보다 하나의 그룹으로 묶은 후 동적 임계치를 연산하는 것이 모니터링 서버의 부담을 줄일 수 있다.
도 4a 내지 도 4b는 본 발명의 일 실시예에서 이용하는 K 평균 알고리즘을 설명하기 위한 개념도이다.
도 4a는 K 평균 알고리즘에서 사용되는 수식을 표현한 것이다. K 평균 알고리즘은 주어진 N개의 데이터를, N보다 작거나 같은 K개의 덩어리(cluster)로 분류하는 알고리즘이다. 이 때 각 덩어리를 나누는 과정은 각 덩어리에 속한 데이터들의 비용 함수를 최소화 하는 방식으로 이루어진다. 이 때 비용 함수란 각 덩어리의 중심에서 각 데이터까지의 유클리드 기하학 상의 거리의 제곱 합으로 한다. 즉, ||x-μi||2 (x는 각 데이터, μi는 각 덩어리의 중심)의 합이 최소가 되도록 데이터를 K 개의 덩어리로 분류하는 방법이다.
도 4b는 K 평균 알고리즘에 의해 데이터를 3개의 덩어리로 분류하는 과정을 도시한 것이다. 도 4b를 참고하면 좌표평면상에 데이터가 있고 이를 3개의 덩어리(211a, 211b, 211c)로 묶은 것을 볼 수 있다. K 평균 알고리즘은 비용 함수를 유클리드 기하학 상의 거리의 제곱 합으로 구하므로, 1차원, 2차원, 3차원, 그리고 그 이상의 다차원에서 거리를 연산하기 위한 좌표가 필요하다. 여기서 좌표란 데이터를 여러 개의 그룹을 나누고자 할 때, 그 기준이 되는 속성들로 만든 좌표를 말한다.
예를 들면, 도 3에서는 시계열 데이터의 분산, 최대값, 계절성 여부를 기준으로 그룹을 나눈다. 그러므로 각 서버의 CPU 사용률의 시계열 데이터의 (분산, 최대값, 계절성 여부)를 좌표로 하여 (x,y,z)의 거리를 연산하고, 연산된 거리를 이용하여 여러 대의 서버를 그룹으로 나눌 수 있다. K 평균 알고리즘에 대해서는 https://ko.wikipedia.org/wiki/K-평균_알고리즘 인터넷 페이지에서 보다 자세하게 확인할 수 있다.
도 5는 본 발명의 일 실시예에서 계절성 여부 판단에 이용하는 X-12-ARIMA 알고리즘을 설명하기 위한 개념도이다.
시계열 데이터의 계절성(또는 주기성) 여부를 판단하는 알고리즘으로 다양한 알고리즘이 있으나 그 한 예로 X-12-ARIMA의 계절성 검정을 살펴보도록 한다. X-12-ARIMA에서 안정적 계절성을 검정하는 방법에 대해 살펴보면, 시계열 데이터 xij의 변동은 도 5의 식 1)과 같이 분해된다. 여기서 i는 1부터 N까지의 값을 가질 수 있고, j는 1부터 l까지의 값을 가질 수 있다. i는 년도 효과이고, j는 월 또는 분기의 효과를 나타낸다.
Figure pat00002
Figure pat00003
도 5의 식 1)에서 수식 1은 월(분기) 시계열의 평균이고, 수식 2는 시계열 전체의 평균을 나타낸다. 도 5의 식 1)을 다시 정리하면 식 2)로 표현할 수 있다. 이 때, 계절성 여부를 검정하는 통계량은 식 3)과 같이 표현된다. FS는 자유도 l - 1과 n - l인 F분포를 따른다. 통상 F통계량의 기각역값으로 7을 이용하고, 만약 F통계량값이 7보다 크면 안정적 계절성이 있다고 판단한다.
이상으로 도 4a 내지 4b를 통해서 여러 대의 서버를 그룹으로 나누기 위한 K 평균 알고리즘을 살펴보았다. 또한 그 과정에서 계절성이 있는지 여부를 판단하기 위한 알고리즘을 도 5를 통해서 살펴보았다. 이렇게 시계열 데이터의 여러 특성을 이용하여 그룹을 나눈 후에는 각 그룹의 임계치를 동적으로 연산하여야 한다.
도 6a 내지 도 6b는 본 발명의 일 실시예에서 이용하는 비모수 부트스트랩 알고리즘과 ROC 커브를 설명하기 위한 개념도이다.
비모수 부트스트랩 알고리즘은 모집단의 확률 분포가 알려져 있지 않은 경우에 표본의 통계량을 추정하는 방법이다. 이를 통해 모집단이 정규 분포를 따르지 않는 시계열 데이터에도 적용할 수 있다. 즉 각각의 표본을 복원 추출하고, 각각 얻어진 부트스트랩 표본 하나하나의 개별 통계량을 구한 다음, 이를 이용하여 통계량을 추정한다.
이를 다시 정리해보면, 확률 변수 X = {X1,…,Xn}이 주어져 있고, 확률변수 X에 대한 샘플링 함수를 F()라 하자. F()에 의해 t개의 샘플을 추출하고 이를 수식으로 표현하면 도 6a의 식 1)으로 표현할 수 있다. 모든 부트스트랩 샘플 (s1,…,st)에 대해 α=(0,1)인 분위수 함수(Quantile function) Q(1-α,s)를 적용하여 도 6a의 식 2)와 같이 분위수(quantile) 값을 연산할 수 있다. 이 값들의 평균을 구하면 도 6a의 식 3)과 같이 임계치를 연산할 수 있다.
여기서 α의 값에 따라 임계치가 얼마든지 달라질 수 있다. α는 1종 오류로서 0과 1사이의 값을 가지며 보통 사용자가 정할 수 있으나, 여기서는 ROC 커브(Receiver Operating Characteristic Curve)를 이용하여 자동으로 정하는 방법을 도 6b와 함께 살펴보도록 한다.
도 6b를 참고하면 ROC 커브의 일 예를 볼 수 있다. ROC 커브란 FPR을 x축으로 하고 TPR을 y축으로 하는 그래프를 말한다. 여기서 FPR이란 False Positive Rate의 약자로 이상이 아닌데 이상으로 감지한 비율(=1-특이도)을 말하며, TPR이란 True Positive Rate의 약자로 이상인데 이상으로 감지한 비율(=민감도)를 말한다.
정리하면 이상인데 이상이라고 예측한 것을 민감도(true accept rate)라 하며, 이상이 아닌데 이상이 아니라고 예측한 것을 특이도(false accept rate)라 한다. 이를 표로 정리해보면 다음과 같다.
False Positive (FP) 실제로는 이상이 아닌데 이상으로 예측한 경우
False Negative (FN) 실제로는 이상인데 이상이 아닌 것으로 예측한 경우
True Positive (TP) 실제로 이상이고, 이상으로 예측한 경우
True Negative (TN) 실제로 이상이 아니고, 이상이 아니라고 예측한 경우
여기서 FP, FN, TP, TN을 이용하여 FPR과 TPR을 구하면 다음과 같다.
Figure pat00004
수식에서도 확인할 수 있지만, FPR과 TPR은 서로 반비례 관계에 있다. 그리고 도 6b를 참고하면 α의 값에 따라 ROC 커브가 다양하게 그려지는 것을 확인할 수 있다. 여기서는 예측의 정확도를 확보하는 것이 중요하므로 ROC 커브의 면적이 1에 가까울수록 바람직하다. 도 6b의 예에서는 α1, α2, α3 중에서 α3일 때가 FPR은 감소하고 TPR은 증가하므로 α3이 가장 바람직하다. 앞서 설명한 것처럼 여러 대의 서버를 그룹으로 나누고, 각 그룹의 동적 임계치를 연산하므로, α의 값 역시 각 그룹별로 연산을 하게 된다.
이상으로 도 6a 내지 도 6b를 통해서 과거의 시계열 데이터를 이용하여 정규 분포를 따르지 않는 경우에도 부트스트랩을 통해 동적 임계치를 연산하는 방법을 살펴보았다. 이 때, 최근 일정 기간의 시계열 데이터만 이용한다면 예측의 정확도를 더욱 높일 수 있다. 예를 들면 최근 3주간의 시계열 데이터만을 이용하여 그룹을 나누고, 각 그룹의 동적 임계치를 연산하면 서버의 최근 경향을 반영할 수 있기 때문에 오탐율을 더욱 줄일 수 있다.
이 때 연산된 동적 임계치를 초과하는 CPU 사용률 데이터가 들어오면 이상으로 판단할 수 있다. 그러나 경우에 따라서는 CPU 사용률의 특성상 일시적으로 동적 임계치를 초과할 수 있다. 그러므로 이러한 경우의 오탐률을 낮추기 위해서는 동적 임계치를 초과하는 CPU 사용률의 데이터가 일정 시간 지속적으로 발생하면 이상으로 판단할 수 있다. 예를 들면, 1분 단위로 수집되는 CPU 사용률 시계열 데이터에서 2분 이상 즉, 연속적으로 두 번 이상 동적 임계치를 초과하는 CPU 사용률 데이터가 발생하면 이상으로 판단하고 관리자에게 알람을 제공할 수 있다.
도 7은 본 발명의 일 실시예에 따른 이상 감지 방법으로 모니터링을 수행하는 과정을 설명하기 위한 예시도이다.
도 7을 참고하면 A 서버의 CPU 사용률이 시간을 x축으로 하고 사용률을 y축으로 하는 좌표 평면상에 도시되어 있다. A 서버의 경우 일반적으로 5% 이내의 사용률을 가지므로 그룹 1(110)의 유형에 해당한다. 00:00부터 23:25까지 하루 동안 A 서버의 CPU 사용률을 살펴보면 일시적으로는 10%~25% 의 사용률을 보이기도 하나 전반적으로는 5% 이내의 사용률에 머물러 있다. 종래에는 이러한 그룹 1(110)의 유형에 해당하는 서버도 일괄적으로 고정 임계치를 사용하여 이상을 감지하였다. 보통은 CPU 사용률 80%를 고정 임계치로 설정하고 이를 넘어서는 CPU 사용률을 보이는 서버들은 증설 작업 대상으로 분류하였다.
이렇게 고정 임계치를 설정하여 모니터링하다보면, 해당 서버의 CPU 사용률을 고려하지 못하게 되므로 도 7과 같이 14:25부터 16:40 사이에 CPU 사용률이 평소보다는 다소 높은 그러나 고정 임계치인 80%보다는 낮은 35%의 값을 보이더라도 이상으로 판단하지 않게 된다. 그러나 평소에 5% 이내의 CPU 사용률을 보이던 A 서버가 35% 정도의 CPU 사용률을 보이게 된 원인은 이상이 발생했기 때문이다.
실제로 해당 A 서버는 고정 임계치를 사용하는 모니터링 시스템에서는 14:25에 장애가 발생하였음에도 이를 이상으로 감지하지 못하였고, 대신 사용자들로부터 문의를 받고서야 14:45에 장애를 인지하게 되었다. 하지만 만약 동적 임계치를 사용하게 되면, 최근 3주 이내의 CPU 사용률 시계열 데이터로부터 서버 A를 그룹 1(110)으로 분류하게 된다. 그 후 그룹 1(110)의 동적 임계치를 연산하면 α의 값을 0.01로 하여, 15.17% 라는 동적 임계치를 얻을 수 있다. 15.17%의 동적 임계치를 기준으로 모니터링을 수행했다면, 14:25에 장애가 발생하여 CPU 사용률이 35%에 이르게 되면 이상으로 판단하고 장애를 조속히 처리하였을 것이다.
도 8은 본 발명의 일 실시예에 따른 시계열 데이터를 이용한 이상 감지 장치를 설명하기 위한 개념도이다.
도 8을 참고하면, 각 개별 서버로부터 1분 동안의 평균 CPU 사용률 데이터를 이상 감지 장치(10)가 모은다. 이상 감지 장치(10)는 많은 양의 데이터를 수집하고 분석하기 위해서 빅데이터 플랫폼으로 구성되어 있다. 빅데이터 플랫폼의 구성을 자세히 살펴보면, 우선 데이터 수집을 위해서 아파치의 플럼(Apache Flume)을 통해서 데이터를 수집한다. 수집한 데이터를 분석하기 위해서는 아파치의 하둡 클러스터(Apache Hadoop Cluster)에 데이터를 전달한다.
하둡 클러스터는 하둡 클러스터의 관리 및 모니터링을 위한 Ambari, 비관계형 분산 데이터베이스인 Hbase, 분산 데이터를 저장하기 위한 파일 시스템으로 HDFS, 데이터의 요약, 질의 및 분석을 수행하기 위한 Hive, 대용량 데이터 처리를 위한 소프트웨어 프레임워크인 맵리듀스(MR; MapReduce), 하둡 클러스터의 리소스 관리 플랫폼인 YARN 등을 포함할 수 있다.
또한 데이터의 분석을 위해, 통계와 그래픽을 위한 프로그래밍 언어 및 소프트웨어인 R을 통해 서버의 시계열 데이터의 패턴을 분석하고 그룹으로 나눌 수 있다. 뿐만 아니라 그룹의 동적 임계치를 연산할 수도 있다. 이렇게 해서 시계열 데이터를 이용하여 이상을 감지하기 위한 준비가 모두 끝나면, 이를 이용해서 모니터링 환경을 제공할 수 있다. 예를 들면 현재 서버의 CPU 사용률 데이터를 1분 단위로 도시하고, 이와 함께 동적 임계치를 도시하여 이상이 발생하는지 여부를 실시간으로 제공할 수 있다.
도 9은 본 발명의 일 실시예에 따른 시계열 데이터를 이용한 이상 감지 장치의 하드웨어 구성도이다.
도 9를 참고하면 시계열 데이터를 이용한 이상 감지 장치(10)는 하나 이상의 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)을 포함할 수 있다. 프로세서(510), 메모리(520), 스토리지(560) 및 인터페이스(570)는 시스템 버스(550)를 통하여 데이터를 송수신한다.
프로세서(510)는 메모리(520)에 로드 된 컴퓨터 프로그램을 실행하고, 메모리(520)는 상기 컴퓨터 프로그램을 스토리지(560)에서 로드(load) 한다. 상기 컴퓨터 프로그램은, 모니터링 데이터 관리 오퍼레이션(521), 클러스터 구성 오퍼레이션(523), 임계치 데이터 연산 오퍼레이션(535), 이상 모니터링 오퍼레이션(527)을 포함할 수 있다.
모니터링 데이터 관리 오퍼레이션(521)은 인터페이스(570)을 통해서 각 서버에서 모니터링을 위한 시계열 데이터를 수집한다. 수집한 데이터를 시스템 버스(550)을 통해 스토리지(560)의 모니터링 데이터(561)로 저장한다. 앞서 도 8에서 살펴본 하둡 클러스터가 모니터링 데이터 관리 오퍼레이션(521)에 해당한다.
클러스터 구성 오퍼레이션(523)은 수집한 시계열 데이터를 이용하여 여러 대의 서버를 그룹으로 분류하고 이 정보를 시스템 버스(550)을 통해 스토리지(560)의 클러스터 정보(563)에 저장한다. 추후에 클러스터 정보(563)을 이용하여 임계치 데이터 연산 오퍼레이션(525)에서 클러스터별로 동적 임계치를 연산한다.
임계치 데이터 연산 오퍼레이션(525)는 클러스터별로 동적 임계치를 연산하고 이를 시스템 버스(550)을 통해 스토리지(560)의 임계치 데이터(565)에 저장한다. 이렇게 저장된 임계치 데이터(565)는 이상 모니터링 오퍼레이션(527)을 통해 모니터링에 이용될 수 있다. 앞서 도 8에서 살펴본 R이 클러스터 구성 오퍼레이션(523)과 임계치 데이터 연산 오퍼레이션(525)에 해당한다.
이상 모니터링 오퍼레이션(527)은 인터페이스(570)을 통해 모니터링 데이터 관리 오퍼레이션(521)이 수집한 시계열 데이터를 임계치 데이터(565)와 비교하여 이상이 발생하였지 여부를 모니터링한다. 또한, 이를 시각화하여 사용자에게 제공할 수도 있다. 뿐만 아니라 이상이 발생한 경우 알람을 통해 사용자에게 이상이 발생하였음을 알릴 수 있다.
도 9의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (17)

  1. 모니터링 대상으로부터 시계열 데이터를 수집하는 단계;
    상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 단계;
    상기 클러스터의 임계치를 동적으로 연산하는 단계; 및
    상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  2. 제1항에 있어서,
    상기 시계열 데이터를 수집하는 단계는,
    현재로부터 일정 기간 이내의 시계열 데이터만 수집하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  3. 제1항에 있어서,
    상기 모니터링 대상을 클러스터로 분류하는 단계는,
    K-평균 알고리즘(K-means algorithm)을 이용하여, 클러스터로 분류하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  4. 제1항에 있어서,
    상기 모니터링 대상을 클러스터로 분류하는 단계는,
    상기 시계열 데이터의 분산, 최대값, 계절성 중에서 하나 이상을 이용하여, 클러스터로 분류하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  5. 제1항에 있어서,
    상기 클러스터의 임계치를 동적으로 연산하는 단계는,
    비모수 부트스트랩(Non-parametric Bootstrap Method)을 이용하여, 상기 클러스터의 임계치를 동적으로 연산하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  6. 제5항에 있어서,
    상기 비모수 부트스트랩을 이용하여, 상기 클러스터의 임계치를 동적으로 연산하는 단계는,
    ROC 커브(Receiver Operating Characteristic Curve)를 이용하여, 부트스트랩의 α값을 자동으로 계산하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  7. 제1항에 있어서,
    상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계는,
    상기 임계치를 벗어나는 시계열 데이터가 연속해서 일정 횟수 이상 발생하는 경우에 한해, 이상으로 판단하는 단계를 포함하는,
    시계열 데이터를 이용한 이상 감지 방법.
  8. 복수의 서버로부터 CPU 사용률의 시계열 데이터를 수집하는 단계;
    상기 CPU 사용률의 시계열 데이터를 이용하여, 상기 복수의 서버를 클러스터로 분류하는 단계;
    상기 클러스터의 상한 임계치를 동적으로 연산하는 단계; 및
    상기 상한 임계치를 초과하는지 여부를 모니터링하여, 상기 클러스터에 속한 서버의 CPU 사용률의 이상을 감지하는 단계를 포함하는,
    서버의 CPU 사용률 이상 감지 방법.
  9. 제8항에 있어서,
    상기 복수의 서버를 클러스터로 분류하는 단계는,
    상기 CPU 사용률의 시계열 데이터의 분산, 최대값, 계절성 중에서 하나 이상을 이용하여, 클러스터로 분류하는 단계를 포함하는,
    서버의 CPU 사용률 이상 감지 방법.
  10. 제9항에 있어서,
    상기 클러스터는,
    분산이 작고 최대값이 작은 제1 클러스터, 분산이 작고 최대값이 큰 제2 클러스터, 분산이 크고 계절성이 있는 제3 클러스터 및 분산이 크고 계절성이 없는 제4 클러스터를 포함하는 것인,
    서버의 CPU 사용률 이상 감지 방법.
  11. 네트워크 인터페이스;
    하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
    시계열 데이터를 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    모니터링 대상으로부터 상기 시계열 데이터를 수집하는 오퍼레이션;
    상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션;
    상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션; 및
    상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  12. 제11항에 있어서,
    상기 시계열 데이터를 수집하는 오퍼레이션은,
    현재로부터 일정 기간 이내의 시계열 데이터만 수집하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  13. 제11항에 있어서,
    상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션은,
    K-평균 알고리즘(K-means algorithm)을 이용하여, 클러스터로 분류하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  14. 제11항에 있어서,
    상기 모니터링 대상을 클러스터로 분류하는 오퍼레이션은,
    상기 시계열 데이터의 분산, 최대값, 계절성 중에서 하나 이상을 이용하여, 클러스터로 분류하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  15. 제11항에 있어서,
    상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션은,
    비모수 부트스트랩(Non-parametric Bootstrap Method)을 이용하여, 상기 클러스터의 임계치를 동적으로 연산하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  16. 제11항에 있어서,
    상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 오퍼레이션은,
    상기 임계치를 벗어나는 시계열 데이터가 연속해서 일정 횟수 이상 발생하는 경우에 한해, 이상으로 판단하는 오퍼레이션을 포함하는,
    시계열 데이터를 이용한 이상 감지 장치.
  17. 컴퓨팅 장치와 결합하여,
    모니터링 대상으로부터 시계열 데이터를 수집하는 단계;
    상기 시계열 데이터를 이용하여, 상기 모니터링 대상을 클러스터로 분류하는 단계;
    상기 클러스터의 임계치를 동적으로 연산하는 단계; 및
    상기 동적으로 연산된 임계치를 이용하여, 상기 클러스터에 속한 모니터링 대상의 이상을 감지하는 단계를 실행시키기 위하여 기록 매체에 저장된,
    컴퓨터 프로그램.
KR1020160003500A 2016-01-12 2016-01-12 시계열 데이터를 이용한 이상 감지 방법 및 그 장치 KR20170084445A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160003500A KR20170084445A (ko) 2016-01-12 2016-01-12 시계열 데이터를 이용한 이상 감지 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160003500A KR20170084445A (ko) 2016-01-12 2016-01-12 시계열 데이터를 이용한 이상 감지 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20170084445A true KR20170084445A (ko) 2017-07-20

Family

ID=59443362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160003500A KR20170084445A (ko) 2016-01-12 2016-01-12 시계열 데이터를 이용한 이상 감지 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20170084445A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255667A (zh) * 2017-12-27 2018-07-06 阿里巴巴集团控股有限公司 一种业务监测方法、装置以及电子设备
KR101960755B1 (ko) * 2018-12-20 2019-03-21 문경훈 미취득 전력 데이터 생성 방법 및 장치
CN110032495A (zh) * 2019-03-28 2019-07-19 阿里巴巴集团控股有限公司 数据异常检测方法和装置
CN111290917A (zh) * 2020-02-26 2020-06-16 深圳市云智融科技有限公司 基于yarn的资源监控方法、装置及终端设备
KR102179290B1 (ko) * 2019-11-07 2020-11-18 연세대학교 산학협력단 워크로드 데이터에 대한 이상징후 판별 방법
CN112667479A (zh) * 2020-12-30 2021-04-16 联想(北京)有限公司 一种信息监控方法及装置
CN114402575A (zh) * 2020-03-25 2022-04-26 株式会社日立制作所 行动识别服务器、行动识别***和行动识别方法
CN114914561A (zh) * 2022-04-27 2022-08-16 深圳市道通科技股份有限公司 一种动力电池监控***以及方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255667A (zh) * 2017-12-27 2018-07-06 阿里巴巴集团控股有限公司 一种业务监测方法、装置以及电子设备
CN108255667B (zh) * 2017-12-27 2021-07-06 创新先进技术有限公司 一种业务监测方法、装置以及电子设备
KR101960755B1 (ko) * 2018-12-20 2019-03-21 문경훈 미취득 전력 데이터 생성 방법 및 장치
CN110032495A (zh) * 2019-03-28 2019-07-19 阿里巴巴集团控股有限公司 数据异常检测方法和装置
CN110032495B (zh) * 2019-03-28 2023-08-25 创新先进技术有限公司 数据异常检测方法和装置
KR102179290B1 (ko) * 2019-11-07 2020-11-18 연세대학교 산학협력단 워크로드 데이터에 대한 이상징후 판별 방법
CN111290917A (zh) * 2020-02-26 2020-06-16 深圳市云智融科技有限公司 基于yarn的资源监控方法、装置及终端设备
CN114402575A (zh) * 2020-03-25 2022-04-26 株式会社日立制作所 行动识别服务器、行动识别***和行动识别方法
CN114402575B (zh) * 2020-03-25 2023-12-12 株式会社日立制作所 行动识别服务器、行动识别***和行动识别方法
CN112667479A (zh) * 2020-12-30 2021-04-16 联想(北京)有限公司 一种信息监控方法及装置
CN114914561A (zh) * 2022-04-27 2022-08-16 深圳市道通科技股份有限公司 一种动力电池监控***以及方法

Similar Documents

Publication Publication Date Title
KR20170084445A (ko) 시계열 데이터를 이용한 이상 감지 방법 및 그 장치
US20210089917A1 (en) Heuristic Inference of Topological Representation of Metric Relationships
US11514354B2 (en) Artificial intelligence based performance prediction system
CN109542740B (zh) 异常检测方法及装置
US10055275B2 (en) Apparatus and method of leveraging semi-supervised machine learning principals to perform root cause analysis and derivation for remediation of issues in a computer environment
US9658910B2 (en) Systems and methods for spatially displaced correlation for detecting value ranges of transient correlation in machine data of enterprise systems
JP5874936B2 (ja) 運用管理装置、運用管理方法、及びプログラム
CN112188531B (zh) 异常检测方法、装置、电子设备及计算机存储介质
Soualhia et al. Infrastructure fault detection and prediction in edge cloud environments
US10282458B2 (en) Event notification system with cluster classification
US10346756B2 (en) Machine discovery and rapid agglomeration of similar states
US9244711B1 (en) Virtual machine capacity planning
US11060885B2 (en) Univariate anomaly detection in a sensor network
CN109857618B (zh) 一种监控方法、装置及***
CN110955586A (zh) 一种基于日志的***故障预测方法、装置和设备
US10268505B2 (en) Batch job frequency control
CN112751726A (zh) 一种数据处理方法、装置、电子设备和存储介质
Ghiasvand et al. Anomaly detection in high performance computers: A vicinity perspective
CN113992602B (zh) 一种电缆监测数据上传方法、装置、设备以及存储介质
CN109976986B (zh) 异常设备的检测方法及装置
CN110874601B (zh) 识别设备运行状态的方法、状态识别模型训练方法及装置
CN108255710B (zh) 一种脚本的异常检测方法及其终端
JP6226463B2 (ja) ネットワーク管理システム、ネットワーク装置および制御装置
Alkasem et al. Utility cloud: a novel approach for diagnosis and self-healing based on the uncertainty in anomalous metrics
CN112732517B (zh) 一种磁盘故障告警方法、装置、设备及可读存储介质