KR102203322B1 - 로그 기반 모니터링 방법, 장치 및 그 시스템 - Google Patents

로그 기반 모니터링 방법, 장치 및 그 시스템 Download PDF

Info

Publication number
KR102203322B1
KR102203322B1 KR1020190025213A KR20190025213A KR102203322B1 KR 102203322 B1 KR102203322 B1 KR 102203322B1 KR 1020190025213 A KR1020190025213 A KR 1020190025213A KR 20190025213 A KR20190025213 A KR 20190025213A KR 102203322 B1 KR102203322 B1 KR 102203322B1
Authority
KR
South Korea
Prior art keywords
field
log
information
url
monitoring
Prior art date
Application number
KR1020190025213A
Other languages
English (en)
Other versions
KR20200106674A (ko
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 KR1020190025213A priority Critical patent/KR102203322B1/ko
Publication of KR20200106674A publication Critical patent/KR20200106674A/ko
Application granted granted Critical
Publication of KR102203322B1 publication Critical patent/KR102203322B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

모니터링 대상의 URL 입력을 요구하지 않고 로그 데이터를 활용하여 모니터링 대상을 정확하고 효율적으로 모니터링하는 방법, 장치 및 그 시스템이 제공된다. 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 방법은 식별자 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하고, 상기 복수의 로그 레코드로부터 상기 식별자 필드를 추출하며, 상기 추출된 식별자 필드에 기초하여 모니터링 대상을 자동으로 식별할 수 있다. 또한, 윈도우 단위로 상기 복수의 로그 레코드를 요약하여, 상기 모니터링 대상에 대한 필드별 요약 정보를 생성하고, 상기 필드별 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성함으로써 효율적으로 모니터링을 수행할 수 있다.

Description

로그 기반 모니터링 방법, 장치 및 그 시스템{METHOD FOR MONITORING SYSTEM BASED ON LOG, APPARATUS AND SYSTEM THEREOF}
본 개시는 로그 기반 모니터링 방법, 장치 및 그 시스템에 관한 것이다. 보다 자세하게는, 모니터링 대상의 URL(Uniform Resource Locator)을 직접 지정하거나 모니터링 대상 측의 코드 레벨의 수정을 요구함 없이 로그 데이터를 활용하여 모니터링 대상을 정확하고 효율적으로 모니터링하는 방법, 그 방법을 수행하는 장치 및 시스템에 관한 것이다.
최근 인터넷 기술의 발전으로 인하여 다양한 종류의 웹 서비스들이 네트워크상에서 제공되고 있다. 기존의 웹 서비스들이 단순한 텍스트 및 이미지의 전달에 그쳤다면, 최근에는 인터넷 뱅킹, 증명서 발급, 홈 트레이딩 등 제공되는 서비스의 수 뿐만 아니라 서비스 제공 범위 또한 크게 늘어났다. 이와 같이 웹 서비스들이 다양화, 복잡화되면서 웹 서비스의 원활한 제공을 위하여 웹 서비스의 올바른 동작 여부, 성능 등을 실시간으로 판단하는 모니터링 기법에 대한 중요도도 크게 증가하였다.
종래의 웹 서비스 모니터링은 코드 레벨의 수정을 통해 웹 서비스의 성능 메트릭(metric)과 연관된 데이터를 추출하고, 추출된 데이터를 분석하여 실시간으로 웹 서비스의 성능 메트릭을 산출하는 방식으로 수행되었다. 그러나, 이와 같은 방식은 정확한 모니터링이 가능한 반면, 코드 레벨에서의 수정으로 인해 시간 및 인적 비용이 크게 소모되는 문제가 있었다.
위와 같은 부담을 해소하기 위해 웹 서비스 수행 과정에서 로깅되는 데이터를 분석하여 웹 서비스를 모니터링하는 방식이 제안된 바 있다. 그러나, 지금까지 제안된 방식들은 로그 데이터를 충분히 활용하지 못해 다양한 메트릭에 대한 모니터링 기능을 제공하지 못하였다. 이를테면, 종래의 방식들은 응답 시간, 에러 정보와 같이 웹 서비스 자체를 모니터링하기 위한 메트릭 정보만 제공할 뿐, 사용자의 접속 위치, 접속 유지 시간과 같이 웹 서비스 사용자를 모니터링할 수 있는 메트릭 정보를 제공하지는 못했다.
뿐만 아니라, 종래의 방식들은 관리자가 모니터링하고자 하는 웹 서비스의 URL을 일일이 입력하도록 강제했기 때문에, 관리자 측면에서 편의성이 크게 떨어지는 문제가 있었다. 또한, 종래의 방식들은 URL이 동적으로 생성 및 할당되는 웹 서비스들에 대한 실시간 모니터링이 불가하다는 단점도 존재하였다.
따라서, 로그 데이터를 활용하여 모니터링 서비스를 제공함에 있어서, 모니터링 대상의 URL을 직접 입력하지 않고, 다양한 메트릭에 대한 모니터링 기능을 제공할 수 있는 방법이 요구된다.
한국공개특허 제10-2013-0123582호 (2013.11.13 공개)
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 로그 데이터를 활용하여 모니터링 대상을 정확하고 효율적으로 모니터링하는 방법, 그 방법을 수행하는 장치 및 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 로그 데이터로부터 모니터링 대상을 자동으로 식별하는 방법, 그 방법을 수행하는 장치 및 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, URL이 동적으로 생성 및 할당되는 웹 서비스에 대해 정확한 모니터링을 수행할 수 있는 방법, 그 방법을 수행하는 장치 및 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 또 다른 기술적 과제는, 로그 데이터로부터 분석하여 다양한 메트릭에 대한 정보를 제공할 수 있는 방법, 그 방법을 수행하는 장치 및 시스템을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 방법은, 컴퓨팅 장치에 의해서 수행되는 로그 기반의 모니터링 방법에 있어서, 식별자 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 단계, 상기 복수의 로그 레코드로부터 상기 식별자 필드를 추출하고, 상기 추출된 식별자 필드에 기초하여 모니터링 대상을 식별하는 단계, 윈도우 단위로 상기 복수의 로그 레코드를 요약하여, 상기 모니터링 대상에 대한 필드별 요약 정보를 생성하는 단계 및 상기 필드별 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 식별자 필드의 값은 URL(Uniform Resource Locator)이고, 상기 모니터링 대상을 식별하는 단계는, 상기 추출된 식별자 필드에 기록된 제1 URL이 신규 URL인지 여부를 판정하는 단계 및 신규 URL이라는 판정에 응답하여, 상기 제1 URL이 가리키는 서비스를 상기 모니터링 대상에 자동으로 추가하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 필드별 요약 정보를 생성하는 단계는, 상기 윈도우에 포함된 로그 레코드의 각 필드에 대한 데이터 타입을 식별하는 단계, 상기 식별 결과, 제1 필드의 데이터 타입이 텍스트 타입인 경우, 텍스트 카운팅을 통해 상기 제1 필드에 대한 요약 정보를 생성하는 단계 및 상기 식별 결과, 제2 필드의 데이터 타입이 숫자 타입인 경우, 통계 처리를 통해 상기 제2 필드에 대한 요약 정보를 생성하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 필드별 요약 정보를 생성하는 단계는, 상기 복수의 필드 중 관심 필드와 상기 관심 필드의 값에 대한 조건이 설정되는 단계, 상기 복수의 로그 레코드에서 상기 설정된 조건을 만족하는 상기 관심 필드의 데이터를 추출하는 단계 및 상기 추출된 데이터를 요약하여, 상기 관심 필드에 대한 요약 정보를 생성하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 식별자 필드의 값은 URL이고, 상기 모니터링 대상은 상기 URL이 가리키는 서비스이며, 상기 메트릭 정보는 상기 서비스를 이용하는 사용자를 모니터링하기 위한 사용자 관련 메트릭 정보를 포함할 수 있다.
몇몇 실시예에서, 상기 식별자 필드의 값은 URL이고, 상기 모니터링 대상은 상기 URL이 가리키는 서비스이며, 상기 메트릭 정보를 생성하는 단계는, 상기 URL에 나타난 확장자를 기초로 상기 URL을 제1 타입의 URL과 제2 타입의 URL로 구분하는 단계, 상기 제1 타입의 URL에 대한 제1 메트릭 정보를 생성하는 단계 및 상기 제2 타입의 URL에 대한 제2 메트릭 정보를 생성하는 단계를 포함할 수 있다. 이때, 상기 제1 타입의 URL은 특정 처리 로직(logic)이 수행되지 않는 서비스의 URL이고, 상기 제2 타입의 URL은 특정 처리 로직이 수행되는 서비스의 URL을 의미한다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 모니터링 시스템은, 하나 이상의 인스트럭션들(instructions)을 포함하는 메모리, 식별자 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 통신 인터페이스 및 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 복수의 로그 레코드로부터 상기 식별자 필드를 추출하고, 상기 추출된 식별자 필드에 기초하여 모니터링 대상을 식별하며, 윈도우 단위로 상기 복수의 로그 레코드를 요약하여 상기 모니터링 대상에 대한 필드별 요약 정보를 생성하고, 상기 필드별 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 프로세서를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어,식별자 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 단계, 상기 복수의 로그 레코드로부터 상기 식별자 필드를 추출하고, 상기 추출된 식별자 필드에 기초하여 모니터링 대상을 식별하는 단계, 윈도우 단위로 상기 복수의 로그 레코드를 요약하여, 상기 모니터링 대상에 대한 필드별 요약 정보를 생성하는 단계 및 상기 필드별 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
도 1은 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 시스템을 나타내는 예시적인 구성도이다.
도 2는 본 개시의 다른 몇몇 실시예에 따른 로그 기반 모니터링 시스템을 나타내는 블록도이다.
도 3은 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 방법을 나타내는 예시적인 흐름도이다.
도 4 및 도 5는 본 개시의 몇몇 실시예에서 참조될 수 있는 로그 데이터를 설명하기 위한 도면이다.
도 6은 본 개시의 몇몇 실시예에서 참조될 수 있는 로그 레코드의 필드 종류를 예시한다.
도 7은 본 개시의 몇몇 실시예에 따른 모니터링 대상 자동 식별 프로세스를 나타내는 예시적인 흐름도이다.
도 8은 본 개시의 몇몇 실시예에서 참조될 수 있는 중간 포맷의 구조를 예시한다.
도 9 및 도 10은 본 개시의 몇몇 실시예에 따른 윈도우 기반 필드 정보 요약 프로세스를 설명하기 위한 예시도이다.
도 11은 본 개시의 몇몇 실시예에 따른 필드 정보 요약 프로세스를 설명하기 위한 예시도이다.
도 12는 본 개시의 몇몇 실시예에서 참조될 수 있는 필드별 요약 정보를 예시한다.
도 13은 본 개시의 몇몇 실시예에서 참조될 수 있는 메트릭의 종류를 예시한다.
도 14는 본 개시의 몇몇 실시예에 따른 URL 타입 구분 프로세스를 설명하기 위한 예시적인 흐름도이다.
도 15 내지 도 19는 본 개시의 몇몇 실시예에 따라 시각화된 메트릭 정보를 예시한다.
도 20은 본 개시의 다른 몇몇 실시예에 따른 로그 기반 모니터링 방법을 나타내는 예시적인 흐름도이다.
도 21은 본 개시의 다양한 실시예에 따른 장치/시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 나타내는 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 필드(field)란, 데이터의 가장 작은 논리적 단위이자 의미를 갖는 최소한의 데이터 요소를 의미한다. 상기 필드는 당해 기술 분야에서 요소(element), 속성(attribute), 컬럼(column), 항목(item) 등의 용어와 혼용되어 사용될 수 있다. 로그 레코드를 구성하는 필드의 실례는 도 6을 참조하도록 한다.
본 명세서에서, 로그 레코드(log record)란, 하나 이상의 필드를 갖는 단일 구조의 로그 데이터를 의미한다. 상기 로그 레코드는 필드를 구분하기 위한 필드 구분자(separator or delimiter)를 포함할 수도 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 상기 레코드는 당해 기술 분야에서 튜플(tuple) 등의 용어와 혼용되어 사용될 수 있다. 로그 레코드의 실례는 도 5를 참조하도록 한다.
본 명세서에서, 메트릭(metric)이란, 모니터링 대상의 상태, 성능 등을 측정하기 위한 지표이자 모니터링 항목을 의미한다. 상기 메트릭은 로그 레코드의 특정 필드 값으로부터 바로 구해질 수도 있고, 하나 이상의 필드 값을 가공하여 구해질 수도 있으며, 다양한 방식으로 정의되고 측정될 수 있다. 상기 메트릭의 실례는 도 13을 참조하도록 한다.
본 명세서에서 인스트럭션(instruction)이란, 기능을 기준으로 묶인 일련의 컴퓨터 판독가능 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.
이하, 본 개시의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 시스템(10)을 나타내는 예시적인 구성도이다.
도 1에 도시된 바와 같이, 모니터링 시스템(10)은 하나 이상의 모니터링 대상(1-1 내지 1-n)에 대한 모니터링을 수행하는 시스템이다. 여기서, 모니터링 대상(1-1 내지 1-n)은 특정 서비스 또는 리소스를 지칭하는 것일 수도 있고, 상기 특정 서비스 또는 리소스를 제공하는 호스트(즉, 장치)를 지칭하는 것일 수도 있다. 이하에서는, 다른 언급이 없는 한, 모니터링 대상이 특정 호스트(e.g. 웹 서버)를 통해 제공되는 서비스(e.g. 웹 서비스)인 것을 가정하여 설명을 이어가도록 한다. 단, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
몇몇 실시예에 따른 모니터링 시스템(10)은 분석 장치(11)와 모니터링 장치(13)를 포함할 수 있다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 1에 도시된 모니터링 시스템(10)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 가령, 분석 장치(11)와 모니터링 장치(13)는 동일한 물리적 컴퓨팅 장치 내에서 서로 다른 로직(logic)의 형태로 구현될 수도 있다.
또한, 실제 물리적 환경에서 상기 각각의 구성 요소들은 복수의 세부 기능 요소로 분리되는 형태로 구현될 수도 있다. 예컨대, 분석 장치(11)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 분석 장치(11)의 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 이하, 상기 각각의 구성 요소에 대하여 설명한다.
분석 장치(11)는 복수의 로그 레코드를 포함하는 로그 데이터를 수집하고, 상기 로그 데이터를 분석하여 모니터링 대상에 대한 메트릭 정보를 생성하는 컴퓨팅 장치이다. 여기서, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop), 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능 및 통신 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 상기 컴퓨팅 장치의 일 예시는 도 21을 참조하도록 한다.
몇몇 실시예에서, 분석 장치(11)는 네트워크를 통해 모니터링 대상에 대한 로그 데이터를 수집할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
몇몇 실시예에서, 모니터링 대상이 특정 호스트를 통해 제공되는 서비스이고, 분석 장치(11)는 특정 호스트에 설치된 에이전트(agent)로부터 상기 서비스 관한 로그 데이터를 수집할 수 있다. 이때, 상기 에이전트는 상기 서비스 제공 과정에서 로깅되는 데이터를 분석 장치(11)로 전달하는 동작만을 수행하는 소프트웨어 모듈로 이해될 수 있다. 본 실시예에 따르면, 코드 레벨의 수정이 필요치 않고 에이전트를 설치하는 것만으로 모니터링 서비스가 제공될 수 있기 때문에, 관리자의 편의성이 향상될 수 있다.
몇몇 실시예에서, 분석 장치(11)는 로그 데이터로부터 식별자 정보를 추출하고, 추출된 식별자 정보에 기초하여 모니터링 대상을 자동으로 식별할 수 있다. 예컨대, 로그 데이터에 포함된 URL에 기반하여 특정 호스트에서 제공되는 다양한 서비스들을 모니터링 대상으로 식별할 수 있다. 본 실시예에 따르면, 모니터링 대상을 지정하기 위해 URL 등의 정보를 입력할 필요가 없고, URL을 동적으로 생성 및 할당하는 서비스들에 대해서도 정확한 모니터링 서비스가 제공될 수 있다. 이에 따라, 관리자의 편의성은 더욱 향상될 수 있다.
중복된 설명을 배제하기 위해, 분석 장치(11)의 기능 및 동작에 대한 보다 자세한 설명은 도 2 이하의 도면을 참조하여 후술하도록 한다.
다음으로, 모니터링 장치(13)는 분석 장치(11)로부터 수신한 모니터링 대상(1-1 내지 1-n)에 대한 메트릭 정보를 관리자에게 제공하는 컴퓨팅 장치이다. 즉, 모니터링 장치(13)는 관리자에게 모니터링 서비스를 제공하는 장치이다. 예컨대, 모니터링 장치(13)는 웹 기반의 사용자 인터페이스(e.g. 대시 보드 형태)를 통해 상기 메트릭 정보를 시각화하여 제공할 수 있을 것이나, 상기 메트릭 정보를 제공하는 방식은 어떠한 방식이 되더라도 무방하다. 시각화된 메트릭 정보의 실례는 도 15 내지 도 19를 참조하도록 한다.
몇몇 실시예에서, 모니터링 장치(13)는 모니터링 외에 관제 기능을 더 수행할 수 있다. 가령, 모니터링 장치(13)는 메트릭 정보에 기초하여 모니터링 대상을 제어할 수 있다. 상기 제어는 모니터링 장치(13)에 의해 자동으로 수행(e.g. 설정된 조건이 만족될 때 자동으로 수행)될 수도 있고, 관리자의 입력에 기초하여 수행될 수도 있다. 본 실시예에 대한 보다 자세한 설명은 도 20을 참조하여 후술하도록 한다.
지금까지 도 1을 참조하여 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 시스템(10)에 대하여 설명하였다. 이하에서는, 본 개시의 다른 몇몇 실시예에 따른 모니터링 시스템(20)의 구성 및 동작에 대하여 설명하도록 한다.
도 2는 본 개시의 다른 몇몇 실시예에 따른 모니터링 시스템(20)을 나타내는 예시적인 블록도이다.
도 2에 도시된 바와 같이, 모니터링 시스템(20)은 수집부(21), 분석부(23) 및 제공부(25)를 포함할 수 있다. 다만, 도 2에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 2에 도시된 시스템(20)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 각 구성 요소에 대하여 설명한다.
수집부(21)는 특정 호스트로부터 복수의 로그 레코드를 포함하는 로그 데이터를 수집한다. 수집부(21)가 로그 데이터를 수집하는 구체적인 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예에서, 수집부(21)는 모니터링 대상 서비스를 제공하는 장치(e.g. 웹 서버)로부터 로그 데이터를 수집할 수 있다. 예를 들어, 수집부(21)는 상기 장치에 설치된 에이전트로부터 로그 데이터를 수집할 수 있다. 이때, 상기 에이전트는 상기 장치가 서비스를 제공하는 과정에서 로깅한 데이터(e.g. 로그 파일, 내부 DB의 데이터)를 수집부(21)로 전송하는 모듈을 의미할 수 있다. 다른 예를 들어, 수집부(21)는 코드 삽입 기법을 통해 얻어진 로그 데이터를 실시간으로 수집할 수도 있다. 이때, 상기 코드 삽입 기법을 통해 삽입되는 코드는, 직접 로깅을 수행하는 코드, 메모리(또는 파일, DB) 상에 로깅된 데이터를 수집부(21)로 전송하는 코드 등이 될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 다른 예를 들어, 수집부(21)는 코드 삽입 기법을 통해 얻어진 로그 데이터를 에이전트를 통해 수집할 수도 있다.
다른 몇몇 실시예에서, 수집부(21)는 모니터링 대상 서비스를 이용하는 사용자 단말로부터 로그 데이터를 수집할 수 있다. 가령, 수집부(21)는 사용자 단말의 웹 브라우저로부터 로그 데이터를 수집할 수 있다. 로그 데이터를 수집하는 방식은 전술한 실시예를 참조하도록 한다.
다음으로, 분석부(23)는 로그 데이터를 분석하여 모니터링 대상에 대한 메트릭 정보를 생성한다. 분석부(23)는 추출부(23-1), 식별부(23-3), 요약부(23-5) 및 메트릭 연산부(23-7)를 포함할 수 있다. 이하, 분석부(23)의 세부 구성요소에 대하여 설명한다.
추출부(23-1)는 로그 데이터에 포함된 각 로그 레코드를 파싱(parsing)하여 각종 필드 값을 추출한다. 보다 구체적으로, 추출부(23-1)는 각각의 로그 레코드를 파싱하여 식별자(e.g. URL)와 그 외의 각종 필드 값을 추출할 수 있다.
다음으로, 식별부(23-3)는 추출부(23-1)에 의해 제공된 식별자에 기초하여 모니터링 대상을 식별한다. 가령, 식별부(23-3)는 신규 URL이 추출될 때마다, 상기 신규 URL이 가리키는 서비스를 모니터링 대상에 추가할 수 있다.
다음으로, 요약부(23-5)는 로그 데이터에 포함된 복수의 로그 레코드를 필드별로 요약하여 필드별 요약 정보를 생성한다. 가령, 요약부(23-5)는 추출부(23-1)에 의해 추출된 제1 필드의 값을 제1 리스트에 순서대로 저장한 다음, 상기 제1 리스트를 요약하여 상기 제1 필드에 대한 요약 정보를 생성할 수 있다. 또한, 요약부(23-5)는 추출부(23-1)에 의해 추출된 제2 필드의 값을 제2 리스트에 순서대로 저장한 다음, 상기 제2 리스트를 요약하여 상기 제2 필드에 대한 요약 정보를 생성할 수 있다.
몇몇 실시예에서, 요약부(23-5)는 윈도우 단위로 필드별 요약 정보를 생성할 수 있다. 즉, 요약부(23-5)는 제1 윈도우에 속한 필드 값들을 필드별로 요약하여 제1 필드별 요약 정보를 생성하고, 제2 윈도우에 속한 필드 값들을 필드별로 요약하여 제2 필드별 요약 정보를 생성할 수 있다. 이때, 윈도우에 설정된 스트라이드(stride) 값에 따라 상기 제1 윈도우와 상기 제2 윈도우는 적어도 일부가 중첩될 수 있고, 중첩되지 않을 수도 있다. 본 실시예에 대한 보다 자세한 설명은 도 9 및 도 10을 참조하여 후술하도록 한다.
참고로, 메트릭 정보 생성 전에 필드별로 데이터 요약을 수행하는 이유는, 원시 로그 데이터(raw log data)를 그대로 저장함으로써 발생되는 스토리지 비용을 최소화하고, 프로세싱 비용을 분산시키기 위한 것으로 이해될 수 있다. 따라서, 몇몇 실시예에서는, 분석에 소요되는 프로세싱 비용을 분산시키기 위해, 요약부(23-5)와 메트릭 연산부(23-7)는 서로 독립된 프로세서 또는 컴퓨팅 장치를 통해 구현될 수도 있다.
다음으로, 메트릭 연산부(23-7)는 요약부(23-5)에 의해 제공된 필드별 요약 정보를 기초로 메트릭 정보를 생성한다. 물론, 필드별 요약 정보가 그대로 메트릭 정보로 이어지는 경우라면, 별도의 메트릭 연산이 수행될 필요는 없을 것이다.
몇몇 실시예에서, 메트릭 연산부(23-7)는 필드별 요약 정보를 기초로 사용자 관련 메트릭에 대한 연산을 수행할 수 있다. 이때, 상기 사용자는 모니터링 대상 서비스를 이용하는 사용자들로, 이를테면, 웹 서비스를 이용하는 사용자를 의미하는 것일 수 있다. 또한, 상기 사용자 관련 메트릭은 예를 들어 상기 웹 서비스에 접속한 사용자의 수, 접속 위치, 접속 횟수, 접속 유지 시간, 사용자 단말의 사양 등을 포함할 수 있다. 본 실시예에 따르면, 상기 사용자 관련 메트릭을 통해 서비스를 이용하는 사용자의 특성, 접속 환경 등이 모니터링될 수 있으며, 상기 사용자 관련 메트릭 정보는 마케팅, 서비스 관리 등을 위한 인사이트(insight) 정보로 활용될 수 있다. 본 실시예에 대한 자세한 설명은 도 13 등의 도면을 더 참조하도록 한다.
마지막으로, 제공부(25)는 모니터링 대상에 대한 메트릭 정보를 제공한다. 가령, 제공부(25)는 웹 기반의 사용자 인터페이스를 통해 시각화하여 상기 메트릭 정보를 제공할 수 있다. 그러나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 상기 메트릭 정보를 시각화하여 제공하는 실례는 도 15 내지 도 19를 참조하도록 한다.
참고로, 도 2에 도시되어 있지 않으나, 모니터링 시스템(20)은 제어부(미도시)를 더 포함할 수 있다. 상기 제어부(미도시)는 메트릭 정보를 토대로 모니터링 대상을 제어할 수 있는데, 이에 대한 자세한 설명은 도 20을 참조하도록 한다.
전술한 모니터링 시스템(20)의 구성 요소에 대한 추가적인 설명은 도 3 이하의 설명 내용을 참조하도록 한다.
도 2에 도시된 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
또한, 도 2에 도시된 구성 요소들은 컴퓨팅 장치의 프로세서를 통해 구현될 수도 있다. 예컨대, 수집부(21) 및 분석부(23)는 도 1에 도시된 분석 장치(11)를 통해 구현될 수 있고, 제공부(25) 및 제어부(미도시)는 모니터링 장치(13)를 통해 구현될 수 있다.
지금까지 도 2를 참조하여 본 개시의 다른 몇몇 실시예에 따른 모니터링 시스템(20)의 구성 및 동작에 대하여 설명하였다. 이하에서는, 본 개시의 다양한 실시예들에 따른 방법들에 대하여 설명하도록 한다.
이하에서 후술될 방법들의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 상기 방법들의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 상기 방법들에 포함되는 모든 단계는 하나의 물리적인 컴퓨팅 장치에 의하여 실행될 수도 있을 것이나, 상기 방법의 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 상기 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다. 이하에서는, 다른 언급이 없는 한, 상기 방법들의 각 단계가 모니터링 시스템(e.g. 도 1의 10 또는 도 2의 20)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 이하, 본 실시예에 관한 설명에서 각 동작의 주어가 생략된 경우, 상기 예시된 장치/시스템에 의하여 수행 될 수 있는 것으로 이해될 수 있을 것이다. 또한, 본 실시예에 따른 방법은 필요에 따라 논리적으로 수행 순서가 바뀔 수 있는 범위 안에서 각 동작의 수행 순서가 바뀔 수 있음은 물론이다.
도 3은 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 3에 도시된 바와 같이, 상기 모니터링 방법은 로그 데이터를 수집하는 단계 S100에서 시작된다. 상기 로그 데이터를 수집하는 구체적인 방식은 전술한 바와 같으므로, 더 이상의 설명은 생략하도록 한다.
도 4에 도시된 바와 같이, 상기 로그 데이터는 복수의 로그 레코드로 구성될 수 있고, 각각의 로그 레코드는 식별자 필드(31)와 하나 이상의 데이터 필드(33)를 포함할 수 있다. 여기서, 식별자 필드(31)는 각 로그 레코드를 식별하기 위한 필드가 아니고, 모니터링 대상을 식별하기 위한 필드를 의미한다. 가령, 모니터링 대상이 웹 서비스인 경우, 식별자 필드(31)는 웹 서비스의 URL이 될 수 있을 것이다. 단, 이에 국한되는 것은 아니다.
웹 서비스로부터 얻어진 원시 로그 레코드의 실례와 상기 원시 로그 레코드를 구성하는 몇몇 필드의 예는 도 5 및 도 6에 도시되어 있다. 도 5에 예시된 원시 로그 레코드(40)는 아파치(Apache)를 통해 로깅된 액세스 로그이고, 로그 레코드(40)에는 IP, URL, 리퍼러(referrer) URL, 사용자 단말의 브라우저 정보(도 6의 표 50 참조)가 포함된 것을 확인할 수 있다.
다시 도 3을 참조하여 설명한다.
단계 S120에서, 로그 데이터의 식별자 필드에 기초하여 모니터링 대상이 식별된다. 보다 자세하게는, 각 로그 레코드를 파싱(parsing)하여 필드 값이 추출되고, 식별자 필드 값에 기초하여 모니터링 대상이 식별될 수 있다.
몇몇 실시예에서는, URL에 기초하여 모니터링 대상 서비스가 식별될 수 있다. 이에 대한 구체적인 프로세스는 도 7에 도시되어 있다. 도 7에 도시된 바와 같이, 로그 레코드에서 URL이 추출되면(S122), 추출된 URL이 신규 URL에 해당하는지 판정된다(S124). 상기 판정은 예를 들어 상기 추출된 URL이 기존 URL 리스트(즉, 기존 모니터링 대상 리스트)에 포함되어 있는지 여부에 기초하여 판정될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 신규 URL이라는 판정에 응답하여, 추출된 URL이 가리키는 서비스가 모니터링 대상에 자동으로 추가될 수 있다(S126). 본 실시예에 따르면, 관리자가 모니터링 대상의 URL을 직접 입력할 필요가 없는 바, 관리자의 편의성이 향상될 수 있다. 뿐만 아니라, URL이 동적으로 생성되는 서비스들에 대해서도 정확한 모니터링이 수행될 수 있다.
한편, 몇몇 실시예서는, 로그 레코드의 포맷(format)이 서로 상이한 경우, 상이한 포맷의 로그 레코드를 통일된 중간 포맷으로 변환하는 과정이 더 수행될 수 있다. 또한, 상기 중간 포맷의 데이터로부터 각 필드 값이 추출될 수 있다. 상기 변환 과정은 서로 다른 포맷의 로그 레코드를 필드 단위로 파싱하고, 상기 중간 포맷에 맞게 파싱된 필드 값을 세팅함으로써 수행될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 상기 중간 포맷의 실례는 도 8을 참조하도록 한다. 도 8은 중간 포맷이 JSON(JavaScript Object Notation) 형식으로 정의되고, 중간 포맷으로 변환된 로그 레코드의 샘플(60)을 예시하고 있다.
다시 도 3을 참조하여 설명한다.
단계 S140에서, 로그 데이터를 필드별로 요약하여 필드별 요약 정보가 생성된다. 보다 자세하게는, 파싱을 통해 추출된 필드 값이 순차적으로 수집되고, 수집된 필드 값을 요약하여 필드별 요약 정보가 생성될 수 있다.
몇몇 실시예서는, 관심 필드와 상기 관심 필드의 값에 대한 조건이 설정될 수 있다. 이와 같은 경우, 로그 데이터에서 상기 설정된 조건을 만족하는 관심 필드의 데이터를 추출하고, 추출된 데이터를 요약하여 상기 관심 필드에 대한 요약 정보가 생성될 수 있다. 상기 관심 필드와 상기 조건은 복수개일 수도 있다.
또한, 몇몇 실시예에서는, 가상 필드가 설정될 수도 있다. 여기서, 상기 가상 필드는 로그 레코드에 정의되지 않은 필드이나, 상기 로그 레코드의 특정 필드 값을 변환하거나 가공함으로써 얻을 수 있는 필드를 의미한다. 이와 같은 경우, 상기 가상 필드와 연관된 필드의 데이터를 추출하고, 상기 추출된 데이터를 상기 가상 필드의 데이터로 변환하며, 상기 변환된 데이터를 요약하여 상기 가상 필드에 대한 요약 정보가 생성될 수 있다.
몇몇 실시예에서는, 윈도우 단위로 필드별 요약 정보가 생성될 수 있다. 이해의 편의를 제공하기 위해, 본 실시예에 대해 도 9 및 도 10을 참조하여 상세하게 설명하도록 한다.
도 9는 본 개시의 몇몇 실시예에 따라 윈도우 기반으로 로그 데이터를 요약하는 프로세스를 예시하고 있다.
도 9를 참조하면, 제1 로그 데이터(73)는 URL(A)에 관한 로그 데이터이고, 제2 로그 데이터(77)는 URL(B)에 관한 로그 데이터이며, 점선의 도형(71)이 윈도우(즉, 사이즈가 3인 윈도우)를 가리킨다. 도 9에 도시된 바와 같이, 윈도우(71) 내의 로그 레코드를 필드별로 요약하여 필드별 요약 정보(75-1 내지 75-n)가 생성될 수 있다. 보다 자세하게는, 윈도우(71) 내의 제1 필드 값들을 요약하여 제1 필드에 대한 요약 정보(75-1)가 생성되고, 윈도우(71) 내의 제2 필드 값들을 요약하여 제2 필드에 대한 요약 정보(75-2)가 생성될 수 있다. 여기서, 윈도우(71)의 사이즈는 시간 간격 및/또는 데이터 개수를 기준으로 설정될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 이하에서는, 이해의 편의상, 윈도우 사이즈가 데이터 개수를 기준으로 설정되는 것을 가정하여 설명을 이어가도록 한다.
위와 유사하게, 제2 로그 데이터(77)도 윈도우(79)를 이용하여 요약될 수 있다.
한편, 도 9는 URL 별로(즉, 서비스 별로) 윈도우(71, 79)의 사이즈가 동일한 것을 예로써 도시하고 있으나, 본 개시의 다른 실시예에 따르면, 윈도우의 사이즈와 스트라이드는 서비스 및/또는 필드 별로 다르게 설정될 수도 있다.
예를 들어, 제1 서비스보다 정밀한 모니터링이 필요하거나 중요도가 높은 제2 서비스의 윈도우 사이즈(또는 스트라이드)는 상기 제1 서비스의 윈도우보다 작게 설정될 수 있다. 몇몇 실시예에서는, 서비스의 중요도는 이상 탐지 결과에 기초하여 동적으로 조정될 수 있다. 즉, 모니터링 결과, 제1 서비스에서 이상이 탐지되면, 상기 제1 서비스의 중요도가 증가되고, 상기 제1 서비스에 대한 윈도우의 사이즈(또는 스트라이드) 자동으로 더 작은 값으로 조정될 수 있다.
다른 예를 들어, 제1 필드보다 정밀한 모니터링이 필요하거나 중요도가 높은 제2 필드의 윈도우 사이즈(또는 스트라이드)는 상기 제1 필드의 윈도우보다 작게 설정될 수 있다. 몇몇 실시예에서, 필드의 중요도는 메트릭의 중요도에 기초하여 결정될 수 있다. 즉, 중요 메트릭과 연관된 필드가 중요 필드로 간주될 수 있다. 몇몇 실시예에서, 필드의 중요도는 이상 탐지 결과(e.g. 이상치 발견)에 따라 조정될 수 있다. 즉, 제1 필드에서 이상이 탐지되면, 상기 제1 필드의 중요도가 증가되고, 상기 제1 필드의 윈도우의 사이즈(또는 스트라이드)가 자동으로 더 작은 값으로 조정될 수 있다. 몇몇 실시예에서, 상기 메트릭의 중요도도 이상 탐지 결과에 따라 조정될 수 있다. 즉, 제1 메트릭에서 이상이 탐지되면, 상기 제1 메트릭의 중요도가 증가되고, 상기 제1 메트릭과 연관된 필드들의 윈도우의 사이즈(또는 스트라이드)가 자동으로 더 작은 값으로 조정될 수 있다.
몇몇 실시예에서는, 윈도우의 사이즈(또는 스트라이드)는 모니터링 시스템의 프로세싱 부하(e.g. CPU 점유율)에 기초하여 동적으로 변경될 수도 있다. 가령, 프로세싱 부하가 임계치 이상이 되면, 상기 윈도우의 사이즈(또는 스트라이드)가 더 큰 값으로 조정될 수 있다. 더 많은 데이터를 일괄 요약하거나, 중복되는 데이터를 줄임으로써, 요약 프로세싱에 소요되는 부하가 감소될 수 있기 때문이다.
도 10은 본 개시의 다른 몇몇 실시예에 따라 윈도우 기반으로 로그 데이터를 요약하는 프로세스를 예시하고 있다.
본 실시예에서는, 기존 윈도우(이하, 사용자 정의 윈도우로 칭함)와 별개로 디폴트 사이즈(default size)를 갖는 기본 윈도우가 별도로 존재할 수 있다. 물론, 윈도우의 실제 사이즈와 별개로 디폴트 사이즈가 존재하는 것으로 이해하더라도 무방하다. 또한, 상기 기본 윈도우 단위로 1차 요약을 수행하여 1차 필드별 요약 정보가 생성되고, 상기 사용자 정의 윈도우 단위로 2차 요약을 수행하여 2차 필드별 요약 정보가 생성될 수 있다.
도 10을 참조하여 부연 설명한다. 도 10은 기본 윈도우(미도시)의 디폴트 사이즈가 1이고, 사용자 정의 윈도우(81)의 사이즈는 3인 경우를 예시하고 있다. 도 10에 도시된 바와 같이, 사용자 정의 윈도우(81)의 사이즈가 3으로 설정된 경우, 먼저 기본 윈도우(미도시)에 기반하여 로그 데이터(82)를 1차 요약하여 1차 필드별 요약 정보(83 내지 85)가 생성될 수 있다. 또한, 사용자 정의 윈도우(81)에 포함된 1차 필드별 요약 정보(83 내지 85)를 2차 요약하여 2차 필드별 요약 정보(86)가 생성될 수 있다.
참고로, 전술한 기술적 사상은 사용자 정의 윈도우의 사이즈가 변경되는 경우에도 적용될 수 있다. 가령, 사용자 정의 윈도우의 사이즈가 3에서 6으로 변경된 경우, 기존 사이즈를 기준으로 1차 요약을 수행하고, 변경된 사이즈를 기준으로 1차 요약된 정보에 대해 2차 요약이 수행될 수도 있다.
지금까지 도 9 및 도 10을 참조하여 윈도우 기반 요약 처리와 관련된 다양한 실시예들에 대하여 설명하였다. 다시 도 3을 참조하여 요약 정보 생성 단계 S140에 대한 설명을 이어가도록 한다.
몇몇 실시예에 따르면, 필드별 요약 정보를 생성하기 위해 필드의 데이터 타입에 따라 서로 다른 요약 기법이 적용될 수 있다. 본 실시예에 대하여 도 11을 참조하여 부연 설명한다. 도 11에 도시된 바와 같이, 요약을 수행하기에 앞서 각 필드의 데이터 타입이 식별된다(S141). 이때, 데이터 타입의 식별은 어떠한 방식으로 수행되더라도 무방하다. 식별된 데이터 타입이 텍스트 타입인 경우, 텍스트 카운트 방식으로 요약이 수행된다(S142, S143). 식별된 데이터 타입이 숫자 타입인 경우, 통계 처리를 통해 요약이 수행된다(S144, S145). 이때, 상기 통계 처리는 전체 개수, 평균, 총합, 표준 편차, 최댓값, 최솟값, 중간값 등을 산출하는 것을 포함할 수 있으나, 이에 한정되는 것은 아니다. 기타 타입의 경우, 요약 대상에서 제외될 수 있다(S144, S146). 물론, 다른 몇몇 실시예에 따르면, 요약 대상에서 제외하지 않고, 다른 요약 기법을 통해 기타 타입에 대한 요약 정보가 생성될 수도 있다.
도 11에 도시된 요약 방법을 통해 생성된 필드별 요약 정보의 실례는 도 12에 예시되어 있다. 도 12는 필드별 요약 정보(90)를 JSON 형식으로 표시하고 있는데, "method"는 HTTP 메소드 필드의 명칭을 의미하고, 이에 대응되는 배열(중괄호 {}로 표시됨)의 속성 값들은 텍스트 카운팅 기법을 통해 생성된 HTTP 메소드 필드의 요약 정보를 나타낸다. 또한, "responseSize"는 응답 데이터 사이즈 필드의 명칭을 의미하고, 이에 대응되는 배열의 속성 값들은 통계 처리를 통해 생성된 응답 데이터 사이즈 필드의 요약 정보를 나타낸다.
몇몇 실시예에서, 원시 로그 데이터는 스토리지에 저장되지 않고, 도 12에 예시된 바와 같은 필드별 요약 정보(e.g. 90)만이 스토리지에 저장되며, 조회될 수 있다. 본 실시예에 따르면, 원시 로그 데이터의 요약 정보만이 스토리지에 저장되므로, 스토리지의 효율성이 크게 증대될 수 있다. 뿐만 아니라, 모니터링의 효율성도 크게 향상될 수 있다. 왜냐하면, 요약 정보가 곧바로 조회되므로 메트릭 연산을 위해 스토리지로부터 대량의 로그 데이터를 조회할 필요가 없고, 원시 로그 데이터의 반복적 요약에 따른 리소스 낭비가 최소화될 수 있기 때문이다.
다시 도 3을 참조하여 설명한다.
단계 S160에서, 필드별 요약 정보를 기초로 메트릭 정보가 생성된다. 가령, 특정 필드별 요약 정보가 그대로 메트릭 정보로 이용될 수도 있고, 하나 이상의 필드별 요약 정보를 토대로 추가로 가공하여 메트릭 정보가 생성될 수도 있다. 즉, 메트릭을 어떻게 정의하는지에 따라 메트릭 정보를 생성하는 방식을 달라질 수 있다.
몇몇 실시예에서, 상기 메트릭은 서비스를 모니터링하기 위한 서비스 관련 메트릭과 사용자를 모니터링하기 위한 사용자 관련 메트릭을 포함할 수 있다. 상기 서비스 관련 메트릭과 상기 사용자 관련 메트릭의 실례는 도 13에 도시되어 있다. 도 13에 도시된 표(100)를 참조하면, 상기 서비스 관련 메트릭은 서비스의 성능, 상태 등을 모니터링하기 위한 것으로, URL의 개수(e.g. 일정 시간 동안 수집된 로그 레코드에서 나타난 URL의 개수), 딜레이 카운트(e.g. 서비스 요청에 대한 응답 시간이 임계치 이상 지연된 요청의 개수), 응답 데이터의 크기 등을 포함할 수 있다. 이때, 상기 URL 개수는 특정 호스트에서 URL이 동적으로 생성되는 상황을 모니터링하기 위해 이용될 수 있다. 상기 사용자 관련 메트릭은 모니터링 대상 서비스를 이용하는 사용자의 특성, 행동 등을 모니터링하기 위한 것으로, 사용자의 수, 접속 위치, 접속 유지 시간, 접속 횟수 등을 포함할 수 있다. 각 메트릭을 산출하는 방법은 도 13에 도시된 표(100)를 참조하도록 한다.
또한, 상기 메트릭은 둘 이상의 메트릭의 조합에 기초하여 정의되는 복합 메트릭을 포함할 수 있다. 이를테면, 상기 메트릭은 접속 위치에 따른 접속 유지 시간, 접속 위치에 따른 접속 횟수, 사용자 단말의 사양에 따른 접속 유지 시간, 사용자 단말의 사양에 따른 접속 횟수, 사용자 단말의 디바이스 타입에 따른 에러 정보, 상기 사용자 단말의 운영체제 종류에 따른 에러 정보 등과 같이 복합적인 형태로 다양하게 정의될 수 있다. 이외에도, 도 13에 도시된 메트릭의 다양한 조합에 의해 새로운 메트릭이 정의될 수 있다. 상기 복합 메트릭을 통해 도출된 정보들은 유용한 인사이트 정보로 활용될 수 있다. 이를테면 상기 복합 메트릭을 통해 일정 시간 이상 서비스를 이용한 사용자들의 접속 위치, 상기 사용자들의 주된 접속 시간, 상기 사용자들이 이용한 단말의 사양(e.g. 디바이스 타입, 브라우저 종류) 등이 도출될 수 있고, 이같은 정보들은 마케팅(e.g. 웹 페이지를 통한 타겟팅 광고)을 위한 인사이트 정보로 활용될 수 있다.
몇몇 실시예에서는, 모니터링 대상 서비스를 이용하는 사용자를 식별하기 위해 IP 정보와 사용자 단말의 사양 정보가 함께 이용될 수 있다. 가령, IP 정보가 동일하더라도, 상기 사양 정보가 다른 경우 서로 다른 사용자로 식별될 수 있다. 상가 사용자 단말의 사양 정보는 예를 들어 디바이스 타입, 브라우저 타입, 운영체제 종류 및 운영체제 버전 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 본 실시예에 따르면, NAT(Network Address Translation) 환경 등과 같이 IP를 공유하는 환경에서도 정확하게 사용자 식별이 수행될 수 있다. 이에 따라, 사용자 관련 메트릭 정보의 정확도 및 신뢰도가 향상될 수 있다.
또한, 몇몇 실시예에서는, URL 타입 별로 메트릭 정보가 생성될 수 있다. 이때, 상기 URL의 타입은 대상 서비스가 특정 처리 로직(e.g. 비즈니스 로직)을 수행하는지 여부에 따라 분류될 수 있다. 즉, 제1 타입의 URL은 특정 처리 로직의 수행되지 않는 서비스의 URL을 의미하고, 제2 타입의 URL은 특정 처리 로직이 수행되는 서비스의 URL을 의미할 수 있다. 가령, 제1 타입의 URL은 정적 콘텐츠(e.g. 파일 콘텐츠)를 제공하는 서비스의 URL이 될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 본 실시예에 따른 구체적인 처리 프로세스는 도 14에 도시되어 있다. 도 14에 도시된 바와 같이, URL에 나타난 확장자(e.g. css, jpg, png, hwp, mp4 등의 확장자)를 기초로 URL이 상기 제1 타입과 상기 제2 타입으로 구분되고, 각 타입 별로 메트릭 정보가 생성될 수 있다(S162 내지 S166). 보다 자세하게는, 상기 제1 타입의 URL에 대한 필드별 요약 정보를 기초로 제1 메트릭 정보(e.g. 제1 타입의 URL 개수)가 생성되고, 상기 제2 타입의 URL에 대한 필드별 요약 정보를 기초로 제2 메트릭 정보(e.g. 제2 타입의 URL 개수)가 생성될 수 있다.
전술한 실시예에서, 메트릭 정보를 URL 타입 별로 구분하는 이유는 처리 로직이 포함된 서비스와 그렇지 않은 서비스의 에러 발생 패턴이 서로 상이하고 에러 발생 원인이 처리 로직의 문제인지 정적 콘텐츠의 문제인지가 명확하게 인지될 수 있기 때문이다. 가령, 처리 로직이 없는 서비스의 경우 에러가 거의 없거나 모두 에러가 발생하는 것이 일반적이나, 처리 로직이 있는 서비스의 경우 상황에 따라 발생되는 에러가 달라질 수 있다. 따라서, 서로 다른 관점에서 모니터링이 수행될 필요가 있는 것이다.
다시 도 3을 참조하여 설명한다.
단계 S180에서, 메트릭 정보가 제공된다. 가령, 웹 기반의 사용자 인터페이스를 통해 상기 메트릭 정보가 시각화되어 제공될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 메트릭 정보를 시각화하여 제공하는 실례는 도 15 내지 도 19에 도시되어 있다. 이해의 편의를 제공하기 위해, 도 15 내지 도 19에 예시된 메트릭 정보에 대하여 간단하게 소개하도록 한다.
도 15는 접속 위치에 따른 딜레이 카운트 정보가 시각화된 것을 예시한다.
도 15에 도시된 차트(110)는 접속 위치에 따른 딜레이 카운트 정보를 직관적으로 파악할 수 있도록 지도 상에 상기 딜레이 카운트 정보를 시각화한 것이다. 차트(110)를 통해 딜레이가 발생되는 주된 지역이 어디인지가 한눈에 파악될 수 있다. 도 15에 도시된 형식의 차트(110)는 딜레이 카운트 정보 외에도, 접속 위치에 따른 에러 정보, 접속 위치에 따른 사용자 정보(e.g. 사용자의 수, 디바이스 타입 별 사용자의 수 등) 등을 시각화하기 위해 이용될 수도 있음은 물론이다.
도 16은 사용자 단말의 디바이스 타입에 대한 카운트 정보가 시각화된 것을 예시한다.
도 16에 도시된 차트(120)는 디바이스 타입에 대한 카운트 정보를 원형 차트로 시각화한 것이다. 차트(120)를 통해 특정 서비스를 주로 이용하는 디바이스의 타입이 직관적으로 파악될 수 있다.
도 17은 디바이스 트렌드 정보가 시각화된 것을 예시한다.
도 17에 도시된 차트(130)는 디바이스 트렌드 정보(즉, 접속 시간에 따른 디바이스 타입의 변동 정보)를 그래프 형태로 시각화한 것이다. 차트(130)를 통해 특정 시간대에 주로 접속하는 디바이스의 타입, 특정 타입의 디바이스가 주로 접속하는 시간대 등의 정보가 직관적으로 파악될 수 있다.
도 18은 응답 딜레이를 기준으로 선별된 URL 정보가 시각화된 것을 예시한다.
도 18에 도시된 차트(140)는 응답 딜레이를 기준으로 선별된 URL 정보를 원형 차트로 시각화한 것이다. 차트(140)를 통해 딜레이가 심한 서비스에 대한 정보가 직관적으로 파악될 수 있다.
도 19는 리퍼러 URL에 대한 카운트 정보를 시각화 된 것을 예시한다.
도 19에 도시된 차트(150)는 리퍼러 URL에 대한 카운트 정보를 원형 차트로 시각화한 것이다. 차트(150)를 통해 특정 서비스를 이용하기 위해 경유되는 사이트에 대한 정보가 직관적으로 파악될 수 있다.
지금까지 도 15 내지 도 19를 참조하여 시각화된 메트릭 정보의 실례에 대하여 간략하게 살펴보았다. 다만, 전술한 예시들은 다양한 시각화 방식의 일부 예시에 불과할 뿐임에 유의하여야 하며, 메트릭 정보를 시각화하는 방식은 얼마든지 달라질 수 있음은 물론이다.
참고로, 전술한 단계 S100 내지 S180 중에서 단계 S100은 수집부(21)에 의해 수행되고, 단계 S120은 추출부(23-1) 및 식별부(23-3)에 의해 수행되며, 단계 S140은 요약부(23-5)에 의해 수행될 수 있다. 또한, 단계 S160은 메트릭 연산부(23-7)에 의해 수행되고, 단계 S180은 제공부(25)에 의해 수행될 수 있다.
지금까지 도 3 내지 도 19를 참조하여 본 개시의 몇몇 실시예에 따른 로그 기반 모니터링 방법에 대하여 설명하였다. 이하에서는, 도 20를 참조하여 본 개시의 다른 몇몇 실시예에 따른 로그 기반 모니터링 방법에 대하여 설명하도록 한다.
도 20은 본 개시의 다른 몇몇 실시예에 따른 로그 기반 모니터링 방법을 나타내는 예시적인 흐름도이다.
도 20에 도시된 바와 같이, 상기 모니터링 방법은 메트릭 정보를 기초로 모니터링 대상에 대한 관제 기능을 수행하는 방법에 관한 것이다. 따라서, 상기 모니터링 방법은 메트릭 정보를 획득하는 단계 S200와 획득된 메트릭 정보를 기초로 모니터링 대상을 제어하는 단계 S220을 포함한다. 단계 S200의 메트릭 정보는 전술한 바에 따라 생성 및 획득될 수 있으므로, 본 단계 S200에 대한 설명은 생략하도록 한다.
단계 S220에서, 모니터링 대상을 제어한다는 것은 모니터링 대상 서비스를 제공하는 장치(이하, 서비스 제공 장치)를 제어하는 것을 포함할 수 있다. 구체적인 제어 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예에서, 상기 메트릭 정보는 사용자의 접속 위치에 따른 접속 유지 시간 또는 상기 접속 위치에 따른 접속 횟수 중 적어도 하나이고, 상기 메트릭 정보에 기초하여 모니터링 대상 서비스가 제어될 수 있다. 자세하게는, 상기 접속 유지 시간 또는 상기 접속 횟수가 기준치 이상인 접속 위치가 식별되고, 상기 모니터링 대상 서비스를 통해 상기 식별된 접속 위치와 연관된 콘텐츠가 제공되도록 할 수 있다. 여기서, 상기 접속 위치와 연관된 콘텐츠는 광고 콘텐츠를 포함할 수 있으나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 본 실시예에 따르면, 사용자의 위치를 기반으로 타겟팅된 콘텐츠가 제공될 수 있는 바, 콘텐츠 노출 효과가 향상될 수 있다.
몇몇 실시예에서, 상기 메트릭 정보는 사용자의 단말 사양(e.g. 디바이스 타입, 브라우저 종류, 운영체제 종류)에 따른 접속 유지 시간 또는 상기 단말 사양에 따른 접속 횟수 중 적어도 하나이고, 모니터링 대상 서비스가 제어될 수 있다. 자세하게는, 상기 접속 유지 시간 또는 상기 접속 횟수가 기준치 이상인 단말 사양이 식별되고, 상기 식별된 단말 사양에 기초하여 상기 모니터링 대상 서비스의 제공 형태가 변경(e.g. 레이아웃 조정, 해상도에 맞게 크기 조정)되도록 제어될 수 있다. 가령, 특정 단말 또는 특정 단말의 브라우저를 통해 최적화된 웹 서비스가 제공될 수 있도록, 상기 웹 서비스의 디스플레이 형태 등이 변경될 수 있다. 본 실시예에 따르면, 서비스 이용자의 만족도가 제고될 수 있다.
참고로, 전술한 단계 S200 및 S220은 도 2에 도시된 모니터링 시스템(20)의 제어부(미도시)에 의해 수행될 수 있다. 그러나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
지금까지 도 20을 참조하여 본 개시의 다른 몇몇 실시예에 따른 모니터링 방법에 대하여 설명하였다. 이하에서는, 본 개시의 다양한 실시예에 따른 장치/시스템(e.g. 도 1의 10, 11, 13, 도 2의 20 등)을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하도록 한다.
도 21은 예시적인 컴퓨팅 장치(200)를 나타내는 하드웨어 구성도이다.
도 21에 도시된 바와 같이, 컴퓨팅 장치(200)는 하나 이상의 프로세서(210), 버스(250), 통신 인터페이스(270), 프로세서(210)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(230)와, 컴퓨터 프로그램(291)을 저장하는 스토리지(290)를 포함할 수 있다. 다만, 도 21에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 21에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(210)는 컴퓨팅 장치(200)의 각 구성의 전반적인 동작을 제어한다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(210)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(200)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(230)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(230)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(290)로부터 하나 이상의 프로그램(291)을 로드할 수 있다. 가령, 메모리(230)에 컴퓨터 프로그램(291)이 로드되면, 도 2에 도시된 바와 같이 모듈이 메모리(230) 상에 구현될 수 있다. 메모리(230)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(250)는 컴퓨팅 장치(200)의 구성 요소 간 통신 기능을 제공한다. 버스(250)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(270)는 컴퓨팅 장치(200)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(270)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(270)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(290)는 상기 하나 이상의 프로그램(291)을 비임시적으로 저장할 수 있다. 스토리지(290)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(291)은 메모리(230)에 로드될 때 프로세서(210)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(210)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(291)은 식별자 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 동작, 상기 복수의 로그 레코드로부터 상기 식별자 필드를 추출하고, 상기 추출된 식별자 필드에 기초하여 모니터링 대상을 식별하는 동작, 윈도우 단위로 상기 복수의 로그 레코드를 요약하여, 상기 모니터링 대상에 대한 필드별 요약 정보를 생성하는 동작 및 상기 필드별 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭 정보를 생성하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(200)를 통해 본 개시의 몇몇 실시예에 따른 모니터링 시스템(10 or 20) 또는 모니터링 장치(미도시)가 구현될 수 있다.
지금까지 도 21을 참조하여 본 개시의 다양한 실시예에 따른 장치/시스템을 구현할 수 있는 예시적인 컴퓨팅 장치(200)에 대하여 설명하였다.
지금까지 도 1 내지 도 21을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 21을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. 컴퓨팅 장치에 의해서 수행되는 로그 기반의 모니터링 방법에 있어서,
    URL 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 단계;
    상기 URL 필드에 포함된 복수의 개별 URL 각각에 대응하는 복수의 로그 레코드를 상기 개별 URL 별 모니터링 대상으로 식별하는 단계;
    상기 개별 URL 별 모니터링 대상에 대해, 소정 개수의 로그 레코드를 포함하는 윈도우 단위를 설정하고, 상기 윈도우 단위로 상기 필드별 로그 레코드의 요약 정보를 생성하는 단계; 및
    상기 필드별 로그 레코드의 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  2. 제1 항에 있어서,
    상기 복수의 로그 레코드를 수집하는 단계는,
    특정 호스트에 설치된 에이전트를 통해 상기 특정 호스트에서 생성되는 로그 레코드를 수집하는 단계를 포함하되,
    로그 기반 모니터링 방법.
  3. 제2 항에 있어서,
    상기 메트릭 정보는 일정 시간 동안 상기 수집된 로그 레코드에 나타난 URL의 개수 정보를 포함하는,
    로그 기반 모니터링 방법.
  4. 제1 항에 있어서,
    상기 개별 URL 별 모니터링 대상으로 식별하는 단계는,
    상기 URL 필드에 기록된 제1 URL이 신규 URL인지 여부를 판정하는 단계; 및
    신규 URL이라는 판정에 응답하여, 상기 제1 URL이 가리키는 서비스를 상기 모니터링 대상에 자동으로 추가하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  5. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    상기 윈도우에 포함된 로그 레코드의 각 필드에 대한 데이터 타입을 식별하는 단계;
    상기 데이터 타입 식별 결과, 제1 필드의 데이터 타입이 텍스트 타입인 경우, 텍스트 카운팅을 통해 상기 제1 필드에 대한 요약 정보를 생성하는 단계; 및
    상기 데이터 타입 식별 결과, 제2 필드의 데이터 타입이 숫자 타입인 경우, 통계 처리를 통해 상기 제2 필드에 대한 요약 정보를 생성하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  6. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    제1 윈도우에 포함된 로그 레코드를 요약하여, 제1 메트릭과 연관된 제1 필드에 대한 요약 정보를 생성하는 단계; 및
    제2 윈도우에 포함된 로그 레코드를 요약하여, 제2 메트릭과 연관된 제2 필드에 대한 요약 정보를 생성하는 단계를 포함하되,
    상기 제1 윈도우의 사이즈는 상기 제1 메트릭의 중요도에 기초하여 결정되고,
    상기 제2 윈도우의 사이즈는 상기 제2 메트릭의 중요도에 기초하여 결정되는,
    로그 기반 모니터링 방법.
  7. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    상기 식별된 모니터링 대상 중 제1 모니터링 대상의 로그 레코드를 제1 윈도우 단위로 요약하여, 제1 필드 요약 정보를 생성하는 단계; 및
    상기 식별된 모니터링 대상 중 제2 모니터링 대상의 로그 레코드를 제2 윈도우 단위로 요약하여, 제2 필드 요약 정보를 생성하는 단계를 포함하되,
    상기 제1 윈도우의 사이즈는 상기 제1 모니터링 대상의 중요도에 기초하여 결정되고,
    상기 제2 윈도우의 사이즈는 상기 제2 모니터링 대상의 중요도에 기초하여 결정되는,
    로그 기반 모니터링 방법.
  8. 제7 항에 있어서,
    상기 제1 모니터링 대상의 중요도는 상기 메트릭 정보를 기초로 수행된 이상 탐지 결과에 의해 조정되는,
    로그 기반 모니터링 방법.
  9. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    상기 윈도우의 사이즈가 설정되는 단계;
    미리 설정된 기본 윈도우의 사이즈 기준으로 상기 복수의 로그 레코드를 요약하여 제1 필드별 요약 정보를 생성하는 단계; 및
    상기 설정된 윈도우의 사이즈 기준으로 상기 제1 필드별 요약 정보를 다시 요약하여 상기 필드별 요약 정보를 생성하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  10. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    상기 복수의 필드 중 관심 필드와 상기 관심 필드의 값에 대한 조건이 설정되는 단계;
    상기 복수의 로그 레코드에서 상기 설정된 조건을 만족하는 상기 관심 필드의 데이터를 추출하는 단계; 및
    상기 추출된 데이터를 요약하여, 상기 관심 필드에 대한 요약 정보를 생성하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  11. 제1 항에 있어서,
    상기 필드별 로그 레코드의 요약 정보를 생성하는 단계는,
    상기 복수의 필드에 포함되지 않는 가상 필드가 설정되는 단계;
    상기 복수의 필드 중 상기 가상 필드와 연관된 필드의 데이터를 추출하는 단계; 및
    상기 추출된 데이터를 요약하여, 상기 가상 필드에 대한 요약 정보를 생성하는 단계를 포함하는,
    로그 기반 모니터링 방법.
  12. 제1 항에 있어서,
    상기 모니터링 대상은 상기 개별 URL이 가리키는 서비스이며,
    상기 메트릭 정보는 상기 서비스를 이용하는 사용자를 모니터링하기 위한 사용자 관련 메트릭 정보를 포함하는,
    로그 기반 모니터링 방법.
  13. 제12 항에 있어서,
    상기 복수의 로그 레코드는 상기 서비스를 이용하는 사용자 단말의 IP 정보와 상기 사용자 단말의 사양 정보를 포함하고,
    상기 메트릭 정보를 생성하는 단계는,
    상기 IP 정보와 상기 사양 정보를 기초로 상기 서비스를 이용하는 사용자를 식별하는 단계; 및
    상기 식별된 사용자 정보에 기초하여 상기 사용자 관련 메트릭 정보를 생성하는 단계를 포함하되,
    상기 사양 정보는 상가 사용자 단말의 디바이스 타입, 브라우저 타입, 운영체제 종류 및 운영체제 버전 중 적어도 하나를 포함하는,
    로그 기반 모니터링 방법.
  14. 제12 항에 있어서,
    상기 사용자 관련 메트릭은 상기 사용자의 접속 위치, 접속 유지 시간 및 접속 횟수 중 적어도 하나를 포함하는,
    로그 기반 모니터링 방법.
  15. 제12 항에 있어서,
    상기 사용자 관련 메트릭은 상기 사용자의 접속 위치에 따른 접속 유지 시간 또는 상기 접속 위치에 따른 접속 횟수 중 적어도 하나를 포함하고,
    상기 생성된 메트릭 정보에 기초하여 상기 접속 유지 시간 또는 상기 접속 횟수가 기준치 이상인 접속 위치를 식별하는 단계; 및
    상기 모니터링 대상을 통해 상기 식별된 접속 위치와 연관된 콘텐츠가 제공되도록 제어하는 단계를 더 포함하는,
    로그 기반 모니터링 방법.
  16. 제12 항에 있어서,
    상기 사용자 관련 메트릭은 상기 사용자의 단말 사양에 따른 접속 유지 시간 또는 상기 단말 사양에 따른 접속 횟수 중 적어도 하나를 포함하고,
    상기 생성된 메트릭 정보에 기초하여 상기 접속 유지 시간 또는 상기 접속 횟수가 기준치 이상인 단말 사양을 식별하는 단계; 및
    상기 식별된 사용자 단말의 사양에 기초하여 모니터링 대상 서비스의 제공 형태가 변경되도록 제어하는 단계를 더 포함하되,
    상기 단말 사양은 사용자 단말의 디바이스 타입 및 브라우저 종류 중 적어도 하나를 포함하는,
    로그 기반 모니터링 방법.
  17. 제1 항에 있어서,
    상기 모니터링 대상은 상기 개별 URL이 가리키는 서비스이며,
    상기 메트릭 정보를 생성하는 단계는,
    상기 개별 URL에 나타난 확장자를 기초로 상기 개별 URL을 제1 타입의 URL과 제2 타입의 URL로 구분하는 단계;
    상기 제1 타입의 URL에 대한 제1 메트릭 정보를 생성하는 단계; 및
    상기 제2 타입의 URL에 대한 제2 메트릭 정보를 생성하는 단계를 포함하되,
    상기 제1 타입의 URL은 특정 처리 로직(logic)이 수행되지 않는 서비스의 URL이고,
    상기 제2 타입의 URL은 특정 처리 로직이 수행되는 서비스의 URL인,
    로그 기반 모니터링 방법.
  18. 제1 항에 있어서,
    상기 모니터링 대상은 상기 개별 URL이 가리키는 서비스이며,
    상기 메트릭 정보는 딜레이 카운트(delay count) 정보를 포함하되,
    상기 딜레이 카운트 정보는 상기 서비스 요청에 대한 응답 시간이 임계치 이상 지연된 요청의 개수인,
    로그 기반 모니터링 방법.
  19. 하나 이상의 인스트럭션들(instructions)을 포함하는 메모리;
    URL 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 통신 인터페이스; 및
    상기 하나 이상의 인스트럭션들을 실행함으로써,
    상기 URL 필드에 포함된 복수의 개별 URL 각각에 대응하는 복수의 로그 레코드를 상기 개별 URL 별 모니터링 대상으로 식별하며, 상기 개별 URL 별 모니터링 대상에 대해, 소정 개수의 로그 레코드를 포함하는 윈도우 단위를 설정하고, 상기 윈도우 단위로 상기 필드별 로그 레코드의 요약 정보를 생성하고, 상기 필드별 로그 데이터의 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 프로세서를 포함하는,
    모니터링 시스템.
  20. 컴퓨팅 장치와 결합되어,
    URL 필드를 포함하는 복수의 필드를 갖는 복수의 로그 레코드를 수집하는 단계;
    상기 URL 필드에 포함된 복수의 개별 URL 각각에 대응하는 복수의 로그 레코드를 상기 개별 URL 별 모니터링 대상으로 식별하는 단계;
    상기 개별 URL 별 모니터링 대상에 대해, 소정 개수의 로그 레코드를 포함하는 윈도우 단위를 설정하고, 상기 윈도우 단위로 상기 필드별 로그 레코드의 요약 정보를 생성하는 단계; 및
    상기 필드별 로그 레코드의 요약 정보를 기초로 상기 모니터링 대상에 대한 메트릭(metric) 정보를 생성하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장된,
    컴퓨터 프로그램.
KR1020190025213A 2019-03-05 2019-03-05 로그 기반 모니터링 방법, 장치 및 그 시스템 KR102203322B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190025213A KR102203322B1 (ko) 2019-03-05 2019-03-05 로그 기반 모니터링 방법, 장치 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190025213A KR102203322B1 (ko) 2019-03-05 2019-03-05 로그 기반 모니터링 방법, 장치 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20200106674A KR20200106674A (ko) 2020-09-15
KR102203322B1 true KR102203322B1 (ko) 2021-01-15

Family

ID=72450536

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190025213A KR102203322B1 (ko) 2019-03-05 2019-03-05 로그 기반 모니터링 방법, 장치 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102203322B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220099016A (ko) 2021-01-05 2022-07-12 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102588968B1 (ko) * 2023-06-28 2023-10-13 스마일샤크 주식회사 오픈소스 기반의 모니터링 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183021A (ja) 2006-01-05 2007-07-19 Matsushita Electric Ind Co Ltd シート状ヒートパイプ
US20120323612A1 (en) 2010-06-15 2012-12-20 Ticketmaster, Llc Methods and systems for computer aided event and venue setup and modeling and interactive maps
KR101329976B1 (ko) * 2012-06-13 2013-11-13 주식회사 시큐아이 리포트 생성 방법 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091207A (ko) * 2000-03-14 2001-10-23 전하진 인터넷 서비스의 고객 데이터 통합 관리 시스템
KR101148002B1 (ko) * 2010-04-06 2012-05-24 국방과학연구소 웹 로봇 탐지 시스템 및 방법
KR20130123582A (ko) 2012-05-03 2013-11-13 (주)네오위즈게임즈 로그 모니터링 방법, 그 서버 및 기록 매체

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183021A (ja) 2006-01-05 2007-07-19 Matsushita Electric Ind Co Ltd シート状ヒートパイプ
US20120323612A1 (en) 2010-06-15 2012-12-20 Ticketmaster, Llc Methods and systems for computer aided event and venue setup and modeling and interactive maps
KR101329976B1 (ko) * 2012-06-13 2013-11-13 주식회사 시큐아이 리포트 생성 방법 및 시스템

Also Published As

Publication number Publication date
KR20200106674A (ko) 2020-09-15

Similar Documents

Publication Publication Date Title
US10127146B2 (en) Systems and methods to identify and classify performance bottlenecks in cloud based applications
CN111274095B (zh) 日志数据处理方法、装置、设备及计算机可读存储介质
US9590880B2 (en) Dynamic collection analysis and reporting of telemetry data
US20140351361A1 (en) Deployment of an upgrade to a storage system based on correlation analysis of measurements of the storage system
CN102299832A (zh) 一种通用的网络流量统计方法
CN102999314A (zh) 立即延迟跟踪器工具
US20100017486A1 (en) System analyzing program, system analyzing apparatus, and system analyzing method
JP2019135598A (ja) 性能評価プログラム、および性能評価方法
JP6424273B2 (ja) コンピュータ・インフラストラクチャの管理におけるポリシーの自己調整のための半教師あり機械学習の活用
CN112486708B (zh) 页面操作数据的处理方法和处理系统
KR102203322B1 (ko) 로그 기반 모니터링 방법, 장치 및 그 시스템
US20170052821A1 (en) Dynamically scalable data collection and analysis for target device
US10977108B2 (en) Influence range specifying method, influence range specifying apparatus, and storage medium
TWI765692B (zh) 收集與驗證網路交通數據之系統以及方法
US20180095819A1 (en) Incident analysis program, incident analysis method, information processing device, service identification program, service identification method, and service identification device
US9021078B2 (en) Management method and management system
US9276826B1 (en) Combining multiple signals to determine global system state
US9164746B2 (en) Automatic topology extraction and plotting with correlation to real time analytic data
US10644971B2 (en) Graph search in structured query language style query
US10706108B2 (en) Field name recommendation
US11556120B2 (en) Systems and methods for monitoring performance of a building management system via log streams
US20150067152A1 (en) Monitoring system, system, and monitoring method
US20160004584A1 (en) Method and computer system to allocate actual memory area from storage pool to virtual volume
US20150222505A1 (en) Business transaction resource usage tracking
CN113760856A (zh) 数据库管理方法及装置、计算机可读存储介质、电子设备

Legal Events

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