KR20190030193A - It 시스템의 장애 이벤트를 처리하기 위한 기법 - Google Patents
It 시스템의 장애 이벤트를 처리하기 위한 기법 Download PDFInfo
- Publication number
- KR20190030193A KR20190030193A KR1020180123601A KR20180123601A KR20190030193A KR 20190030193 A KR20190030193 A KR 20190030193A KR 1020180123601 A KR1020180123601 A KR 1020180123601A KR 20180123601 A KR20180123601 A KR 20180123601A KR 20190030193 A KR20190030193 A KR 20190030193A
- Authority
- KR
- South Korea
- Prior art keywords
- event
- information
- incident
- window
- data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Algebra (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 개시내용의 일 실시예에 따라, 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 한다. 상기 동작들은: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작; 상기 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우를 생성하는 동작; 상기 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값을 결정하는 동작; 상기 성능 정보 데이터에 적용하기 위한 제 2 윈도우를 생성하는 동작; 상기 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값을 결정하는 동작; 및 상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값에 적어도 부분적으로 기초하여, 상기 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 결정하는 동작;을 포함할 수 있다.
Description
본 개시내용은 컴퓨터 분야에 관한 것으로서, 보다 구체적으로, IT 시스템의 장애 이벤트 처리에 관한 것이다.
기업(enterprise)의 비즈니스는 폭발적인 데이터의 증가와 다양한 환경 및 플랫폼의 등장으로 빠르게 확장되고 있다. 새로운 비즈니스 환경이 도래함에 따라서, 보다 더 효율적이고 유연한 데이터 서비스와 정보의 처리, 데이터 관리 기능이 필요하게 되었다. 이러한 변화에 맞춰서 기업 비즈니스 구현의 기반이 되는 고성능, 고가용성, 높은 장애해결(recovery) 능력 및 확장성의 문제를 해결하기 위한 데이터베이스에 대한 연구가 계속되고 있다.
일반적으로 기업들은 서버, 라우터, 클라우드, 메인프레임, 애플리케이션 및 PC(Personal Computer)와 같은 다양한 요소들로 이루어진 복잡한 컴퓨팅 환경을 사용하고 있다. 이러한 환경에서, 기업들이 사용하는 IT 시스템은 다수의 개체들의 다양한 조합으로 이루어져 있다. IT 시스템에서의 각 개체들은 상호의존적일 수 있다. 여기서 "IT 시스템"은 사용자에게 다양한 IT 서비스를 제공하기 위한 시스템을 의미할 수 있다. 또한, "개체"란 IT 시스템을 구성하는 구성요소로서 단위 시스템에서 어플리케이션까지 다양한 레벨의 요소들을 포함할 수 있다. 또한 "상호의존적"이라는 용어는 하나의 개체의 성능이 다른 개체의 성능에 영향을 미칠 수 있다는 것을 의미한다.
IT 시스템의 각 개체들은 상호의존적으로 동작하기 때문에, 하나의 개체에서 발생한 장애 이벤트는 다른 개체에서의 또 다른 장애를 연쇄적으로 불러일으킬 수 있다. 따라서, 특정 개체에 장애가 발생했을 때는 그 장애를 발생시킨 근본 원인을 제공한 개체가 존재하게 된다. 이러한 근본 원인 개체를 파악하는 기술이 "근본 원인 분석"(Root Cause Analysis, RCA) 기술이다.
그동안 근본 원인 분석 기술을 발전시키기 위한 다양한 시도가 이루어져 왔다. 그 중 하나는 인과관계 모델의 설계 방법에 대한 발명이다. 종래의 기술(대한민국 특허출원 공개번호 10-2009-0018806)에서는 시스템의 전체적인 구성을 알 필요가 없이, 그 시스템의 개체들의 인과관계를 그 표현할 수 있는 인과관계 모델 설계 방법을 제시했다.
또 다른 종래의 기술(대한민국 특허 출원 공개번호 10-2010-0133168)에서는, 애플리케이션 레벨 개체들 간의 상관관계로부터, 근본 원인 분석에 활용될 수 있는 인과관계를 정의할 수 있는 시스템 및 방법을 보여준다.
이러한 종래 기술들은 이하와 같은 단점들이 존재한다.
첫째, 인과관계를 정의하는데 있어서 사용자의 시간 및 노력이 많이 필요하다. 종래 기술들에서는 애플리케이션이 가질 수 있는 그 하위의 기능들까지 서로 어떠한 인과관계(즉, 인과관계를 내포하는 상관관계)를 가지는지를 사용자가 정의해주는 경우에만, 장애 근본 원인 분석에 개체들 간의 인과관계 정보가 이용가능하게 된다. 이러한 사용자 정의 인과관계 설정 방식은 사용자로 하여금 초기 시스템 설계의 수고로움을 가중시킬 수 있다.
둘째, 종래 기술들은 사용자 정의 인과관계 설정 방식을 따르고 있기 때문에, 사용자가 경험적으로 터득한 기술 지식에 대한 의존성이 크다. 즉, 사용자 지식 의존성이 크다는 것은 사용자의 기술에 대한 역량과 경험의 깊이에 따라 인과관계의 정확도가 달라질 수 있다는 것을 의미한다. 따라서, 이러한 경우, 사용자의 수준에 따라 인과 관계 분석에 대한 결과가 상이해질 수 있기 때문에, 시스템의 안정성 측면에 있어서 큰 단점이 존재한다.
셋째, 종래 기술들은 시스템의 구성정보(configuration information) 변경에 유연하게 대체하지 못한다. 시스템의 구성정보가 변경되면, 개체들 간의 상호의존 관계도 변경될 수 있다. 상호의존 관계의 변경이 발생되는 경우 사용자가 또 다시 직접적으로 개체 간의 인과관계를 설정해야 하기 때문에, 관리가 용이하지 않다는 단점이 존재한다.
따라서, 보다 효율적인 방식으로 IT 시스템의 장애 원인을 추적 및 탐지하기 위한 당업계의 니즈가 존재한다.
본 개시내용의 목적은, 전술한 당업계에서의 수요를 충족시키기 위해, IT 시스템에서 발생된 장애 현상에 대한 근본 원인을 분석 및 제시하기 위함이다.
본 개시내용의 목적은, IT 시스템에서의 잠재적인 장애 관련 이벤트를 효율적으로 판단하기 위함이다.
본 개시내용의 일 실시예에 따라, 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 한다. 상기 동작들은: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작; 상기 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우를 생성하는 동작; 상기 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값을 결정하는 동작; 상기 성능 정보 데이터에 적용하기 위한 제 2 윈도우를 생성하는 동작 ― 상기 제 2 윈도우는 상기 제 1 윈도우와 동일한 크기(size)를 가지며 그리고 상기 제 1 윈도우로부터 사전결정된 간격만큼 이격됨 ―; 상기 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값을 결정하는 동작; 및 상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값에 적어도 부분적으로 기초하여, 상기 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 결정하는 동작;을 포함할 수 있다.
본 개시내용의 일 실시예에 따라, IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 관리 서버가 개시된다. 상기 서버는: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 데이터베이스(DB) 서버로부터 수집하는 성능 정보 데이터 수집 모듈; 상기 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우를 생성하고, 그리고 상기 성능 정보 데이터에 적용하기 위한 제 2 윈도우를 생성하는 윈도우 생성 모듈 ― 상기 제 2 윈도우는 상기 제 1 윈도우와 동일한 크기를 가지며 그리고 상기 제 1 윈도우로부터 사전결정된 간격만큼 이격됨 ―; 상기 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값을 결정하고 그리고 상기 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값을 결정하는 통계적 대푯값 결정 모듈; 상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값에 적어도 부분적으로 기초하여, 상기 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 결정하는 잠재적 이벤트 결정 모듈; 및 상기 결정된 잠재적 이벤트를 상기 DB 서버에 저장하는 저장 모듈;을 포함할 수 있다.
본 개시내용의 일 실시예에 따라, 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 한다. 상기 동작들은: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작; 상기 성능 정보 데이터에 윈도우 슬라이싱을 통해 복수의 윈도우들을 적용하는 동작 ― 상기 복수의 윈도우들은 인접한 윈도우와의 중첩된 부분을 포함함 ―; 복수의 윈도우들 각각에 대한 통계적 대푯값을 산출하는 동작; 상기 복수의 윈도우들 각각에 대한 통계적 대푯값들의 정규 분포 데이터를 생성하는 동작; 및 신규 윈도우가 적용된 신규 데이터 군에 대한 통계적 대푯값과 상기 정규 분포 데이터를 비교함으로써 잠재적 이벤트의 발생 여부를 결정하는 동작;을 포함할 수 있다.
본 개시내용의 일 실시예에 따라, 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 한다. 상기 동작들은: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작; 상기 성능 정보 데이터에 윈도우 슬라이싱을 통해 복수의 윈도우들을 적용하는 동작 ― 상기 복수의 윈도우들은 인접한 윈도우와의 중첩된 부분을 포함함 ―; 복수의 윈도우들 각각에 대한 통계적 대푯값을 산출하는 동작; 및 k-nearest neighbor(kNN) 알고리즘을 사용하여, 신규 윈도우가 적용된 신규 데이터 군에 대한 통계적 대푯값과 상기 복수의 윈도우들에 대한 통계적 대푯값들을 비교함으로써 잠재적 이벤트의 발생 여부를 결정하는 동작;을 포함할 수 있다.
본 개시내용의 일 실시예에 따라, 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 한다. 상기 동작들은: 상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작; 상기 성능 정보 데이터에 윈도우 슬라이싱을 통해 복수의 윈도우들을 적용하는 동작 ― 상기 복수의 윈도우들은 인접한 윈도우와의 중첩된 부분을 포함함 ―; 복수의 윈도우들 각각에 대한 통계적 대푯값을 산출하는 동작; 상기 복수의 윈도우들에 대한 통계적 대푯값들을 재귀 신경망(Recurrent neural network, RNN) 또는 나선형 신경망(CNN:Convolutional neural network)에 대한 입력들로 사용함으로써, 미래 윈도우에 대한 통계적 대푯값을 결정하는 동작; 및 신규 윈도우가 적용된 신규 데이터 군에 대한 통계적 대푯값과 상기 미래 윈도우에 대한 통계적 대푯값을 비교함으로써, 잠재적 이벤트의 발생 여부를 결정하는 동작;을 포함할 수 있다.
본 개시내용의 일 실시예에 따라 IT 시스템에서 발생된 장애 현상에 대한 근본 원인이 분석 및 제시될 수 있다.
본 개시내용의 일 실시예에 따라, IT 시스템에서의 잠재적인 장애 관련 이벤트가 효율적으로 판단될 수 있다.
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 특정 세부사항들 없이 실시될 수 있음은 명백할 것이다. 다른 예시들에서, 공지의 구조들 및 장치들이 하나 이상의 양상들의 기재를 용이하게 하기 위해 블록도 형태로 도시된다.
도 1은 본 개시내용의 일 실시예에 따른 CMDB(Configuration Management DataBase) 내에서의 예시적인 CI 관계 테이블 및 예시적인 CI 관계 정보를 도시한다.
도 2는 본 개시내용의 일 실시예에 따른 관리 시스템을 예시적으로 도시한다.
도 3은 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다.
도 4는 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다.
도 5는 본 개시내용의 일 실시예라 따른 잠재적 이벤트를 탐지하는 관리 서버의 예시적인 블록도이다.
도 6는 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시하는 순서도이다.
도 7은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 관리 서버의 예시적인 블록도이다.
도 8은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 예시적인 방법의 순서도를 도시한다.
도 9는 본 개시내용의 일 실시예에 따라 생성된 예시적인 CI 관계 정보를 도시한다.
도 10은 본 개시내용의 일 실시예에 따라 이벤트 상관관계를 식별하는 예시적인 기법을 도시한다.
도 11은 본 개시내용의 일 실시예에 따라 생성된 이벤트 상관관계 정보 및 인과관계 정보를 예시적으로 도시한다.
도 12는 본 개시내용의 일 실시예에 따라 이벤트 상관관계 정보에서 인과관계가 반영된 각 연결들에 대한 연결 강도를 예시적으로 도시한다.
도 13은 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 탐색 및 분석 절차를 도시한다.
도 14는 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 심화 탐색 및 분석 절차를 도시한다.
도 15는 본 개시내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.
도 1은 본 개시내용의 일 실시예에 따른 CMDB(Configuration Management DataBase) 내에서의 예시적인 CI 관계 테이블 및 예시적인 CI 관계 정보를 도시한다.
도 2는 본 개시내용의 일 실시예에 따른 관리 시스템을 예시적으로 도시한다.
도 3은 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다.
도 4는 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다.
도 5는 본 개시내용의 일 실시예라 따른 잠재적 이벤트를 탐지하는 관리 서버의 예시적인 블록도이다.
도 6는 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시하는 순서도이다.
도 7은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 관리 서버의 예시적인 블록도이다.
도 8은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 예시적인 방법의 순서도를 도시한다.
도 9는 본 개시내용의 일 실시예에 따라 생성된 예시적인 CI 관계 정보를 도시한다.
도 10은 본 개시내용의 일 실시예에 따라 이벤트 상관관계를 식별하는 예시적인 기법을 도시한다.
도 11은 본 개시내용의 일 실시예에 따라 생성된 이벤트 상관관계 정보 및 인과관계 정보를 예시적으로 도시한다.
도 12는 본 개시내용의 일 실시예에 따라 이벤트 상관관계 정보에서 인과관계가 반영된 각 연결들에 대한 연결 강도를 예시적으로 도시한다.
도 13은 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 탐색 및 분석 절차를 도시한다.
도 14는 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 심화 탐색 및 분석 절차를 도시한다.
도 15는 본 개시내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.
다양한 실시예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나 이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.
또한, 다양한 양상들 및 특징들이 하나 이상의 장치들, 단말들, 서버들, 디바이스들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있는 시스템에 의하여 제시될 것이다. 다양한 시스템들이, 추가적인 장치들, 단말들, 서버들, 디바이스들, 컴포넌트들 및/또는 모듈들 등을 포함할 수 있다는 점 그리고/또는 도면들과 관련하여 논의된 장치들, 단말들, 서버들, 디바이스들, 컴포넌트들, 모듈들 등의 전부를 포함하지 않을 수도 있다는 점 또한 이해되고 인식되어야 한다.
본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다. 아래에서 사용되는 용어들 '컴포넌트', '모듈', '시스템', '인터페이스' 등은 일반적으로 컴퓨터 관련 엔티티(computer-related entity)를 의미하며, 예를 들어, 이는 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어를 의미할 수 있다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
본 명세서에서의 컴퓨터 판독가능 매체는 컴퓨터 시스템에 의해서 판독될 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 저장 매체를 포함할 수 있다. 본 개시내용에서의 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 본 발명의 일 양상에 따르면, 컴퓨터 판독가능 저장 매체는: ROM(판독 전용 메모리), RAM(랜덤 액세스 메모리), CD(컴팩트 디스크)-ROM, DVD(디지털 비디오 디스크)-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등을 포함할 수 있다. 또한, 컴퓨터 판독가능 전송 매체는 캐리어 웨이브(예컨대, 인터넷을 통한 전송)의 형태로 구현되는 임의의 전송 가능한 형태의 매체를 포함할 수 있다. 추가적으로, 이러한 컴퓨터 판독가능 매체는 네트워크로 연결된 시스템에 분산되어, 분산 방식으로 컴퓨터가 판독가능한 코드들 및/또는 명령들을 저장할 수도 있다.
본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다. 또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.
도 1은 본 개시내용의 일 실시예에 따른 CMDB(Configuration Management DataBase) 내에서의 예시적인 CI 관계 테이블 및 예시적인 CI 관계 그래프를 도시한다.
본 개시내용에서, "IT 관리 시스템"은 다수의 개별 개체의 조합으로 이루어진 IT 시스템의 성능을 모니터링함으로써, 사전에 장애를 예측하거나 사후에 장애 원인을 분석하고 그리고 사용자에게 문제의 해결책을 제시해 줄 수 있는 IT 종합 솔루션 시스템을 의미할 수 있다.
본 개시내용에서 CMDB는 IT 시스템의 구성정보를 포함하는 데이터베이스를 의미할 수 있다. CMDB는 개체 등을 나타내는 구성항목(CI:Configuration Item) 및 구성항목들 사이의 관계를 나타내는 CI 관계(Relation) 정보를 포함할 수 있다. 본 개시내용에서 CI 및 CI 이벤트들은 서로 상호 교환가능하게 사용될 수도 있다.
예컨대, 도 1에서 도시되는 바와 같이, "물리 호스트(Physical Host)" CI인 Host A와 "가상 호스트(Virtual Host)" CI인 vHostA와 vHostB는 가상 호스트가 물리 호스트 위에 호스팅 되어 있다는 "is hosted on"의 관계로 설정될 수 있다. CI 관계 정보는 둘 이상의 CI들 간의 연결관계를 보여주는 정보이다. CMDB를 이용하는 경우, 전체 IT 시스템의 구성정보와 관계정보가 표현될 수 있다. 이러한 관계정보는 도식적인 그래프의 형태로 표현될 수 있다. 이러한 도식적인 형태의 그래프는 "CI 관계 그래프"로 지칭될 수 있다. CI 관계 그래프에서의 노드는 CI를 의미하고 그리고 간선(line) 또는 연결(connection)은 CI들 간의 관계를 나타낼 수 있다.
본 개시내용에서 "이벤트"란 각각의 CI에서 장애가 발생했음을 알려주는 알람을 의미할 수 있다. 이벤트는 사용자가 명시적으로 정해준 규칙(rule)에 의해서 발생하는 "명시적 이벤트"가 있고, 그리고 명시적으로 정해준 규칙이 아닌 통계적 혹은 예측적 지표에 의해 발생하는 비정상성을 의미하는 "잠재적 이벤트"가 있다.
예컨대, "호스트 A의 CPU 사용률이 90%를 넘으면 이벤트를 발생시켜라"라는 규칙을 사용자가 90%라는 한계선을 측정 대상(예컨대, CPU)에 따라 명시적으로 지정할 수 있다. 이렇게 명시적으로 지정된 규칙에 의해 발생한 이벤트를 명시적 이벤트라고 한다.
하지만, 사용자가 직접 모든 측정 대상에 명시적으로 규칙을 지정해주는 것은 매우 공수가 많은 작업이다. 또한, 사용자의 숙련도에 따라 규칙의 지정 여부 및 지정 정도가 달라질 수 있기 때문에, 이러한 명시적 이벤트에 의존하는 IT 시스템의 경우 사용자의 숙련도에 따라 IT 시스템의 안정성이 달라질 수 있다는 불안전성이 존재할 수 있다. 따라서, 사용자가 명시적으로 지정해주지 않고도 시스템의 이상 정도를 파악할 수 있는 잠재적 이벤트를 발생시킬 수 있는 일련의 기법이 필요하다.
본 개시내용의 일 실시예에서, 이벤트를 발생시키는데 기초가 되는 규칙의 한계선(즉, 임계값)에 따라서 발생되는 이벤트의 심각도가 구분될 수도 있다. 예컨대, 호스트 A의 CPU 사용률이 80%를 넘으면 "경고" 이벤트를 발생시키고, 90%를 넘으면 "위험" 이벤트를 발생시키는 것과 같이, 측정 대상의 한계선(즉, 임계값)에 따라 이벤트의 심각도가 구분될 수 있다.
본 개시내용의 일 실시예에서, 경우에 따라서, 이벤트는 CI 장애의 현상을 나타낼 수도 있다. 이러한 경우, 장애가 발생했음을 표현하는 지표가 "인시던트(사고)"라고 지칭될 수 있다. 본 개시내용에서의 "인시던트"란 CI에서 장애수준의 이벤트가 발생했음을 알려주는 지표이다. 따라서, 특정 CI에서 장애가 발생했을 때, 인시던트가 발생했다고 지칭될 수 있다. 본 개시내용에서의 "인시던트 CI"는 장애(예컨대, 작동 정지 등)가 발생한 CI를 의미한다. 또한, 본 개시내용에서의 "인시던트 CI 이벤트"는 해당 CI에 대한 장애가 발생했을 때 나타난 이벤트를 의미할 수 있다. 또한, 본 개시내용에서의 인시던트는 장애가 발생한 "현상"을 의미하고, 인시던트 CI는 장애가 발생한 "주체"를 의미하고, 그리고 인시던트 CI 이벤트는 장애가 발생했을 때 드러난 "증상"을 의미할 수 있다.
이하에서 설명될 바와 같이, 본 개시내용에서는 CI 관계 정보(예컨대, CI 관계 그래프)를 이용하여 근본 원인 분석을 수행하는 신규한 기법을 제시한다. 근본 원인 분석을 수행하는 기법은: CI 관계 정보(예컨대, CI 관계 그래프)로부터 이벤트 상관관계가 있는 CI들을 연결해주는 "이벤트 상관관계 정보(예컨대, 이벤트 상관관계 그래프)"를 도출하고, 인과관계가 성립되는 CI들을 연결해주는 "인과관계 정보(예컨대, 인과 관계 그래프)"를 도출하고, 그리고 문제가 발생한 CI로부터 근본원인을 이벤트 상관관계 정보(예컨대, 인과관계가 반영된 이벤트 상관관계 그래프)를 따라 탐색하는 과정을 수행할 수 있다.
후술되는 본 개시내용의 실시예들에 따라, CMDB 기반의 근본 원인 추적을 위한 사용자 노력이 줄어들 수 있다. 또한, 잠재적 이벤트의 탐지 방법을 통하여 명시적 이벤트 발생 규칙 설정의 사용자 노력이 감소될 수 있다. 추가적으로, 본 개시내용의 실시예들에 따라 잠재적 이벤트 탐지 방법 및/또는 인시던트(또는 이벤트)의 근본 원인 탐색 방법의 효율성이 제고될 수 있다.
도 2는 본 개시내용의 일 실시예에 따른 관리 시스템(1000)을 예시적으로 도시한다.
본 명세서에서의 관리 시스템 및 IT 관리 시스템은 서로 상호 교환가능하게 사용될 수 있다. 도 2에서 도시되는 컴포넌트들은 예시적인 것일 뿐, 추가적인 컴포넌트들이 포함될 수 있거나 또는 컴포넌트들 중 일부가 생략될 수도 있다. 본 개시내용의 추가적인 양상에서, 도 2에서 도시되는 컴포넌트들 간의 조합 또한 가능할 수 있다.
본 개시내용에서의 관리 시스템(1000)은 관리 서버(100), DB 서버(200), 관리대상군(300) 및 관리 모니터링군(400)을 포함할 수 있다.
관리 서버(100)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 이러한 관리 서버(100)는 별도의 DBMS(Database Management System) 및/또는 영구 저장 매체(persistent storage)를 포함할 수도 있다.
영구 저장 매체는, 예를 들어 자기(magnetic) 디스크, 광학(optical) 디스크 및 광자기(magneto-optical) 저장 디바이스뿐만 아니라 플래시 메모리 및/또는 배터리-백업 메모리에 기초한 저장 디바이스와 같은, 임의의 데이터를 지속적으로 할 수 있는 비-휘발성(non-volatile) 저장 매체를 의미한다. 이러한 영구 저장 매체는 다양한 통신 수단을 통하여 관리 서버(100)의 프로세서 및 메모리와 통신할 수 있다. 추가적인 실시예에서, 이러한 영구 저장 매체는 관리 서버(100) 외부에 위치하여 관리 서버(100)와 통신가능할 수도 있다.
관리 서버(100)는 버퍼 캐시를 포함하는 하나 이상의 메모리를 포함할 수 있다. 또한, 관리 서버(100)는 하나 이상의 프로세서를 포함할 수 있다. 따라서, 관리 서버(100) 내에서의 프로그램들, 매니저들, 에이전트들, 엔진들, 및/또는 컴포넌트들은 상기 메모리 상에서 상기 프로세서에 의하여 동작될 수 있다.
여기서, 메모리는 동적 램(DRAM, dynamic random access memory), 정적 램(SRAM, static random access memory) 등의 랜덤 액세스 메모리(RAM)와 같은, 프로세서가 직접 접근하는 주된 저장 장치로서 전원이 꺼지면 저장된 정보가 순간적으로 지워지는 휘발성(volatile) 저장 장치를 의미할 수 있지만, 이들로 한정되는 것은 아니다. 이러한 메모리는 프로세서에 제어에 의하여 동작 될 수 있다.
관리 서버(100)는 모니터링 대상이 되는 관리 대상군(300)의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집할 수 있다. 예를 들어, 관리 서버(100)의 이벤트 관리 매니저(110)의 잠재적 이벤트 탐지 엔진(112)이 성능 정보 데이터를 측정 및/또는 수집할 수 있다. 수집된 성능 정보 데이터는 DB 서버(200)(예컨대, 성능 정보 DB(220)에 저장될 수 있다. 예를 들어, 성능 정보 데이터는 관리 대상군(300)의 호스트(310, 321, 331)의 에이전트(311, 321, 331)로부터 수집될 수 있다.
다른 실시예에서, 성능 정보 데이터는 DB 서버(200)(예컨대, 성능 정보 DB(220))에 의해 측정, 수집 및 저장될 수 있다. 이러한 경우, 관리 서버(100)는 DB 서버(200)로부터 성능 정보 데이터를 전달받을 수 있다.
관리 서버(100)는 성능 정보 데이터에 적용하기 위한 윈도우들을 생성하여, 사전결정된 간격으로 중첩된 윈도우 슬라이딩을 통하여, 성능 정보 데이터에 대한 통계적 대푯값을 결정할 수 있다. 관리 서버(100)는 통계적 대푯값에 기초하여, 사용자에 의해 정의된 명시적 이벤트에 대한 규칙(rule)이 아닌, 관리 서버(100)에 의해 자동적으로 탐지될 수 있는 잠재적 이벤트에 대한 규칙을 생성할 수 있다.
관리 서버(100)의 이벤트 관리 매니저(110)는 에이전트들(311, 321, 331)로부터 수집된 성능 정보 데이터를 바탕으로 이벤트 발생 여부를 결정하거나, 또는 이벤트 탐지 규칙을 지정하는 것과 같이 이벤트 관리에 관련된 기능들을 수행할 수 있다.
명시적 이벤트 탐지 엔진(111)은 사용자가 명시적으로 지정한 이벤트 탐지 규칙을 관리할 수 있다. 명시적 이벤트 탐지 엔진(111)은 명시적 이벤트에 대한 탐지 규칙을 생성할 수 있으며, 명시적 이벤트 탐지에 대한 스케쥴링을 수행할 수 있으며, 그리고 명시적 이벤트를 발생시킬지 여부를 결정할 수 있다. 명시적 이벤트 탐지 엔진(111)은 명시적 이벤트에 대한 탐지 규칙에 해당되는 이벤트가 발생하는 경우, 명시적 이벤트를 발생시킬 것을 결정할 수 있다. 에이전트로부터 수집된 성능 정보 데이터는 성능 정보 DB(220)에 저장될 수 있다. 이러한 경우 명시적 이벤트 탐지 엔진(111)은 성능 정보 DB(220)로부터 성능 정보 데이터를 가져오고, 이벤트를 발생시킬지 여부를 결정할 수 있다. 탐지 또는 발생된 이벤트는 예를 들어, 이벤트 DB(230)에 저장될 수 있다.
잠재적 이벤트 탐지 엔진(112)은 잠재적 이벤트를 탐지 및 관리할 수 있다. 잠재적 이벤트 탐지 엔진(112)은 성능 정보 데이터에 대한 전처리(pre-processing)을 수행할 수 있다. 잠재적 이벤트 탐지 엔진(112)은 잠재적 이벤트의 탐지에 대한 스케쥴링를 수행할 수 있다. 잠재적 이벤트 탐지 엔진(112)은 잠재적 이벤트 탐지에 대한 규칙을 설정 및 관리할 수 있다. 잠재적 이벤트 탐지 엔진(112)은 사전결정된 주기에 따라서 성능 정보 DB(220)로부터 성능 정보 데이터를 가져올 수 있다. 그리고나서, 잠재적 이벤트 탐지 엔진(112)은 성능 정보 데이터에 대한 전처리(예컨대, 윈도우 슬라이싱)를 수행함으로써 잠재적 이벤트를 탐지할 수 있다. 탐지된 잠재적 이벤트 및 발생된 잠재적 이벤트는 이벤트 DB(230)에 저장될 수 있다.
잠재적 이벤트 탐지 엔진(112)은 통계적 대푯값들에 대한 평균 정보 및 표준편차 정보를 결정함으로써 정규 분포 데이터를 생성하고, 그리고 정규 분포 데이터를 기초로 하여 신규 데이터 군의 통계적 대푯값에 대한 이상 여부를 결정함으로써, 잠재적 이벤트를 탐지할 수 있다.
잠재적 이벤트 탐지 엔진(112)은 k-nearest neighbor(kNN) 알고리즘을 사용하여, 신규 데이터 군의 통계적 대푯값과 기존 통계적 대푯값 각각의 거리 데이터를 판단함으로써, 신규 데이터 군의 통계적 대푯값에 대한 이상 여부를 결정함으로써, 잠재적 이벤트를 탐지할 수 있다.
잠재적 이벤트 탐지 엔진(112)은 재귀 신경망(Recurrent neural network, RNN) 또는 나선형 신경망(CNN:Convolutional neural network)을 사용하여 상기 기존 통계적 대푯값들로부터의 예상가능 미래값을 도출하고 그리고 신규 데이터 군의 통계적 대푯값을 예상가능 미래값과 비교하는 방식으로 신규 데이터 군에 대한 이상 여부를 결정함으로써, 잠재적 이벤트를 탐지할 수 있다.
관리 서버(100)는 DB 서버(200), 관리 대상군(300) 및/또는 관리 모니터링군(400)과 임의의 네트워크를 통해 통신할 수 있다. 예를 들어, 관리 서버(100)는 결정된 잠재적 이벤트에 대한 정보를 관리 모니터링 군(400)으로 전송할 수 있다.
본 개시내용의 일 실시예에서, 관리 서버(100)는 발생된 인시던트 이벤트에 대한 근본 원인을 분석 및 탐지할 수 있다. 관리 서버(100)는 관리대상 군(300)에서 발생된 인시던트(incident) CI(Configuration Item) 이벤트가 발생함을 검출하할 수 있다. 관리 서버(100)는 인시던트 CI 이벤트와 관련된 인시던트 CI를 식별한 후, CMDB(240)에서의 CI 관계 정보에 기초하여, 상기 식별된 인시던트 CI와 사전결정된 계층 깊이(hierarchy depth)를 갖는 후보(candidate) CI들을 결정할 수 있다. 여기서, 계층 깊이는 상기 CI 관계 정보 내에서의 CI들 간의 거리(distance)와 연관될 수 있다. 예를 들어, 계층 깊이는 계층 깊이: CI 관계 정보 내에서의 CI들 사이에 존재하는 연결선의 개수와 연관될 수 있다. CI 관계 정보 내에서의 CI들은 노드들을 형성할 수 있으며, 노드들 간의 연결 및 연결관계가 CI 관계 정보 내에서 표현될 수 있다.
관리 서버(100)는 후보 CI들에서 발생된 후보 이벤트들을 식별하고 그리고 상기 후보 이벤트들 각각의 발생 시점(occurrence time)을 결정할 수 있다. 후보 이벤트들 각각의 발생 시점과 상기 인시던트 CI 이벤트의 발생 시점을 비교함으로써, 비교 결과가 사전결정된 차이값 이내인 후보 이벤트들을 분석 대상 이벤트들로서 결정할 수 있다. 관리 서버(100)는 결정된 발생 시점에 기초하여, 상기 후보 이벤트들 중에서 하나 이상의 분석 대상 이벤트들(analysis target event)을 결정할 수 있다. 이러한 분석 대상 이벤트들 상호 간을 연결하는 이벤트 상관관계 정보(event correlation information)가 관리 서버(100)에 의해 생성될 수 있다.
관리 서버(100)는 CMDB(240)에서의 CI 관계 정보에 기초하여, 상기 이벤트 상관관계 정보에 포함된 상기 분석 대상 이벤트들 상호간의(mutual) 연결(connection)에 대한 방향성(directional property)을 나타내는 인과관계(causality)를 결정할 수 있다. 인과 관계는 이벤트 상관관계 정보에 반영될 수 있다. 예를 들어, 반영된 인과 관계는 이벤트들을 상호 연결하는 이벤트 상관관계 정보 내에서의 연결 방향을 나타낼 수 있다. 관리 서버(100)는 이벤트들 간의 연결에 대한 연결 강도를 결정하고, 인과 관계 및 연결 강도에 기초하여 인시던트 CI 이벤트에 대한 근본 원인을 탐색할 수 있다.
관리서버(100)는 인과 관계 및 연결 강도에 기초하여 인시던트 CI 이벤트에 대한 근본 원인 탐색의 순서를 결정할 수 있다. 탐색 결과에 대한 사용자 피드백에 기초하여, 관리 서버(100)는 계층 깊이를 조절하는 방식으로 근본 원인 탐색의 프로세스를 재수행하거나 또는 기준이 되는 CI 또는 CI 이벤트를 재설정하여 근본 원인 탐색의 프로세스를 재수행할 수 있다.
본 개시내용에서, 관리 서버(100)의 인시던트 관리 매니저(120)는 인시던트 진단 엔진(121) 및 근본원인 분석 엔진(122)을 포함할 수 있으며, 그리고 근본원인 분석 엔진(122)은 이벤트 상관관계 분석부(122A) 및 인과관계 분석부(122B)를 포함할 수 있다. 인시던트 관리 매니저(120)는 특정 호스트에 대하여 발생된 이벤트(CI 이벤트)가 인시던트 CI 이벤트인지 여부를 결정할 수 있다. 인시던트 CI 이벤트인지 여부에 대한 결정은 CI 이벤트의 심각도 레벨, CI 이벤트가 영향을 미치는 다른 CI들의 수 및/또는 CI 이벤트가 복구되는데 걸리는 시간 등에 기초하여 수행될 수 있다. 인시던트 관리 매니저(120)는 발생된 인시던트 CI 이벤트에 대한 이벤트 상관관계 정보를 생성하고, 그리고 인과 관계 및 연결 강도를 결정할 수 있다. 인시던트 관리 매니저(120)는 인과 관계 및 연결 강도를 이벤트 상관관계 정보에 반영시킴으로써, 근본 원인 탐색에 대한 경로 및 우선순위를 결정할 수 있다. 인시던트 관리 매니저(120)는 근본 원인 탐색 프로세스를 수행할 수 있다.
인시던트 진단 엔진(121)은 이벤트 DB(230)로부터 이벤트 정보를 수신하여 수신된 이벤트가 인시던트와 연관되는지 여부를 결정할 수 있다. 인시던트에 대한 정보는 인시던트 정보 DB(250)에 저장될 수 있다.
근본 원인 분석 엔진(122)은 이벤트의 상관관계를 분석하고 인과관계 및 연결강도를 결정함으로써 인시던트 CI 이벤트에 대한 근본 원인을 결정할 수 있다.
이벤트 상관관계 분석부(122A)는 이벤트들 간의 상관관계를 분석할 수 있다. 이벤트 상관관계 분석부(122A)는 이벤트 DB(230)로부터 이벤트 정보를 수신하고, 인시던트 정보 DB(250)로부터 인시던트 정보를 수신하고, 그리고 CMDB(240)로부터 CI 및 CI 관계 정보를 수신할 수 있다. 이벤트 상관관계 분석부(122A)는 DB들로부터 수신된 정보를 이용하여 이벤트들 간의 상관관계를 분석함으로써 이벤트 상관관계 정보를 생성할 수 있다.
인과관계 분석부(122B)는 이벤트 상관관계 정보 및 CI 관계 정보 중 적어도 하나를 이용하여 인과관계 분석을 수행할 수 있다. 인과관계 분석부(122B)는 이벤트들 간의 연결 강도를 결정할 수 있다. 인과관계 분석부(122B)는 인시던트 CI 이벤트에 대한 근본 원인 분석을 수행할 수 있다. 인과관계 분석부(122B)에 의해 결정된 인시던트 CI 이벤트의 근본 원인(즉, 최종 분석 결과)을 사용자(예컨대, 관리 모니터링군(400))에게 전달할 수 있다. 관리 모니터링군(400)으로부터 근본 원인에 대한 최종 확인을 수신하는 경우, 인과관계 분석부(122B)는 근본 원인 분석에 대한 결과를 장애 솔루션 DB(270)에 저장할 수 있다. 장애 솔루션 DB(270)에 저장된 결과는 장애 및 장애의 근본 원인에 대한 정보를 포함할 수 있으며, 이러한 정보는 추후 인과 관계 분석에 재활용될 수 있다.
DB 서버(200)는 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다. 이러한 관리 서버(100)는 별도의 DBMS(Database Management System) 및/또는 영구 저장 매체(persistent storage)를 포함할 수도 있다. 도 2에서는 1개의 데이터베이스 서버를 예시적으로 도시하고 있으나, 이보다 많은 데이터베이스 서버들 또한 본 발명의 범위에 포함될 수 있다는 점이 당해 출원 분야에 있어서 통상의 지식을 가진 자에게 명백할 것이다. 더불어, DB 서버(200)는 관리 서버(100) 내부에 통합될 수도 있다.
도 2에서는 도시되지 않았지만, DB 서버(200)는 버퍼 캐시를 포함하는 하나 이상의 메모리를 포함할 수 있다. 또한, 도 2에서는 도시되지 않았지만, DB 서버(200)는 하나 이상의 프로세서를 포함할 수 있다. 따라서, DB 서버(200) 내에서의 DBMS는 상기 메모리 상에서 상기 프로세서에 의하여 동작될 수 있다.
여기서, 메모리는 동적 램(DRAM, dynamic random access memory), 정적 램(SRAM, static random access memory) 등의 랜덤 액세스 메모리(RAM)와 같은, 프로세서가 직접 접근하는 주된 저장 장치로서 전원이 꺼지면 저장된 정보가 순간적으로 지워지는 휘발성(volatile) 저장 장치를 의미할 수 있지만, 이들로 한정되는 것은 아니다. 이러한 메모리는 프로세서에 제어에 의하여 동작 될 수 있다. 메모리는 데이터 값을 포함하는 데이터 테이블(data table)을 임시로 저장할 수 있다. 상기 데이터 테이블은 데이터 값을 포함할 수 있으며, 본 개시내용의 일 실시예에서 상기 데이터 테이블의 데이터 값은 메모리로부터 영구 저장 매체에 기록될 수 있다. 추가적인 양상에서, 메모리는 버퍼 캐시를 포함하며, 상기 버퍼 캐시의 데이터 블록에는 데이터가 저장될 수 있다. 상기 데이터는 백그라운드 프로세스에 의하여 영구 저장 매체에 기록될 수 있다.
영구 저장 매체는, 예를 들어 자기(magnetic) 디스크, 광학(optical) 디스크 및 광자기(magneto-optical) 저장 디바이스뿐만 아니라 플래시 메모리 및/또는 배터리-백업 메모리에 기초한 저장 디바이스와 같은, 임의의 데이터를 지속적으로 할 수 있는 비-휘발성(non-volatile) 저장 매체를 의미한다. 이러한 영구 저장 매체는 다양한 통신 수단을 통하여 DB 서버(200)의 프로세서 및 메모리와 통신할 수 있다. 추가적인 실시예에서, 이러한 영구 저장 매체는 DB 서버(200) 외부에 위치하여 DB 서버(200)와 통신가능할 수도 있다. 또한, 하나의 영구 저장 매체에 복수의 DBMS가 접속된 형태 또는 복수의 영구 저장 매체를 포함하는 형태 또한 본 발명의 권리 범위에 포함될 수 있다.
DBMS는 DB 서버(200)에서 필요한 데이터를 검색, 삽입, 수정 및/또는 삭제 등과 같은 동작들을 수행하는 것을 허용하기 위한 프로그램으로서, 전술한 바와 같이, DB 서버(200)의 메모리에서 프로세서에 의하여 구현될 수 있다.
DB 서버(200)는, 이벤트 탐지 규칙 DB(210), 성능 정보 DB(220), 이벤트 DB(230), CMDB(240), 인시던트 정보 DB(250), 분석 정보 DB(260) 및 장애 솔루션 DB(270)을 포함할 수 있다. DB 서버(200) 내의 전술한 DB들의 임의의 조합은 별도의 서버에 포함되어 타 서버와 통신하는 방식으로 구현될 수도 있다. 또한, DB 서버(200) 내에서의 전술한 DB들은 DBMS에 의해 관리되는 영구 저장 매체들일 수도 있다. DB 서버(200)는 임의의 네트워크를 통하여 관리 서버(100), 관리대상 군(300) 및/또는 관리 모니터링군(400)과 통신할 수 있다.
이벤트 탐지 규칙 DB(210)는 명시적 이벤트 및/또는 잠재적 이벤트에 대한 탐지 규칙을 저장할 수 있다. 성능 정보 DB(220)는 에이전트(311, 321, 331)에 의해 수집된 성능 정보 데이터를 저장할 수 있다. 이벤트 DB(230)는 명시적 이벤트 및/또는 잠재적 이벤트 탐지 엔진에 의해 발생된 이벤트들을 저장할 수 있다.
CMDB(240)는 관리대상 군(300)에 속하는 호스트들(310, 320, 330)의 CI 및 CI 관계 정보를 저장할 수 있는 구성 관리 데이터베이스를 의미할 수 있다.
CMDB(240)는 구성 품목(CI) 간의 관계를 캡처할 수 있다. 예를 들어, 애플리케이션은 애플리케이션 서버에서 실행된다. 개별적인 CI 관계에서 하나의 CI는 해당 관계의 소스(source)가 될 수 있으며, 그리고 다른 CI는 대상(object)이 될 수 있다. 전술한 예시에서는 애플리케이션 CI가 소스이고, 그리고 서버가 대상이 될 수 있다.
인시던트 정보 DB(250)는 인시던트 진단 엔진(121)에 의해 규정된 인시던트 정보를 저장할 수 있다.
분석 정보 DB(260)는 근본 원인 분석 엔진(122)에 의해 분석된 결과를 저장할 수 있다.
장애 솔루션 DB(270)는 장애 정보(예컨대, 인시던트 CI 이벤트 정보) 및 이에 대응되는 근본 원인 분석에 대한 최종 결과 또는 사용자로부터 확인된 결과를 저장할 수 있다.
관리 모니터링 군(400)은 통합 관리 모니터(410, 420, 430)를 포함할 수 있다. 통합 관리 모니터(410, 420, 430)는 네트워크를 통하여 통신하기 위한 매커니즘을 갖는 관리 시스템(1000)에서의 노드(들)를 의미할 수 있다. 예를 들어, 통합 관리 모니터(410, 420, 430)는 PC, 랩탑 컴퓨터, 워크스테이션, 사용자 단말 및/또는 네트워크 접속성을 갖는 임의의 전자 디바이스를 포함할 수 있다. 또한, 통합 관리 모니터(410, 420, 430)는 에이전트(Agent), API(Application Programming Interface) 및 플러그-인(Plug-in) 중 적어도 하나에 의해 구현되는 임의의 서버를 포함할 수도 있다. 또한, 통합 관리 모니터(410, 420, 430)는 애플리케이션 소스 및/또는 클라이언트 애플리케이션을 포함할 수 있다.
통합 관리 모니터(410, 420, 430)는 프로세서 및 메모리를 포함하여, 임의의 데이터를 처리 및 저장할 수 있는 임의의 엔티티일 수 있다. 또한, 도 2에서의 통합 관리 모니터(410, 420, 430)는 관리 서버(100) 및/또는 DB서버(200)를 사용하거나 이들과 통신하는 사용자와 관련될 수 있다. 이러한 예시에서, 통합 관리 모니터(410, 420, 430)는 관리 서버(100) 또는 DB 서버(200)로 쿼리를 발행할 수 있다. 일 예시에서, 통합 관리 모니터(410, 420, 430)는 관리 서버(100) 또는 DB 서버(200)로부터 인시던트 CI 이벤트, 잠재적 이벤트 탐지 결과 및/또는 근본 원인 분석 결과 등을 수신할 수 있다. 또한, 예를 들어, 통합 관리 모니터(410, 420, 430)는 애플리케이션 소스를 컴파일링하여 클라이언트 애플리케이션을 생성할 수도 있다.
통합 관리 모니터(410, 420, 430)는 DB 서버(200)에 대한 쿼리 결과를 조회/수신할 수 있으며, 그리고 이벤트 관리 UI, 에이전트 관리 UI, 인시던트 관리 UI 등의 임의의 사용자 인터페이스들을 포함할 수 있다. 본 명세서에서의 통합 관리 모니터(410, 420, 430) 또는 관리 모니터링 군(400)은 사용자와 상호 교환가능하게 사용될 수도 있다.
관리 모니터링 군(400)내의 컴포넌트들은 임의의 네트워크를 통하여 관리 서버(100), DB 서버(200), 및/또는 관리 대상군(300)과 통신할 수 있다.
관리 대상군(300)은 관리 서버(100)에 의해 모니터링되는 호스트들의 집합을 의미할 수 있다. 각각의 호스트들(310, 320, 330)에는 에이전트 툴(tool)이 설치될 수 있다.
에이전트(311, 321, 331)는 호스트에 대한 성능 정보 데이터를 수집하고 그리고 이를 관리 모니터링 군(400), 관리 서버(100) 및/또는 DB 서버(200)로 전달할 수 있다. 예를 들어, 에이전트(311, 321, 331)는 수집된 성능 정보 데이터를 DB 서버(200)로 전달하고, 해당 성능 정보 데이터는 DB 서버(200) 내의 성능 정보 DB(220)에 저장될 수 있다.
전술한 바와 같이, 관리 시스템(1000) 내의 컴포넌트들은 네트워크(미도시)를 통하여 서로 통신할 수 있다. 본 발명의 일 실시예에 따른 네트워크는 공중전화 교환망(PSTN:Public Switched Telephone Network), xDSL(x Digital Subscriber Line), RADSL(Rate Adaptive DSL), MDSL(Multi Rate DSL), VDSL(Very High Speed DSL), UADSL(Universal Asymmetric DSL), HDSL(High Bit Rate DSL) 및 근거리 통신망(LAN) 등과 같은 다양한 유선 통신 시스템들을 사용할 수 있다.
또한, 본 명세서에서 제시되는 네트워크는 CDMA(Code Division Multi Access), TDMA(Time Division Multi Access), FDMA(Frequency Division Multi Access), OFDMA(Orthogonal Frequency Division Multi Access), SC-FDMA(Single Carrier-FDMA) 및 다른 시스템들과 같은 다양한 무선 통신 시스템들을 사용할 수 있다. 추가적으로, 네트워크는 데이터베이스 링크(dblink)를 포함할 수 있으며, 이에 따라 컴포넌트들은 이러한 데이터베이스 링크를 통해 서로 통신하여 다른 서버로부터의 데이터를 가져올 수 있다. 본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
도 3은 본 개시내용의 일 실시예에 따른 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다. 도 3에서 수행되는 기법은 관리 서버(100)(예컨대, 이벤트 관리 매니저(110)의 잠재적 이벤트 탐지 엔진(112))에 의해 수행될 수 있다.
관리 서버(100)는 모니터링 대상이 되는 호스트(310, 320, 330)의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수신할 수 있다. 관리 서버(100)는 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 윈도우들(W1, W2, W3 ...)을 생성할 수 있다. 생성된 윈도우들(W1, W2, W3 ...)은 사전결정된 설정값(예컨대, Window Size: 10분, Sliding time: 2분)에 따라 크기 및 슬라이딩 간격을 가질 수 있다. 상기 윈도우들(W1, W2, W3 ...) 각각의 적어도 일부분은 서로 중첩될 수 있다. 상기 윈도우들(W1, W2, W3 ...)은 사전결정된 설정값에 따라 동일한 크기 및 동일한 슬라이딩 간격을 가질 수 있다.
윈도우들의 가로축은 시간 정보를 나타내고 그리고 윈도우들의 세로축은 성능 지표의 값 정보를 나타낼 수 있다.
도 3에서 도시되는 바와 같이, 윈도우들(W1, W2, W3 ...) 각각에 포함된 상기 성능 정보 데이터의 통계적 대푯값(예컨대, 각 윈도우의 표본 평균(μwi) 및/또는 각 윈도우의 표본 표준 편차(σwi)이 결정될 수 있다. 여기서의 i는 임의의 자연수와 대응될 수 있다.
상기 결정된 통계적 대푯값들(μwi 및/또는σwi) 각각에 대한 통계적 대푯값들이 결정될 수 있다. 즉, 표본 평균의 평균(즉, E(μwi))/표본 평균의 표준편차(즉, σ(μwi)) 및/또는 표본 표준편차의 평균(즉, E(σwi))/표본 표준편차의 표준편차(즉, σ(σwi))이 결정될 수 있다. 즉, 통계적 대푯값들에 대한 통계적 대푯값들이 결정될 수 있다.
이러한 통계적 대표값들에 적어도 부분적으로 기초하여, 관리 시스템(1000)에서의 비정상 상황과 관련된 잠재적 이벤트가 결정될 수 있다.
도 4는 본 개시내용의 일 실시예에 따른 잠재적 이벤트를 탐지하는 예시적인 기법을 도시한다. 도 4에서 수행되는 기법은 관리 서버(100)(예컨대, 이벤트 관리 매니저(110)의 잠재적 이벤트 탐지 엔진(112))에 의해 수행될 수 있다.
도 4는 표본 평균 또는 표본 표준편차에 대한 평균 그리고 표본 평균에 대한 표준편차 또는 표본 표준편차에 대한 표준편차를 이용하여 생성된 정규 분포 데이터(예컨대, 정규 분포 그래프)를 도시한다.
도 4에서 도시되는 바와 같이, 표본 평균에 대한 평균 또는 표본 표준편차에 대한 평균은 μ로 표현될 수 있으며, 표본 평균에 대한 표준편차 또는 표본 표준편차에 대한 표준편차는 σ로 표현될 수 있다.
본 개시내용의 일 실시예에 따라, 사전결정된 이상도의 기준 범위가 3σ로 설정된 경우, 신규 윈도우에 대한 표본 평균의 값 > μ±3σ 이면 신규 측정된 데이터에 대한 잠재적 이벤트를 발생시킬 것이 결정될 수 있다. 추가적으로, 사전결정된 이상도의 기준 범위가 3σ로 설정된 경우, 신규 윈도우에 대한 표본 표준편차의 값 > μ±3σ 이면 신규 측정된 데이터에 대한 잠재적 이벤트를 발생시킬 것이 결정될 수 있다. 즉, 신규 윈도우에 대한 표본 평균의 값 및/또는 표본 표준편차의 값과 정규 분포 데이터 상에서 나타난 값들을 통하여, 신규 윈도우를 통해 측정된 신규 데이터에 대한 잠재적 이벤트 발생 여부가 결정될 수 있다.
또한, 사전결정된 이상도의 기준 범위가 2.5σ로 설정된 경우, 신규 윈도우에 대한 표본 평균의 값 > μ±2.5σ 이면 신규 측정된 데이터에 대한 잠재적 이벤트를 발생시킬 것이 결정될 수 있다. 추가적으로, 사전결정된 이상도의 기준 범위가 2.5σ로 설정된 경우, 신규 윈도우에 대한 표본 표준편차의 값 > μ±2.5σ 이면 신규 측정된 데이터에 대한 잠재적 이벤트를 발생시킬 것이 결정될 수 있다. 즉, 신규 윈도우에 대한 표본 평균의 값 및/또는 표본 표준편차의 값과 정규 분포 데이터 상에서 나타난 값들을 통하여, 신규 윈도우를 통해 측정된 신규 데이터에 대한 잠재적 이벤트 발생 여부가 결정될 수 있다.
도 5는 본 개시내용의 일 실시예라 따른 잠재적 이벤트를 탐지하는 관리 서버(100)의 예시적인 블록도이다. 도 5에서 도시되는 컴포넌트들은 잠재적 이벤트를 탐지하기 위한 기능 단위로 분리되어 예시적으로 표현된다. 따라서, 도 5에서의 컴포넌트들의 명칭은 도 2에서 도시되는 컴포넌트들의 명칭과 상이할 수 있지만, 도 2 및 도 5에서의 관리 서버(100)가 수행하는 전체적인 기능들은 동일하다. 예를 들어, 도 5에서 도시되는 컴포넌트들은 잠재적 이벤트 탐지 엔진(112)에 포함될 수도 있다.
도 5에서 도시되는 바와 같이, 관리 서버(100)는 성능 데이터 수집 모듈(510), 윈도우 생성 모듈(520), 통계적 대푯값 결정 모듈(530), 잠재적 이벤트 결정 모듈(540), 저장 모듈(550) 및 송수신 모듈(560)을 포함할 수 있다. 도 5에서 도시되는 컴포넌트들은 예시적인 것이며, 추가적인 컴포넌트들이 존재하거나 또는 상기 컴포넌트들 중 일부는 생략될 수도 있다.
성능 데이터 수집 모듈(510)은 모니터링 대상이 되는 호스트(310, 320, 330)의 성능 지표의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 DB 서버(200)로부터 수집하도록 구성될 수 있다.
윈도우 생성 모듈(520)은 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우를 생성하고, 그리고 성능 정보 데이터에 적용하기 위한 제 2 윈도우를 생성하도록 구성될 수 있다. 여기서, 제 2 윈도우는 상기 제 1 윈도우와 동일한 크기를 가지며 그리고 제 1 윈도우로부터 사전결정된 간격만큼 이격될 수 있다. 윈도우 생성 모듈(520)은 사용자로부터 사전입력된 설정 정보에 기초하여 윈도우 슬라이싱을 수행할 수 있다.
통계적 대푯값 결정 모듈(530)은 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값을 결정하고 그리고 상기 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값을 결정하도록 구성될 수 있다.
잠재적 이벤트 결정 모듈(540)은 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값에 적어도 부분적으로 기초하여, 상기 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 결정하도록 구성될 수 있다. 도 5에서 도시되지는 않았지만, 잠재적 이벤트 결정 모듈(540)은: 제 1 통계적 대푯값 및 제 2 통계적 대푯값에 대한 평균 정보 및 표준편차 정보를 결정함으로써 정규 분포 데이터를 생성하고, 그리고 상기 정규 분포 데이터를 기초로 하여 신규 데이터 군의 통계적 대푯값에 대한 제 1 이상도를 결정하는 제 1 잠재적 이벤트 결정 서브 모듈; k-nearest neighbor(kNN) 알고리즘을 사용하여, 신규 데이터 군의 통계적 대푯값과 제 1 통계적 대푯값 및 제 2 통계적 대푯값 각각의 거리 데이터를 판단함으로써, 상기 신규 데이터 군의 통계적 대푯값에 대한 제 2 이상도를 결정하는 제 2 잠재적 이벤트 결정 서브 모듈; 및 재귀 신경망(Recurrent neural network, RNN) 또는 나선형 신경망(CNN:Convolutional neural network)을 사용하여 제 1 통계적 대푯값 및 제 2 통계적 대푯값으로부터의 예상가능 미래값을 도출하고 그리고 신규 데이터 군의 통계적 대푯값을 예상가능 미래값과 비교함으로써 상기 신규 데이터 군에 대한 제 3 이상도를 결정하는 제 3 잠재적 이벤트 결정 서브 모듈;을 포함할 수 있다.
저장 모듈(550)은 결정된 잠재적 이벤트를 DB 서버(200)에 저장하도록 구성될 수 있다. 저장 모듈(550)은 잠재적 이벤트를 탐지하는데 필요한 데이터를 영구저장 매체 또는 메모리에 영구적으로 또는 임시적으로 저장할 수 있다. 저장 모듈(550)은 저장될 데이터에 대하여 데이터 테이블 상에서의 저장 위치를 결정할 수 있다. 다른 예시로, 저장 모듈(550)은 데이터에 대하여 영구 저장 매체 상의 저장 위치를 결정할 수도 있다. 저장 모듈(550)은 관리 서버(100)에서 처리되어 저장되는 임의의 데이터를 일시적 또는 영구적으로 저장하거나 또는 저장할 것을 결정할 수 있다.
송수신 모듈(560)은, DB 서버(200), 관리대상 군(300), 관리 모니터링 군(400) 및/또는 다른 서버(들)와의 통신 기능을 제공할 수 있다. 예를 들어, 송수신 모듈(560)은 임의의 네트워크를 통하여, 잠재적 이벤트 발생 여부에 대한 결과를 통합 모니터(410, 420, 430)로 전송할 수 있다. 예를 들어, 송수신 모듈(560)은 성능 정보 데이터를 DB 서버(200) 또는 관리대상 군(300)으로부터 수신할 수 있다. 또한, 송수신 모듈(560)은 사용자(예컨대, 관리 모니터링 군(400))로부터 잠재적 이벤트를 결정하는데 필요한 설정 정보를 수신하도록 구성될 수 있다. 여기서의 설정 정보는: 윈도우의 크기 정보, 상기 사전결정된 간격 정보, 상기 정규분포 데이터와 신규 데이터를 비교하기 위한 제 1 이상도 기준치 정보, 상기 거리 데이터의 임계값을 나타내는 제 2 이상도 기준치 정보, 및 상기 예상가능 미래값과 상기 신규 데이터 군의 통계적 대푯값의 차이의 임계값을 나타내는 제 3 이상도 기준치 정보를 포함할 수 있다.
도 5에서는 도시되지 않았지만, 도 7에서 후술될 바와 같이, 관리 서버(100)는 CMDB(240) 내에 저장된 CI 정보 및 CI 관계 정보에 적어도 부분적으로 기초하여 이벤트들 간의 상관관계 분석을 수행하고 그리고 상관관계 분석의 결과에 기초하여 관리 시스템(1000)에서의 비정상 상황에 대한 인과관계 분석을 수행함으로써, 상기 비정상 상황에 대한 근본 원인 정보를 결정하는 근본 원인 분석 모듈을 더 포함할 수 있다.
도 6는 본 개시내용의 일 실시예에 따라 잠재적 이벤트를 탐지하는 예시적인 기법을 도시하는 순서도이다. 도 6에서 도시되는 단계들은 예시적인 것이며, 단계들 중 일부가 생략되거나 추가적인 단계 또한 포함될 수 있다. 도 6에서 수행되는 단계들은 관리서버(100) 또는 이벤트 관리 매니저(110) 또는 잠재적 이벤트 탐지 엔진(112)에 의해 수행될 수 있다.
도 6에서 도시되는 바와 같이, 수집된 성능 정보 데이터에 대한 윈도우 슬라이싱이 적용될 수 있다(601). 각각의 윈도우에 대한 통계적 대푯값이 산출될 수 있다(602). 예를 들어, 관리 시스템(1000)에서의 모니터링 대상이 되는 호스트(310, 320, 330)의 성능 지표의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터가 수집될 수 있다. 그리고나서, 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우가 생성되고, 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 2 윈도우가 생성될 수 있다. 추가적으로, 제 3 윈도우, 제 4 윈도우 ... 제 n 윈도우가 생성될 수도 있다. 여기서, 각 윈도우들은 서로 동일한 크기(size)를 가지며 그리고 인접한 윈도우로부터 사전결정된 간격만큼 이격되는 방식으로 슬라이딩될 수 있다. 사용자로부터 사전 수신된 입력값에 기초하여 윈도우의 크기 및 사전설정된 간격이 결정될 수 있다.
그리고나서, 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값이 결정되고, 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값이 결정될 수 있다. 제 1 통계적 대푯값은 상기 제 1 윈도우의 평균값 및 표준 편차값 중 적어도 하나를 포함하며, 그리고 상기 제 2 통계적 대푯값은 상기 제 2 윈도우의 평균값 및 표준 편차값 중 적어도 하나를 포함할 수 있다.
단계 603으로 진행되는 경우, 각각의 통계적 대푯값들에 대한 평균 및 표준편차를 계산함으로써 정규 분포 데이터가 생성될 수 있다. 그리고나서, 신규 데이터 군에 대한 윈도우의 평균 및 표준 편차를 계산함으로써 신규 데이터 군에 대한 이상도가 판단되고, 이를 통해 잠재적 이벤트의 발생 여부가 결정될 수 있다(604).신규 데이터 군에 대한 신규 윈도우를 적용하여 상기 신규 데이터 군에 대한 표본 평균값 및 상기 신규 데이터 군에 대한 표본 표준편차값 중 적어도 하나를 결정함으로써 상기 신규 데이터 군의 통계적 대푯값이 결정될 수 있다. 여기에서의 신규 윈도우는 상기 제 1 윈도우 및 상기 제 2 윈도우와 동일한 크기를 가지고, 상기 제 2 윈도우로부터 상기 사전결정된 간격만큼 이격될 수 있다. 신규 데이터 군의 통계적 대푯값이 사용자로부터 수신된 상기 사전결정된 이상도 범위 기준을 상기 정규분포 데이터에서 벗어나는 경우, 상기 신규 데이터 군이 상기 잠재적 이벤트에 해당한다고 결정될 수 있다. 과거 데이터 군의 통계적 대푯값에 대한 정규 분포 데이터 내에서 신규 데이터 군의 통계적 대푯값의 위치를 비교함으로써, 신규 데이터 군에 대한 잠재적 이벤트 발생 여부가 결정될 수 있다.
잠재적 이벤트를 발생시킨다고 결정되는 경우, 상기 잠재적 이벤트는 통합 관리 모니터(410, 420, 430)로 전달되어, 사용자가 잠재적 이벤트의 발생 여부를 인지할 수 있다.
잠재적 이벤트가 발생되는 경우, 정규 분포 데이터가 업데이트될 수 있다(605). 신규 데이터 군의 통계적 대푯값을 상기 정규분포 데이터에 추가함으로써, 상기 정규분포 데이터가 업데이트될 수 있다.
단계 606으로 진행하는 경우, kNN 알고리즘을 사용하여 신규 윈도우의 통계적 대푯값을 기준으로 과거 윈도우 각각의 통계적 대표값들과의 거리가 계산될 수 있다. 또는, kNN 알고리즘을 사용하여 신규 윈도우의 통계적 대푯값을 기준으로 과거 윈도우들의 통계적 대표값들과의 거리가 계산될 수 있다. 그리고나서, 계산된 거리가 이상 군집 판별 거리 범위(사용자로부터 사전입력됨)를 초과하는 경우, 잠재적 이벤트를 발생시키는 것으로 결정될 수 있다(607). 즉, k-nearest neighbor(kNN) 알고리즘을 사용하여, 신규 데이터 군의 통계적 대푯값을 상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값 각각과 비교함으로써, 거리 데이터가 획득될 수 있으며, 그리고나서 거리 데이터가 기준 거리(사용자로부터 사전입력됨)를 초과하는 경우, 신규 데이터 군이 상기 잠재적 이벤트에 해당함이 결정될 수 있다.
본 개시내용에서의 추가적인 양상에서, 관리 서버(100)는, k-nearest neighbor(kNN) 알고리즘을 사용하여, 신규 데이터 군의 통계적 대푯값을 대푯값들의 평균값 및 대푯값들의 표준 편차값 중 적어도 하나와 비교함으로써, 거리 데이터를 획득하는 동작; 및 거리 데이터가 기준 거리를 초과하는 경우, 상기 신규 데이터 군이 상기 잠재적 이벤트에 해당함을 결정하는 동작;을 수행할 수 있다.
단계 608로 진행하는 경우, 관리 서버(100)는 재귀 신경망 또는 나선형 신경망에 대한 입력들로서 통계적 대푯값들을 사용함으로써 재귀 신경망 또는 나선형 신경망을 학습시킬 수 있다. 이러한 경우, 관리 서버(100)는 인공 지능 기술을 구현하기 위해 신경망(neural network)을 활용할 수 있다. 신경망은 적어도 둘 이상의 노드들과 이러한 노드들을 연결하는 링크로 구성된다. 각각의 링크들에는 가중치가 설정될 수 있으며, 링크에 부여된 가중치는 가변적일 수 있다. 링크에 부여된 가중치는 신경망이 의도하는 학습을 수행하기에 적합하도록 수정될 수 있다.
이러한 경우, 관리 서버(100)는 프로세서, GPU, 메모리를 포함할 수 있다. 프로세서는 하나 이상으로 구성될 수 있으며, 중앙 처리 장치(CPU)를 포함할 수 있다. 프로세서는 메모리에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 인공 신경망(artificial neural network: ANN) 또는 재귀 신경망의 훈련 방법 및 훈련된 신경망을 이용한 데이터 분류 방법을 수행할 수 있다. 본 개시의 일 실시예에 따라 프로세서 또는 GPU는 신경망의 훈련을 위한 계산을 수행할 수 있다. 본 개시의 일 실시예에서 프로세서는 CPU 및 GPU 모두를 포함할 수도 있으며, 신경망의 처리를 위한 임의의 처리 장치들을 추가로 포함할 수 있다. 본 개시의 일 실시예에 따른 신경망 학습 방법은 프로세서에 의해 수행될 수 있다. GPU(graphics processing unit)는 딥러닝(deep learning: DN)에서 학습을 위한 입력 데이터의 처리, 입력 데이터에서의 피쳐(feature) 추출, 오차 계산, 역전파(backpropagation)를 이용한 신경망의 가중치 업데이트 등의 신경망의 학습을 위한 계산을 수행할 수 있다. 또한 본 개시의 일 실시예에 따른 관리 서버(100)에서 수행되는 컴퓨터 프로그램은 GPU 실행가능 프로그램(gpu-executable program)일 수 있다. 또한, 본 개시의 일 실시예에 따라 관리 서버(100)는 TPU(tensor processing unit)를 포함할 수도 있다. 메모리는 본 개시의 일 실시예에 따른 인공 신경망의 훈련 방법 및 데이터 분류 방법을 수행하기 위한 컴퓨터 프로그램을 저장할 수 있으며, 저장된 컴퓨터 프로그램은 프로세서, 및 GPU 등에 의하여 판독되어 구동될 수 있다.
본 명세서에 걸쳐, 재귀 신경망, 신경망 네트워크, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. 신경망 네트워크는 일반적으로 "노드"라 지칭될 수 있는 상호연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 "노드"들은 "뉴런(neuron)"들로 지칭될 수도 있다. 신경망 네트워크는 적어도 둘 이상의 노드들을 포함하여 구성된다. 신경망 네트워크들을 구성하는 노드(또는 뉴런)들은 하나 이상의 "링크"에 의해 상호 연결될 수 있다.
신경망 네트워크 내에서, 링크를 통해 연결된 둘 이상의 노드들은 상대적으로 입력 노드 및 출력 노드의 관계를 형성할 수 있다. 입력 노드 및 출력 노드의 개념은 상대적인 것으로서, 하나의 노드에 대하여 출력 노드 관계에 있는 임의의 노드는 다른 노드와의 관계에서 입력 노드 관계에 있을 수 있으며, 그 역도 성립할 수 있다. 전술한 바와 같이, 입력 노드 대 출력 노드 관계는 링크를 중심으로 생성될 수 있다. 하나의 입력 노드에 하나 이상의 출력 노드가 링크를 통해 연결될 수 있으며, 그 역도 성립할 수 있다.
하나의 링크를 통해 연결된 입력 노드 및 출력 노드 관계에서, 출력 노드는 입력 노드에 입력된 데이터에 기초하여 그 값이 결정될 수 있다. 여기서 입력 노드와 출력 노드를 상호연결하는 노드는 가중치를 가질 수 있다. 가중치는 가변적일 수 있으며, 신경망 네트워크가 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드 값을 결정할 수 있다.
전술한 바와 같이, 신경망 네트워크는 둘 이상의 노드들이 하나 이상의 링크를 통해 상호연결 되어 신경망 네트워크 내에서 입력 노드 및 출력 노드 관계를 형성한다. 신경망 네트워크 내에서 노드들과 링크들의 개수 및 노드들과 링크들 사이의 연관관계, 링크들 각각에 부여된 가중치의 값에 따라, 신경망 네트워크의 특성이 결정될 수 있다. 예를 들어, 동일한 개수의 노드 및 링크들이 존재하고, 링크들 사이의 가중치 값이 상이한 두 신경망 네트워크가 존재하는 경우, 두 개의 신경망 네트워크들은 서로 상이한 것으로 인식될 수 있다.
단계 609로 돌아가면, 관리 서버(100)는 학습된 신경망에 대한 출력값을 다음 윈도우에 대한 통계적 대푯값으로서 예측할 수 있다. 그리고나서, 관리 서버(100)는 예측된 값과 실제 신규 데이터 값을 비교함으로써 차이값을 계산하고(610) 그리고 차이값이 사용자로부터 설정된 기준값을 초과하거나 그 이상인 경우 잠재적 이벤트를 발생시킬 것을 결정할 수 있다(611).
관리 서버(100)는 신규 데이터 군에 대한 신규 윈도우를 적용하여 상기 신규 데이터 군에 대한 표본 평균값 및 상기 신규 데이터 군에 대한 표본 표준편차값 중 적어도 하나를 결정함으로써 상기 신규 데이터 군의 통계적 대푯값을 결정하고, 재귀 신경망(recurrent neural network, RNN)을 사용하여, 상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값으로부터의 예상가능 미래값을 도출하고, 그리고 신규 데이터 군의 통계적 대푯값을 예상가능 미래값과 비교함으로써 상기 신규 데이터 군이 상기 잠재적 이벤트에 해당하는지 여부를 결정할 수 있다.
추가적인 실시예에서, 관리 서버(100)는 재귀 신경망(recurrent neural network, RNN)을 사용하여, 대푯값들의 평균값 및 대푯값들의 표준 편차값 중 적어도 하나로부터 예상가능 미래값을 도출하고, 그리고 신규 데이터 군의 통계적 대푯값을 상기 예상가능 미래값과 비교함으로써 신규 데이터 군이 상기 잠재적 이벤트에 해당하는지 여부를 결정할 수 있다.
도 6에서 도시되는 방법들을 구현하는데 있어서, 관리 서버(100)는 사전결정된 값 또는 사용자 설정 값으로서, 윈도우 크기, 슬라이딩 시간, 정규 분포 데이터와의 비교에서의 이상도 기준값, 군집화 알고리즘을 사용하는 경우에서의 이상 군집 판별 거리값, 그리고 신경망 학습 알고리즘을 사용하는 경우에서의 이상도 판별 거리값을 저장할 수 있다.
도 7은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 관리 서버(100)의 예시적인 블록도이다. 도 7에서 도시되는 바와 같이, 관리 서버(100)는 인시던트 이벤트 발생 검출 모듈(710), 이벤트 상관관계 분석 모듈(720), 인과관계 결정 모듈(730), 연결 강도 결정 모듈(740), 근본 원인 분석 모듈(750), 저장 모듈(760) 및/또는 송수신 모듈(770)을 포함할 수 있다. 도 7에서 도시되는 모듈들은 예시적인 것이며, 상기 모듈들 중 일부가 생략될 수 있거나 또는 추가적인 모듈이 상기 관리 서버(100)에 포함될 수도 있다.
도 7에서 도시되는 컴포넌트들은 근본 원인을 분석하기 위한 기능 단위로 분리되어 예시적으로 표현된다. 따라서, 도 7에서의 컴포넌트들의 명칭은 도 2에서 도시되는 컴포넌트들의 명칭과 상이할 수 있지만, 도 2 및 도 7에서의 관리 서버(100)가 수행하는 전체적인 기능들은 동일하다. 예를 들어, 도 7에서 도시되는 컴포넌트들은 인시던트 관리 매니저(120)에 포함될 수도 있다.
인시던트 이벤트 발생 검출 모듈(710)은 관리 시스템(1000)에서의 모니터링 대상이 되는 호스트들(즉, 노드(node))(310, 320, 330) 들 중 적어도 하나에 대한 인시던트 CI 이벤트가 발생하였는지 여부를 검출하도록 구성될 수 있다. 여기서, 상기 호스트들 각각은 구성정보 관리 데이터베이스(CMDB:Configuration Management DataBase)(240)에서의 CI들 각각과 매칭되며, 상기 CMDB(240)는 CI들 및 CI 관계 정보를 포함할 수 있다. 인시던트 정보 DB(250)는 인시던트 진단 엔진(121)에 의해 규정된 인시던트 정보를 저장할 수 있다. 인시던트 이벤트 발생 검출 모듈(710)은 인디던트 정보 DB(250)로부터 특정 이벤트가 인시던트 CI 이벤트인지 여부를 판단한 정보를 수신할 수 있다. 인시던트 이벤트 발생 검출 모듈(710)은 이벤트 DB(230)로부터 수신된 이벤트를 기초로 하여 직접적으로 해당 이벤트가 인시던트 CI 이벤트인지 여부를 결정할 수도 있다. 여기에서의 "인시던트 CI 이벤트"는 해당 CI에 대한 장애가 발생했을 때 나타난 이벤트를 의미할 수 있다.
이벤트 상관관계 분석 모듈(720)은 CMDB(240)에서의 CI 관계 정보에 기초하여 인시던트 CI 이벤트와 관련된 인시던트 CI를 식별하고 그리고 식별된 인시던트 CI와 사전결정된 계층 깊이를 갖는 후보 CI들을 결정할 수 있다. 이벤트 상관관계 분석 모듈(720)은 후보 CI들에서 발생된 후보 이벤트들을 식별하고, 그리고 후보 이벤트들 각각의 발생 시점을 결정할 수 있다. 이벤트 상관관계 분석 모듈(720)은 후보 이벤트들 각각의 발생 시점과 상기 인시던트 CI 이벤트의 발생 시점을 비교함으로써 비교 결과가 사전결정된 차이값(예컨대, 사용자로부터 지정된 상관관계 시간 값) 이내인 후보 이벤트들을 분석 대상 이벤트들로서 결정할 수 있다. 전술한 분석 깊이 및 상관관계 시간값은 사전결정되어 관리 서버(100) 또는 DB 서버(200)에 저장될 수 있다. 이벤트 상관관계 분석 모듈(720)은 분석 대상 이벤트들을 서로 연결하는 이벤트 상관관계 정보를 생성할 수 있다. CMDB(240)가 관리하는 CI 관계 정보는 CI들에 대한 계층적 관계를 나타내는 반면에, 이벤트 상관관계 분석 모듈(720)에 의해 생성된 이벤트 상관관계 정보는 인시던트 CI 및 인시던트 CI와 상관관계가 있는 CI들 간의 연결 관계를 나타낼 수 있다. 즉, 이벤트 상관관계 정보는 인시던트 CI와 상호 관련성이 존재하는 CI 또는 CI 이벤트들을 나타낼 수 있다.
인과관계 결정 모듈(730)은 CMDB(240)에서의 CI 관계 정보 및 이벤트 상관관계 정보 중 적어도 하나에 기초하여, 분석 대상 이벤트들 상호간의(mutual) 연결(connection)에 대한 방향성(directional property)을 나타내는 인과관계(causality)를 결정할 수 있다. 인과관계는 이벤트 상관관계 정보 내에서의 각 연결에 대한 원인 이벤트 및 결과 이벤트를 식별할 수 있다. 즉, 이벤트 상관관계 정보 내에서의 상관관계는 이벤트들 간의 상관관계가 존재한다는 것을 나타내고, 인과관계가 반영된 이벤트 상관관계 정보는 상관관계에 대한 원인 및 결과를 나타낼 수 있다.
인과관계 결정 모듈(730)은 CMDB(240)에서의 CI 관계 정보를 분석함으로써, 상기 분석 대상 이벤트들과 관련된 CI들 상호 간의 관계 자체에 내재적으로 존재하는 내재적(immanent) 인과관계를 도출할 수 있다. 예를 들어, 클라우드 인프라 상의 물리적 호스트(physical host) CI와 해당 물리적 호스트 상에서 생성된 가상 호스트(virtual host) CI는 상관관계를 가질 수 있다. 이러한 상관관계 내에서, 양 CI들 간의 계층성이 존재하는데, 물리적 호스트는 가상 호스트에 영향을 미칠 수 있으나 그 역은 성립되지 않는다. 이러한 관계는 CI 관계에서의 내재된 인과관계를 의미할 수 있다. 이러한 내재적 인과관계는 사용자가 CMDB(240)에 CI 관계를 설정할 때 사전결정될 수도 있거나 또는 관리 서버(100)에서 default로 설정되어 있을 수도 있다.
인과관계 결정 모듈(730)은 분석 대상 이벤트들에 대한 발생 시점을 결정함으로써 분석 대상 이벤트들 간의 발생에 대한 시간적 선후 관계를 결정할 수 있다. 예를 들어, 제 1 CI 이벤트가 제 2 CI 이벤트보다 시간적으로 먼저 발생한 경우, 제 1 CI 이벤트는 제 2 CI 이벤트의 원인 이벤트가 되는 것으로 결정될 수 있다. 즉, 시간적으로 먼저 발생한 분석 대상 이벤트는 원인 이벤트가 될 가능성이 높으며, 시간적으로 나중에 발생한 분석 대상 이벤트는 결과 이벤트가 될 가능성이 높다.
인과관계 결정 모듈(730)은 내재적 인과관계 및 시간적 선후관계에 기초하여, 이벤트 상관관계 정보 내에서의 분석 대상 이벤트들 간의 인과관계를 결정할 수 있다. 일 실시예에서, 인과관계 결정 모듈(730)은 시간적 선후관계에 비하여 내재적 인과관계에 더 높은 가중치를 부여하는 방식으로 인과관계를 결정할 수 있다. 이러한 실시예에서, 내재적 인과관계는 시간적 선후관계 보다 명확한 인과성을 갖는 것으로 해석될 수 있다.
연결 강도 결정 모듈(740)은 인과 관계를 갖는 상기 분석 대상 이벤트들 중 원인 이벤트가 결과 이벤트에게 미치는 영향력(strength of influence)을 나타내는 연결 강도(connection strength)를 결정할 수 있다. 예를 들어, 연결 강도는 수치적으로 표현될 수 있다. 이러한 예시에서, 연결 강도의 수치가 클 수록 원인 이벤트가 결과 이벤트에 미치는 영향력이 크다는 것을 의미할 수 있다.
연결 강도 결정 모듈(740)은, 분석 대상 이벤트들과 관련된 CI들에 대한 상태 변경(status change)이 존재하는지 여부를 판단하고 그리고 상기 상태 변경이 존재하는 경우 상기 변경이 발생한 시점을 나타내는 변경 시점을 포함하는 변경 이력 정보(change history information)를 획득할 수 있다. 연결 강도 결정 모듈(740)은 변경 이력 정보와 상기 인시던트 CI 이벤트의 발생 시점을 비교함으로써 변경 강도(change strength)를 결정할 수 있다. 인시던트 CI 이벤트의 발생 시점과 근접한 시점에 CMDB(240) 상에서의 CI의 상태 변경(예컨대, CI 업데이트 등)이 존재하는 경우, 상태 변경이 이루어진 CI가 문제의 원인이 될 가능성이 높게 될 수 있다. 예를 들어, 인시던트 CI 이벤트 발생 시각을 기준으로 사전결정된 시간 이전에 제 1 CI에 대한 업데이트 이력이 발견되었다고 가정한다. 이러한 예시에서, 제 1 CI의 업데이트가 인시던트 CI 이벤트에 대한 원인이 될 가능성이 높다고 판단될 수 있다. 이러한 가능성을 수치적으로 표현한 것이 변경 강도로 정의될 수 있다. 따라서, 연결 강도 결정 모듈(740)은 변경 강도에 기초하여, 연결 강도를 결정할 수 있다. 변경 강도가 클 수록 연결 강도 또한 커질 수 있다.
연결 강도 결정 모듈(740)은 명시성, 이벤트 심각도, 시간 근접성, 깊이 근겁성 및 원인 이력 횟수 중 적어도 하나에 기초하여 연결 강도를 결정할 수 있다. 본 개시내용의 일 실시예에 따르면, 인과성에 영향을 줄 수 있는 기준으로서 5가지의 인자들이 제시될 수 있다. "명시성"은 명시적 이벤트가 잠재적 이벤트보다 인과성이 높다는 기준이다. "이벤트 심각도"는 이벤트의 심각성이 높을 수록 인과성이 높다는 기준이다. "시간 근접성"은 이벤트들 간의 발생 시간의 차이가 적은 경우 인과성이 높다는 기준이다. "깊이 근접성" CMDB(240)의 CI 관계 정보 상에서의 깊이가 근접할 수록 인과성이 높다는 기준이다. "원인 이력 횟수"는 기존에 사고의 원인으로 확정되었던 이력의 횟수가 많을 수록 인과성이 높다는 기준이다.
연결 강도 결정 모듈(740)은 변경 강도 및 전술한 인자들 중 적어도 하나에 기초하여, 이벤트 상관관계 정보 상에서의 연결들에 대한 연결 강도를 결정할 수 있다. 결정된 연결 강도는 이벤트 상관관계 정보에 반영되어, 이벤트 상관관계 정보의 각 연결들은 수치값을 가질 수 있게 된다.
근본 원인 분석 모듈(750)은 인과관계 및 연결강도가 반영된 이벤트 상관관계 정보를 기초로하여 인시던트 CI 이벤트에 대한 근본원인을 탐색할 수 있다. 근본 원인 분석 모듈(750)은 연결강도가 큰 경로를 선택하여 단계적으로 근본 원인을 탐색할 수 있다. 근본 원인 탐색 및 분석의 구체적인 기법들은 도 13과 관련하여 후술하기로 한다.
저장 모듈(760)은 인시던트 CI 이벤트, 이벤트 상관관계 정보, 인과관계, 연결강도, 사용자 설정값들 및/또는 근본원인을 관리 서버(100) 및/또는 DB 서버(200)에 저장하도록 구성될 수 있다. 저장 모듈(760)은 근본 원인을 탐지 및 분석하는데 필요한 데이터를 영구저장 매체 또는 메모리에 영구적으로 또는 임시적으로 저장할 수 있다. 저장 모듈(760)은 저장될 데이터에 대하여 데이터 테이블 상에서의 저장 위치를 결정할 수 있다. 다른 예시로, 저장 모듈(760)은 데이터에 대하여 영구 저장 매체 상의 저장 위치를 결정할 수도 있다. 저장 모듈(760)은 관리 서버(100)에서 처리되어 저장되는 임의의 데이터를 일시적 또는 영구적으로 저장하거나 또는 저장할 것을 결정할 수 있다.
송수신 모듈(770)은, DB 서버(200), 관리대상 군(300), 관리 모니터링 군(400) 및/또는 다른 서버(들)와의 통신 기능을 제공할 수 있다. 예를 들어, 송수신 모듈(770)은 임의의 네트워크를 통하여, 근본 원인 탐색 및 분석에 대한 결과를 통합 모니터(410, 420, 430)로 전송할 수 있다. 예를 들어, 송수신 모듈(770)은 성능 정보 데이터를 DB 서버(200) 또는 관리대상 군(300)으로부터 수신할 수 있다. 또한, 송수신 모듈(770)은 사용자(예컨대, 관리 모니터링 군(400))로부터 근본 원인을 분석 및 탐지하는데 필요한 설정 정보를 수신하도록 구성될 수 있다.
도 8은 본 개시내용의 일 실시예에 따라 근본 원인 분석을 수행하는 예시적인 방법의 순서도를 도시한다. 도 8에서 도시되는 단계들은 예시적인 것이며, 추가적인 단계들이 포함될 수 있거나 또는 상기 단계들 중 일부가 생략될 수도 있다.
도 8에서 도시되는 단계들은 예를 들어, 관리 서버(100), 인시던트 관리 매니저(120), 인시던트 진단 엔진(121) 및/또는 근본 원인 분석 엔진(122)에서 수행될 수 있다.
단계 801에서, 관리 서버(100)는 이벤트 상관관계 정보를 생성할 수 있다. 본 단계는 CI 관계 정보 상에서, 인시던트 CI 이벤트와 상관관계가 있는 CI 이벤트(즉, 분석 대상 이벤트)들을 식별할 수 있다. 이벤트 상관관계 정보는 사용자로부터 수신된 2개의 설정 정보(계층 깊이 및 상관관계 시간)에 기초하여 결정될 수 있다. 계층 깊이는 CMDB(240) 상에서의 CI 관계 정보 상에서 인시던트 CI를 기준으로 사전설정된 계층 깊이 이내에 있는 모든 CI들이 가지는 이벤트들을 식별하기 위하여 사용될 수 있다. 상관관계 시간은 사용자가 설정한 분석의 시간 한계값을 의미할 수 있다. 즉, 상관관계 시간은 인시던트 CI 이벤트가 발생한 시점을 기준으로 특정 시간 이전 또는 이내에 발생한 근접 CI의 이벤트들을 상관관계가 있는 이벤트로 간주하는데 사용될 수 있다.
단계 802에서, 인과관계 및 연결강도 결정에 따른 근본 원인 분석이 수행될 수 있다. 근본 원인 분석은 이벤트 상관관계 정보 내에 인관관계 및 연결강도를 반영시킴으로써 수행될 수 있다. 관리 서버(100)는 인과관계 및 연결강도가 반영된 이벤트 상관관계 정보를 기초로하여 인시던트 CI 이벤트에 대한 근본원인을 탐색할 수 있다. 관리 서버(100)는 연결강도가 큰 경로를 선택하여 단계적으로 근본 원인을 탐색할 수 있다. 근본 원인 탐색 결과는 사용자에게 전달될 수 있다. 사용자에게 전달되는 근본 원인 탐색 결과는 CI 이벤트 또는 CI 경로에 대한 정보 및 각 경로에 대한 근본 원인 가능성에 대한 정보를 포함할 수 있다. 사용자는 근본 원인 탐색 결과를 보고, 우선 순위가 높은 경로 순으로 근본 원인에 대한 가능성이 높을 것이라고 예상할 수 있다.
단계 803에서는 근본 원인 분석 이후의 심화 분석에 대한 수행 여부가 결정될 수 있다. 심화 분석은 근본 원인의 분석 결과를 수신한 관리 모니터링군(400)으로부터의 선택 입력에 따라 추가적으로 수행되는 분석을 의미할 수 있다.
심화 분석이 수행되는 경우 단계 804로 진행되며, 본 개시내용의 실시예들에 따라, 심화 분석은 (1) 계층 깊이를 재조정하여 근본 원인 분석 프로세스를 재수행하는 기법 및 (2) 분석 대상 이벤트들 또는 후보 이벤트들 또는 후보 CI들 중 선택된 것들을 중심으로 하여 근본 원인 분석 프로세스를 재수행하는 기법을 포함할 수 있다.
심화 분석이 수행될 필요가 없다는 입력이 수신되는 경우, 근본 원인 분석 절차는 종료될 수 있다(805).
도 9는 본 개시내용의 일 실시예에 따라 생성된 예시적인 CI 관계 정보를 도시한다.
도 9에서 도시되는 바와 같은 CI 관계 정보는 CMDB(240)에 저장될 수 있다. CI 관계 정보는 CMDB(240)에 저장된 테이블의 값들을 관리 서버(100)가 도 9에서 도시되는 바와 같이 도식화시켜 표현할 수도 있다.
도 9에서의 CI(1)은 인시던트 CI를 의미할 수 있다. CI(2), CI(3), CI(4), CI(5) 및 CI(6)은 인시던트 CI인 CI(1)과의 계층 깊이가 1인 CI들을 의미할 수 있다. CI(7) 및 CI(8)은 인시던트 CI인 CI(1)과의 계층 깊이가 2인 CI들을 의미할 수 있다. CI(9) 및 CI(10)은 인시던트 CI인 CI(1)과의 계층 깊이가 3인 CI들을 의미할 수 있다.
도 9에서 도시되는 예시에서, 사용자로부터 수신된 계층 깊이에 대한 값은 2라고 가정한다. 이러한 경우, 도 9에서 도시되는 바와 같이, 계층 깊이 1 및 2인 CI들(즉, CI(2), CI(3), CI(4), CI(5), CI(6), CI(7) 및 CI(8))은 이벤트 상관관계 정보의 생성시 포함될 수 있으며, 그리고 계층 깊이 3인 CI들(즉, CI(9) 및 (CI(10))은 이벤트 상관관계 정보의 생성시 제외될 수 있다.
즉, 사용자로부터 수신된 계층 깊이 2는 인시던트 CI를 기준으로 2단계 아래의 계층 이내에서 연결되어 있는 CI들과 관련된 이벤트들을 이벤트 상관관계 분석에 사용할 이벤트로서 식별하겠다는 의미이다. 따라서, 계층 깊이를 이용하여 CI들을 필터링함으로써 인시던트 CI와 인접한(즉, 가까운 거리에 있는) CI들이 후보 CI들로 결정될 수 있다.
도 10은 본 개시내용의 일 실시예에 따라 이벤트 상관관계를 식별하는 예시적인 기법을 도시한다.
도 10의 예시에서는 사용자로부터 수신된 상관관계 시간이 10분인 것으로 가정한다. 따라서, 인시던트 CI 이벤트의 발생 시점인 2017년 7월 17일 13시 10분 20초로부터 10분 이내에 있는 CI 이벤트들 또는 CI들(예컨대, CI(2), CI(8), CI(7), CI(4) 및 CI(6))은 상관관계가 있는 CI들 또는 CI 이벤트들로 간주될 수 있다. 인시던트 CI 이벤트의 발생 시점으로부터 10분을 초과하는 CI 이벤트들 또는 CI들(예컨대, CI(3) 및 CI(5))은 상관관계가 없는 CI들 또는 CI 이벤트들로 간주될 수 있다.
즉, 상관관계 시간값은 사용자가 설정하는 분석에 대한 시간 한계값을 의미할 수 있다. 따라서, 상관관계 시간 설정에 따라 CI들 또는 CI 이벤트들을 필터링함으로써 인시던트 CI 이벤트가 발생한 시점을 기준으로 인접한 시점에 발생된 CI의 이벤트들이 분석 대상 이벤트들로서 결정될 수 있다.
도 11은 본 개시내용의 일 실시예에 따라 생성된 이벤트 상관관계 정보 및 인과관계 정보를 예시적으로 도시한다.
도 11은 도 9 및 도 10에서의 상관관계 분석 프로세스가 종료된 이후에 생성된 이벤트 상관관계 정보를 도시한다. 도 9 및 도 10에서 계층 깊이 및 상관관계 시간을 기초로 하여 CI들 및 CI 이벤트들이 필터링될 수 있으며, 상관관계 분석이 종료되는 경우 이벤트 상관관계 정보는 분석 대상 이벤트들을 포함할 수 있다.
도 11에서 도시되는 바와 같이, CI(3) 및 CI(5)는 후보 CI 또는 후보 이벤트들이지만, 상관관계 시간을 통해 필터링됨으로써, 분석 대상 이벤트들에 포함되지는 않는다. 즉, CI(3) 및 CI(5)는 인시던트 CI 이벤트인 CI(1)과는 상관관계가 없는 CI 이벤트로서 결정될 수 있다.
도 11에서의 우측 도면에서는, 인과관계가 반영된 이벤트 상관관계 정보를 도시한다. 분석 대상 이벤트들 간의 연결들이 화살표 형태로 도시됨으로써 인과관계가 표현될 수 있다. CI(1)은 CI(2), CI(4), CI(6), CI(7) 및 CI(8)에 대한 결과 이벤트이며, 그리고 CI(2), CI(4), CI(6), CI(7) 및 CI(8)은 CI(1)에 대한 원인 이벤트이다. 또한, CI(7)은 CI(2)에 대한 원인 이벤트이고, CI(2)는 CI(7)에 대한 결과 이벤트이다.
본 개시내용의 일 실시예에 따라, 앞서 설명된 바와 같이, 인과관계를 정의하기 위한 기준으로서 CI들 자체의 내재된 인과관계 및 시간적 선후관계가 고려될 수 있다. 예를 들어, 클라우드 인프라 상의 물리 호스트 CI와 그 위에 생성된 가상 호스트 CI는 서로 계층적인 관계를 가지고 있다. 이러한 계층적인 관계에 따라서, 물리 호스트가 가상 호스트에 영향을 미칠 수는 있으나, 그 역은 성립하지 않는다. 이러한 관계를 "CI 관계에 내재된 인과관계"라고 정의한다. 또한, "시간적 선후관계"는 발생한 CI 이벤트 간의 시간적 선후관계를 의미할 수 있다. 예를 들어, CI(2) 이벤트가 CI(1) 이벤트보다 시간적으로 먼저 발생한 이벤트이면, CI(2)는 원인 CI가 되고, CI(1)는 결과 CI가 된다. 이러한 시간적 선후관계를 또 하나의 인과관계로 정의한다.
전술한 두 가지 인과관계 적용 기준을 적용하여, 인과관계를 나타내면 도 11에서의 인과관계 정보를 도출할 수 있다. 이벤트 상관관계 정보 내에서 방향성이 없던 관계 실선은 방향성을 가진 실선(화살표)으로 표현될 수 있다. 본 개시내용에서는 화살표의 머리 쪽을 "원인 이벤트", 화살표의 꼬리 쪽을 "결과 이벤트"로 정의한다.
도 12는 본 개시내용의 일 실시예에 따라 이벤트 상관관계 정보에서 인과관계가 반영된 각 연결들에 대한 연결 강도를 예시적으로 도시한다.
도 12에서의 연결 강도를 가진 인과관계 정보에서의 각 연결들은 수치적인 표현을 포함할 수 있다. 수치의 값이 클수록, 더 높은 연결 강도를 가진다는 것으로 해석될 수 있다. 따라서, 인시던트 CI 이벤트(CI(1))로부터 1의 계층 깊이를 갖는 분석 대상 이벤트들 중에서 CI(2)(연결 강도: 70)가 다른 분석 대상 이벤트들(CI(4), CI(6), CI(7) 및 CI(8))보다 높은 연결 강도를 가지는 것으로 해석될 수 있다. 도 12에서 도시되는 바와 같이, 인과관계 및 연결 강도가 반영된 이벤트 상관관계 정보가 생성될 수 있으며, 이러한 인과관계 및 연결 강도를 활용함으로써, 근본 원인 추정 결과가 생성될 수 있다.
본 개시내용의 실시예들에 따라서, 연결 강도는 하나의 CI 또는 CI 이벤트가 다른 하나의 CI 또는 CI 이벤트에 미치는 영향력을 수치적으로 표현할 수 있다. 이러한 연결 강도를 통하여, 근본 원인에 대한 추정이 용이하게 이루어질 수 있다. 본 개시내용의 실시예들에 따라 연결 강도를 결정하는 다양한 기법들이 존재할 수 있다.
관리 서버(100)는: 분석 대상 이벤트들과 관련된 CI들에 대한 상태 변경(status change)이 존재하는지 여부를 판단하고 그리고 상기 상태 변경이 존재하는 경우 상기 변경이 발생한 시점을 나타내는 변경 시점을 포함하는 변경 이력 정보(change history information)를 획득하고, 변경 이력 정보와 상기 인시던트 CI 이벤트의 발생 시점을 비교함으로써 변경 강도(change strength)를 결정하며, 그리고 상기 변경 강도에 기초하여 연결 강도를 결정할 수 있다. 여기서, 변경 시점이 인시던트 CI 이벤트의 발생 시점 이전인지 여부가 판단되며, 이전이라고 판단되는 경우 변경 시점과 인시던트 CI 이벤트의 발생 시점 간의 차이가 결정될 수 있다. 그리고나서, 차이가 작을 수록 변경 강도는 높은 것으로 결정될 수 있다. 변경 강도가 높을 수록 연결 강도 또한 높은 것으로 결정될 수 있다.
관리 서버(100)는: 분석 대상 이벤트 각각이 사전정의된 명시적(explicit) 이벤트와 관련되는지 또는 통계적 데이터를 통해 상기 IT 시스템에 의해 감지되는 잠재적(potential) 이벤트와 관련되는지를 결정하고, 그리고 상기 분석 대상 이벤트가 상기 잠재적 이벤트인 경우보다 상기 분석 대상 이벤트가 상기 명시적 이벤트인 경우에 높은 연결 강도를 갖도록 상기 연결 강도를 결정할 수 있다.
관리 서버(100)는: (a) 상기 분석 대상 이벤트들 각각의 심각성 레벨, (b) 상기 분석 대상 이벤트들 간의 발생 시간의 차이, (c) 상기 분석 대상 이벤트들의 상기 CMDB 상에서의 계층 깊이 레벨 간의 인접도 및 (d) 기존의 인시던트의 근본 원인으로 확정된 횟수 중 적어도 하나에 기초하여 연결 강도를 결정할 수 있다. 여기에서 연결 강도는 상기 분석 대상 이벤트들 간의 발생 시간의 차이가 작을수록 높은 연결 강도로서 결정되며, 그리고 CMDB(240) 상에서의 계층 깊이 레벨 간의 인접도가 높을수록 높은 연결 강도로서 결정될 수 있다.
도 13은 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 탐색 및 분석 절차를 도시한다.
본 개시내용의 일 실시예에 따라, 인시던트 CI 이벤트에 대한 근본 원인을 분석하는 단계는: 이벤트 상관관계 정보 내에서 인시던트 CI 이벤트로부터의 각각의 연결에 대한 인과관계를 따라서 경로 탐색을 수행함으로써, 각각의 경로에 대한 연결 강도를 획득하는 단계; 및 각각의 경로에 대해 획득된 연결 강도에 기초하여, 인시던트 CI 이벤트의 근본 원인이 되는 CI 또는 CI 이벤트를 결정하는 단계를 포함할 수 있다. 여기서, 관리 서버(100)는 각각의 경로에 대해 획득된 연결 강도를 비교함으로써, 가장 큰 연결 강도 값을 갖는 경로에 포함된 CI 또는 CI 이벤트를 인시던트 CI 이벤트의 근본 원인으로 결정 또는 추정할 수 있다.
본 개시내용의 일 실시예에 따라, 인시던트 CI 이벤트에 대한 근본 원인을 분석하는 단계는: 이벤트 상관관계 정보 내에서 인시던트 CI 이벤트로부터 시작하여, 인시던트 CI 이벤트와 직접 연결된 제 1 분석 대상 이벤트들로의 제 1 경로들을 1차 탐색함으로써 상기 제 1 경로들 각각에 대한 제 1 연결 강도를 획득하는 제 1 탐색 단계; 제 1 분석 대상 이벤트들로부터 시작하여, 제 1 분석 대상 이벤트들과 직접 연결된 제 2 분석 대상 이벤트들로의 제 2 경로를 2차 탐색함으로써 제 2 경로들 각각에 대한 제 2 연결 강도를 획득하는 제 2 탐색 단계; 및 제 1 연결 강도 및 제 2 연결 강도에 대한 평균 연결 강도를 계산하는 단계; 및 평균 연결 강도에 기초하여, 인시던트 CI 이벤트의 근본 원인이 되는 CI 또는 CI 이벤트를 결정하는 단계를 포함할 수 있다.
본 개시내용의 일 실시예에 따라 인시던트 CI 이벤트에 대한 근본 원인을 분석하는 단계는: 이벤트 상관관계 정보 내에서 상기 인시던트 CI 이벤트로부터 시작하여, 인시던트 CI 이벤트와 사전결정된 계층 깊이를 갖는 제 1 분석 대상 이벤트들로의 제 1 경로들을 1차 탐색함으로써 제 1 경로들 각각에 대한 제 1 연결 강도를 획득하는 제 1 탐색 단계; 제 1 분석 대상 이벤트들로부터 시작하여, 상기 제 1 분석 대상 이벤트로부터 상기 사전결정된 계층 깊이를 갖는 제 2 분석 대상 이벤트들로의 제 2 경로를 2차 탐색함으로써 상기 제 2 경로들 각각에 대한 제 2 연결 강도를 획득하는 제 2 탐색 단계; 및 이벤트 상관관계 정보 내에 포함된 종점(terminal) 분석 대상 이벤트까지의 탐색이 완료되었는지 여부를 판단하여, 완료된 것으로 판단되는 경우 탐색을 종료하는 단계; 경로 흐름(flow) 단위로 상기 획득된 연결 강도들에 대한 평균 연결 강도를 계산하는 단계 ― 상기 경로 흐름은, 상기 이벤트 상관관계 정보 내에서 상기 인시던트 CI 이벤트로부터 상기 인과 관계에 따른 방향성에 따라 하나의 흐름으로 이어진 상기 종점 분석 대상 이벤트까지의 전체적인 연결을 포함함 ―; 및 평균 연결 강도에 기초하여, 상기 인시던트 CI 이벤트의 근본 원인이 되는 CI 또는 CI 이벤트를 결정하는 단계를 포함할 수 있다. 여기서, 평균 연결 강도를 상기 경로 흐름 단위로 오더링(ordering)하는 단계가 더 포함될 수 있으며, 인시던트 CI 이벤트의 근본 원인이 되는 CI 또는 CI 이벤트를 결정하는 단계는: 이러한 오더링 결과에 기초하여, 평균 연결 강도가 가장 큰 경로 흐름 내에서의 종점 분석 대상 이벤트를 인시던트 CI 이벤트의 근본 원인이 되는 CI 또는 CI 이벤트로서 결정하는 단계를 포함할 수 있다.
인과관계 및 연결강도가 반영된 이벤트 상관관계 정보가 완성되는 경우, 연결강도가 큰 순서를 갖는 경로를 선택하여 근본 원인을 탐색하는 프로세스가 수행될 수 있다.
인시던트 CI 이벤트인 CI(1)에서 출발하여 CI(1)과 직접적으로 연결된(즉, 바로 도달 가능한) 경로를 탐색하는 1차 탐색 프로세스가 먼저 수행될 수 있다. 예를 들어, 1차 탐색 프로세스는, CI(1) -> CI(2), CI(1) -> CI(4), CI(1) -> CI(7), CI(1) -> CI(8) 및 CI(1) -> CI(6)의 탐색을 포함할 수 있다. 탐색 수행 결과를 연결 강도를 기준으로 내림차순 정렬한 후, 상위 경로에서 하위 경로까지 순위가 부여될 수 있다.
그리고나서, 1차 탐색에서 도달된 노드를 출발하여 곧바로 도달 가능한 경로(즉, 1차 탐색의 종점 노드와 직접 연결된 노드로의 경로)를 탐색하는 "2차 탐색"을 수행하여, 1차 탐색의 경우와 동일한 방식으로 연결 강도를 기준으로 내림차순 정렬이 수행될 수 있다. 예를 들어, 2차 탐색은 CI(2) -> CI(7)의 탐색을 포함할 수 있다. 관리 서버(100)는 이벤트 상관관계 정보 내에서의 모든 노드들에 대한 탐색이 끝날 때까지 상기의 탐색들을 재차 수행할 수 있다.
탐색이 종료된 경우, 관리 서버(100)는 다중 탐색으로 이루어진 경로는 연결 강도를 평균화하고, 최종 탐색 경로를 연결 강도 내림차순으로 정렬함으로써 도 13에서 도시되는 바와 같은 근본 원인 추청 결과 테이블을 생성할 수 있다. 근본 원인 추정 결과 테이블은 상기의 탐색으로 얻어진 결과로서 사용자에게 근본 원인으로 추정되는 CI 또는 CI 이벤트를 추천하는 역할을 할 수 있다. 예컨대, 도 13에서는 CI(1)->CI(2)->CI(7)의 순서로 근본 원인의 추정 순위가 높다는 것이다. 이는 CI(7)이 CI(1)의 근본 원인 CI일 확률이 높다는 것을 의미할 수 있다.
도 14는 본 개시내용의 일 실시예에 따라 예시적인 근본 원인 심화 탐색 및 분석 절차를 도시한다.
여기서 심화분석이란 근본 원인의 추정 및 분석 결과를 수신한 사용자(예컨대, 관리 모니터링군(400))에 의한 선택에 따라 추가적으로 수행되는 분석을 의미할 수 있다.
본 개시내용의 일 실시예에 따라, 관리 서버(100)는 사용자로부터 상기 인시던트 CI 이벤트의 근본 원인 분석에 대한 피드백을 수신하고, 그리고 상기 피드백이 부정적인 경우, 사전결정된 계층 깊이를 증가시킬 것을 결정할 수 있다. 계층 깊이만을 다시 조절한 이후에, 관리 서버(100)는 앞서 설명된 근본 원인을 분석하는데 필요한 단계들을 동일하게 수행할 수 있다.
본 개시내용의 일 실시예에 따라, 관리 서버(100)는 사용자(예컨대, 관리 모니터링군(400))로부터 인시던트 CI 이벤트의 근본 원인 분석에 대한 피드백을 수신할 수 있다. 여기서 피드백은 사용자로부터 선택된 하나 이상의 사용자 후보 CI들을 포함할 수 있다. 관리 서버(100)는 CMDB(240)에서의 CI 관계 정보에 기초하여, 사용자 후보 CI들과 사전결정된 계층 깊이를 갖는 제 2 후보 CI들을 결정하라 수 있다. 관리 서버(100)는 제 2 후보 CI들에서 발생된 제 2 후보 이벤트들을 식별할 수 있다. 관리 서버(100)는 제 2 후보 이벤트들 각각의 발생 시점을 결정할 수 있다. 관리 서버(100)는 결정된 발생 시점에 기초하여 제 2 후보 이벤트들 중에서 하나 이상의 제 2 분석 대상 이벤트들을 결정하고, 그리고 제 2 분석 대상 이벤트들 상호 간을 연결하는 제 2 이벤트 상관관계 정보를 생성할 수 있다. 관리 서버(100)는 CMDB(240)에서의 상기 CI 관계 정보에 기초하여, 제 2 이벤트 상관관계 정보에 포함된 제 2 분석 대상 이벤트들 상호간의 연결에 대한 방향성을 나타내는 인과관계를 결정할 수 있다. 그리고나서, 관리 서버(100)는제 2 이벤트 상관관계 정보 내에서의 인과관계에 기초하여, 인시던트 CI 이벤트에 대한 근본 원인을 다시 분석할 수 있다.
전술한 바와 같이, 본 개시내용에서는 이하의 두 가지 종류의 신규한 심화분석을 제시할 수 있다.
제 1 심화 분석 기법(1401)은 이벤트 상관관계 분석에서 후보 CI 또는 후보 이벤트를 식별하기 위해 사용되었던 "계층 깊이"를 재조정하여 분석을 처음부터 다시 수행하는 것을 의미한다.
도 14의 1401은 계층 깊이를 2에서 4로 재조정함으로써 분석이 재수행된다는 것을 도식적으로 표현한 그림이다. 도 14의 1401에서 도시되는 바와 같이, 기존의 계층 깊이 2에 의해 필터링되었던(즉, 제거되었던) 다른 CI들이 재수행되는 분석에서는 분석 대상의 범위 내로 포함될 수 있다.
제 2 심화 분석 기법(1402)은 근본 원인 분석 절차에서 근본 원인이 될 가능성이 있는 CI 후보들 또는 CI 이벤트 후보들 중 사용자가 선택한 후보들을 기준으로 분석을 재귀적으로 수행하는 것을 의미한다. 도 14의 1402는, CI(7)과 CI(8)을 기준으로 수행되는 제 2 심화 분석을 도식적으로 표현한 그림이다. 도 14의 1402에서 도시되는 바와 같이, CI(7) 및 CI(8)을 기준으로 동일한 계층 깊이(즉, 2)를 갖는 CI들이 결정되고, 전술한 방식과 동일한 방식으로 CI(7) 및 CI(8)이 기준점이 되어 근본 원인 분석 절차들이 수행될 수 있다. 이러한 경우, 최초의 근본 원인 분석의 결과와는 상이한 CI 또는 CI 이벤트가 근본 원인 분석 결과에 포함될 수 있다.
도 15는 본 개시내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.
본 발명이 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 발명이 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 본 명세서에서의 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로시져, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 발명의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.
본 발명의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다.
컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.
컴퓨터(1102)를 포함하는 본 발명의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)―이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음―, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 예를 들어, USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘다를 포함한다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 저장 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 저장 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 발명의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)을 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 발명이 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 서버 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 서버에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a,b,g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5 GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.
본 발명의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 발명의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 저장 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 용어 "기계-판독가능 매체"는 명령(들) 및/또는 데이터를 저장, 보유, 및/또는 전달할 수 있는 무선 채널 및 다양한 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 발명의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
Claims (1)
- 인코딩된 명령들을 포함하는 컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨터 시스템의 하나 이상의 프로세서들에 의해 실행되는 경우, 상기 하나 이상의 프로세서들로 하여금 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 발생시키기 위한 동작들을 수행하도록 하며, 상기 동작들은:
상기 IT 시스템에서의 모니터링 대상이 되는 호스트의 성능 지표(performance indicator)의 값들을 사전결정된 기간 동안 측정한 성능 정보 데이터를 수집하는 동작;
상기 성능 정보 데이터에 적용하기 위한 사전결정된 크기의 제 1 윈도우를 생성하는 동작;
상기 제 1 윈도우 내에 포함된 상기 성능 정보 데이터의 제 1 통계적 대푯값을 결정하는 동작;
상기 성능 정보 데이터에 적용하기 위한 제 2 윈도우를 생성하는 동작;
상기 제 2 윈도우 내에 포함된 상기 성능 정보 데이터의 제 2 통계적 대푯값을 결정하는 동작; 및
상기 제 1 통계적 대푯값 및 상기 제 2 통계적 대푯값에 적어도 부분적으로 기초하여, 상기 IT 시스템에서의 비정상 상황과 관련된 잠재적 이벤트를 결정하는 동작;
을 포함하는,
컴퓨터-판독가능 저장 매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180123601A KR20190030193A (ko) | 2018-10-17 | 2018-10-17 | It 시스템의 장애 이벤트를 처리하기 위한 기법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180123601A KR20190030193A (ko) | 2018-10-17 | 2018-10-17 | It 시스템의 장애 이벤트를 처리하기 위한 기법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170117355A Division KR101910926B1 (ko) | 2017-09-13 | 2017-09-13 | It 시스템의 장애 이벤트를 처리하기 위한 기법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190030193A true KR20190030193A (ko) | 2019-03-21 |
Family
ID=66036835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180123601A KR20190030193A (ko) | 2018-10-17 | 2018-10-17 | It 시스템의 장애 이벤트를 처리하기 위한 기법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190030193A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021171156A1 (en) * | 2020-02-28 | 2021-09-02 | 3M Innovative Properties Company | Deep causal learning for advanced model predictive control |
US11714549B2 (en) | 2020-02-28 | 2023-08-01 | 3M Innovative Properties Company | Deep causal learning for data storage and processing power management |
-
2018
- 2018-10-17 KR KR1020180123601A patent/KR20190030193A/ko active Application Filing
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021171156A1 (en) * | 2020-02-28 | 2021-09-02 | 3M Innovative Properties Company | Deep causal learning for advanced model predictive control |
CN115066658A (zh) * | 2020-02-28 | 2022-09-16 | 3M创新有限公司 | 用于高级模型预测控制的深度因果学习 |
JP2023505617A (ja) * | 2020-02-28 | 2023-02-09 | スリーエム イノベイティブ プロパティズ カンパニー | 高度モデル予測制御のための深層因果学習 |
US11714549B2 (en) | 2020-02-28 | 2023-08-01 | 3M Innovative Properties Company | Deep causal learning for data storage and processing power management |
US11983404B2 (en) | 2020-02-28 | 2024-05-14 | 3M Innovative Properties Company | Deep causal learning for data storage and processing power management |
CN115066658B (zh) * | 2020-02-28 | 2024-05-24 | 3M创新有限公司 | 用于高级模型预测控制的深度因果学习 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101965839B1 (ko) | 구성정보 관리 데이터베이스 기반의 it 시스템 장애 분석 기법 | |
KR101910926B1 (ko) | It 시스템의 장애 이벤트를 처리하기 위한 기법 | |
US11616707B2 (en) | Anomaly detection in a network based on a key performance indicator prediction model | |
CN103513983A (zh) | 用于预测性警报阈值确定工具的方法和系统 | |
US10885020B1 (en) | Splitting incorrectly resolved entities using minimum cut | |
CN109753591B (zh) | 业务流程预测性监控方法 | |
CN110147387B (zh) | 一种根因分析方法、装置、设备及存储介质 | |
CN114978568B (zh) | 使用机器学习进行数据中心管理 | |
WO2020000404A1 (en) | Multi-factor cloud service storage device error prediction | |
CN113032238B (zh) | 基于应用知识图谱的实时根因分析方法 | |
US11892904B2 (en) | Directed incremental clustering of causally related events using multi-layered small world networks | |
US20060294220A1 (en) | Diagnostics and resolution mining architecture | |
US7716152B2 (en) | Use of sequential nearest neighbor clustering for instance selection in machine condition monitoring | |
WO2021236278A1 (en) | Automatic tuning of incident noise | |
KR20190030193A (ko) | It 시스템의 장애 이벤트를 처리하기 위한 기법 | |
US20230105304A1 (en) | Proactive avoidance of performance issues in computing environments | |
KR20190038526A (ko) | 구성정보 관리 데이터베이스 기반의 it 시스템 장애 분석 기법 | |
CN117640350A (zh) | 一种基于事件日志的自主式实时故障隔离方法 | |
CN113810235B (zh) | 基于配置智能发现的cmdb自动化运维管理方法及系统 | |
Cai et al. | Tracemodel: An automatic anomaly detection and root cause localization framework for microservice systems | |
CN117376084A (zh) | 故障检测方法、电子设备及其介质 | |
Smeriga et al. | Behavior-aware network segmentation using ip flows | |
Yan et al. | Sim-watchdog: Leveraging temporal similarity for anomaly detection in dynamic graphs | |
CN110995465B (zh) | 信通点位全景视图信息运维方法及系统 | |
LYU et al. | Alarm-Based Root Cause Analysis Based on Weighted Fault Propagation Topology for Distributed Information Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent |