KR20230021894A - 로그 데이터 파싱 방법 및 장치 - Google Patents
로그 데이터 파싱 방법 및 장치 Download PDFInfo
- Publication number
- KR20230021894A KR20230021894A KR1020210103838A KR20210103838A KR20230021894A KR 20230021894 A KR20230021894 A KR 20230021894A KR 1020210103838 A KR1020210103838 A KR 1020210103838A KR 20210103838 A KR20210103838 A KR 20210103838A KR 20230021894 A KR20230021894 A KR 20230021894A
- Authority
- KR
- South Korea
- Prior art keywords
- items
- parsing
- memory
- data
- item
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000011159 matrix material Substances 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 8
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 235000014510 cooky Nutrition 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
로그 데이터 파싱 방법 및 장치가 제공된다. 본 발명의 일 실시예에 따른 로그 데이터 파싱 방법은, 로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 단계와, 상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 단계와, 상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계와, 상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 단계를 포함할 수 있다.
Description
본 발명은 로그 데이터 파싱 방법 및 장치에 관한 것이다. 보다 자세하게는 대용량 로그 데이터를 분석에 용이한 형태로 신속하게 파싱하는 방법 및 장치에 관한 것이다.
로그 데이터란 가동중인 컴퓨팅 장치의 장애 대처, 튜닝 등을 위해 수집되는 데이터를 의미한다. 상기 로그 데이터는 클라이언트로부터 요청(request)가 수신되는 경우에 수집될 수 있다. 상기 로그 데이터에는, 로깅 일시, 사용자 IP(Internet Protocol) 주소, 요청 URL(Uniform Resource Locator), Http(Hypertext Transfer Protocol) 응답 코드, 응답 데이터의 크기, 처리소요시간 등을 포함한다.
이러한 로그 데이터를 분석하면, 특정 시간의 사용자 요청 URI(Uniform Resource Identifier) 패턴을 감지하거나 이상 현상(요청처리 시간 지연, 특정 IP 집중 등) 등을 분석할 수 있다. 다만, 이런 의미 있는 분석 작업을 위해서는 로그 데이터를 항목 단위로 파싱할 수 있어야 한다.
그런데 로그 데이터는 수많은 라인으로 구성될 수 있으며, 이 경우 로그 데이터를 파싱하는데 시간이 많이 소요될 수 있다. 또한, 로그 데이터를 파싱하기 위해서는 메모리에 자주 접근해야 되므로, 메모리 접근 횟수가 증가할 수도 있다.
본 발명이 해결하고자 하는 기술적 과제는, 대용량의 로그 데이터를 분석에 용이한 형태로 신속하게 파싱하는 로그 데이터 파싱 방법 및 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 로그 데이터를 파싱하는 과정에서 함수 호출 횟수 및 메모리 접근 횟수를 최소화하는 로그 데이터 파싱 방법 및 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 로그 데이터에서 필요 항목을 빠르게 선별하여 파싱하는 로그 데이터 파싱 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 로그 데이터 파싱 방법은, 로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 단계와, 상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 단계와, 상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계와, 상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계는, 상기 2차원 행렬에서 상기 제2 파싱 대상이 되는 열의 범위를 식별하는 단계와, 상기 식별된 열의 범위에 포함되는 상기 대상 항목의 데이터를, 상기 2차원 행렬의 첫 행에서부터 마지막 행까지 순차적으로 제2 파싱을 수행하되, 상기 메모리에 로드된 대상 항목의 데이터를 이용하여 상기 제2 파싱을 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 파싱 결과를 저장하는 단계는, 상기 복수의 서브 항목과 상기 대상 항목이 아닌 항목을 열 단위로 병합하여 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 다수의 단위 로그를 메모리에 2차원 행렬로 로드하는 단계는, 상기 로그 데이터의 유형에 상응하는 로그 포맷을 식별하는 단계와, 상기 로그 포맷에서 인덱싱된 항목을 필요 항목으로서 결정하는 단계와, 상기 결정된 필요 항목을 포함하는 상기 단위 로그를 상기 제1 파싱하여 상기 메모리에 로드하는 단계를 포함할 수 있다.
상기 로그 데이터 파싱 방법은, 라우팅 홉들의 IP 주소를 포함하는 IP 로깅 정보가 상기 로그 데이터에 포함되어 있는지 여부를 판정하는 단계와, 상기 로그 데이터에 상기 IP 로깅 정보가 포함되었다는 판정에 응답하여, 상기 IP 로깅 정보에서 IP 주소를 구분하는 구분자를 제거하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제2 파싱 대상이 되는 대상 항목을 결정하는 단계는, 상기 제1 파싱되어 상기 메모리에 로드된 항목들 중에서, 상기 제2 파싱이 가능한 하나 이상의 항목을 사용자에게 제공하는 단계와, 상기 제공된 하나 이상의 항목 중에서 상기 사용자가 선택된 항목을 상기 제2 파싱 대상이 되는 상기 대상 항목으로 결정하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 컴퓨팅 장치는 하나 이상의 프로세서와, 상기 프로세서에 의하여 수행되는 프로그램을 로드(load)하는 메모리와, 상기 프로그램이 저장된 스토리지를 포함하고, 상기 프로그램은 로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 상기 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 동작과, 상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 동작과, 상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 동작과, 상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른, 로그 데이터 파싱 방법의 순서도이다.
도 2는 도 1의 단계 S200를 자세하게 설명하기 위한 도면이다.
도 3은 로그 포맷을 예시하는 도면이다.
도 4는 메모리에 로드된 2차원 행렬 형태의 다수의 가공 단위 로그를 예시하는 도면이다.
도 5는 도 1의 단계 S300를 자세하게 설명하기 위한 도면이다.
도 6은 도 1의 단계 S500를 자세하게 설명하기 위한 도면이다.
도 7은 병합된 항목들을 예시하는 도면이다.
도 8은 종래의 파싱 기술과 본 실시예에 따른 파싱 결과를 비교한 도면이다.
도 9는 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
도 2는 도 1의 단계 S200를 자세하게 설명하기 위한 도면이다.
도 3은 로그 포맷을 예시하는 도면이다.
도 4는 메모리에 로드된 2차원 행렬 형태의 다수의 가공 단위 로그를 예시하는 도면이다.
도 5는 도 1의 단계 S300를 자세하게 설명하기 위한 도면이다.
도 6은 도 1의 단계 S500를 자세하게 설명하기 위한 도면이다.
도 7은 병합된 항목들을 예시하는 도면이다.
도 8은 종래의 파싱 기술과 본 실시예에 따른 파싱 결과를 비교한 도면이다.
도 9는 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 본 발명의 일 실시예에 따른, 로그 데이터 파싱 방법의 순서도이다.
도 1에 도시된 방법의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 본 방법의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 본 방법에 포함되는 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 본 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수 있다. 이하에서는, 본 방법의 각 단계가 하나의 컴퓨팅 장치에 의해 수행되는 것을 가정하여 설명을 이어가도록 하되, 각 단계의 수행 주체는 단지 예시일 뿐, 본 발명이 이하의 설명에 의해 한정되는 아니며, 설명의 편의를 위해 상기 방법에 포함되는 일부 단계의 동작 주체는 그 기재가 생략될 수도 있다.
도 1을 참조하면, 로그 파일이 오픈되어 로그 파일 내에 포함된 로그 데이터가 획득될 수 있다(S100). 상기 로그 파일에는 로그 데이터가 포함되어 있으며, 상기 로그 데이터에는 다수의 원시(raw) 단위 로그가 포함되어 있다. 여기서, 원시 단위 로그는, 클라이언트의 요청(request)이 발생하는 경우에 수집되는 데이터일 수 있다. 상기 원시 단위 로그는 복수의 항목들을 포함할 수 있다. 상기 항목들은, 로깅 일시, 사용자 IP, 요청 URL, Http 응답 코드, 응답 데이터의 크기, 처리소요시간, 전송된 바이트 수, 요청된 파일 이름, 요청에 포함된 쿼리 문자열, 요청(쿼리)을 처리하는데 걸린 시간, 요청에 포함된 쿠키값, 요청에 포함된 헤더명의 값 등을 포함할 수 있다. 각각의 원시 단위 로그는 행(row)으로 구분되어 로그 데이터에 포함될 수 있다. 또는, 원시 단위 로그는 행으로 구분되지 않고, 각 원시 단위 로그가 연이어서 로그 데이터에 포함될 수 있다.
몇몇 실시예에서, 원시 단위 로그는 라우팅 홉(hop)들의 IP 주소를 포함하는 IP 로깅 정보를 포함할 수 있다. 이 경우, 컴퓨팅 장치는 로그 데이터에 라우팅 홉들의 IP 주소를 포함하는 IP 로깅 정보가 포함되어 있는지 여부를 판정하는 단계를 수행할 수 있다. 컴퓨팅 장치는 상기 로그 데이터에 상기 IP 로깅 정보가 포함되었다는 판정에 응답하여, 원시 단위 로그의 IP 로깅 정보에서 IP 주소를 구분하는 구분자를 제거하는 단계를 수행할 수 있다. 여기서, 구분자는 공백 또는 쉼표일 수 있다. 부연하면, 로그 데이터의 원시 단위 로그에는 소스 IP 주소 이외에, 라우팅 홉들의 IP 주소가 포함되어 기록될 수 있다. 이 경우, 컴퓨팅 장치는 파싱을 용이하기 위하여, 상기 홉 IP 주소를 구분하는 구분자(예컨대, 쉼표 또는 공백)를 제거하여 상기 로그 데이터를 전처리할 수 있다. 즉, 컴퓨팅 장치는, 파싱 과정에서 에러와 속도 저하를 유발할 수 있는 홉 IP 주소들 사이의 구분자를 제거하는 작업을 미리 수행할 수 있다.
다음으로, 로그 데이터를 제1 파싱하여 다수의 원시 단위 로그로부터 다수의 가공 단위 로그를 추출하고, 상기 추출한 다수의 가공 단위 로그를 메모리에 2차 행렬로 로드할 수 있다(S200). 여기서 가공 단위 로그는, 원시 단위 로그부터 필요한 항목만을 선별된 단위 로그일 수 있다. 즉, 가공 단위 로그는 원시 단위 로그에 포함된 항목들 중에서 분석에 필요한 항목만을 포함하는 데이터일 수 있다. 원시 로그 데이터를 제1 파싱하여 메모리에 로드하는 단계 S200는 도 2 내지 도 4를 참조하여, 자세하게 설명한다.
다음으로, 메모리에 로드된 다수의 가공 단위 로그들 중에서, 제2 파싱이 되는 대상 항목을 결정할 수 있다(S300). 일 실시예에서, 메모리에 로드된 2차원 행렬 형태의 데이터들(즉, 가공 단위 로그) 중에서, 제2 파싱을 가리키는 열의 범위를 식별하고, 그 식별된 열의 범위에 포함되는 대상 항목을 2차원 대상 항목으로 결정할 수 있다.
이어서, 결정된 각 대상 항목에 대해서 제2 파싱을 수행할 수 있다(S400). 일 실시예에서, 컴퓨팅 장치는 메모리에 로드된 2차원 형태의 데이터들 중에서 상기 대상 항목에 해당하는 데이터를 제2 파싱할 수 있다. 즉, 메모리에 로드된 2차원 형태의 데이터들 중에서, 상기 열의 범위에 포함된 대상 항목을 첫 번째 행에서부터 마지막 행까지 순차적으로 제2 파싱할 수 있다. 상기 제2 파싱이 완료되면, 상기 대상 항목은 복수의 서브 항목으로 구분될 수 있다. 상기 제2 파싱을 수행하는 단계 S400은 도 5를 참조하여 자세하게 설명하기로 한다.
다음으로, 파싱 결과를 저장할 수 있다(S500). 일 실시예에서, 제1 파싱 결과의 일부 항목과 제2 파싱 결과의 서브 항목들이 병합되고, 그 병합된 결과를 포함하는 파일이 생성될 수 있다. 상기 파싱 결과를 저장하는 S500 단계는 도 6 및 도 7을 참조하여 자세하게 설명한다.
이하, 도 2 내지 도 4를 참조하여, 도 1의 단계 S200에 대해서 자세하게 설명한다.
도 2를 참조하면, 로그 데이터의 유형에 상응하는 로그 포맷을 식별할 수 있다(S110). 상기 로그 포맷은 로그 데이터에 기록된 각 항목의 순서, 항목의 정의, 각 항목 간의 구분하기 위한 구분자들이 정의된 것으로서, 컴퓨팅 장치는 로그 데이터의 유형별로 서로 상이한 로그 포맷을 미리 저장할 수 있다. 한편, 파싱하고 하는 로그 데이터가 새로운 유형인 경우, 그 로그 데이터의 유형에 상응하는 새로운 로그 포맷이 작성되어 컴퓨팅 장치에 저장될 수 있다.
도 3은 로그 포맷을 예시하는 도면으로서, 도 3에 예시된 바와 같이 로그 포맷에는 원시 단위 로그에 기록된 일련의 항목들이 어떠한 것을 의미하고 있는지 여부를 대한 정보가 정의될 수 있다. 도 3에서 '%h'는 원격 호스트의 IP 주소, '%l'은 원격 로그인 이름, '%u"는 원격 사용자 이름, '%t'는 호스트로부터 요청을 받은 일시, '%r'은 사용자 요청 방식(예컨대, GET, POST 등)과 URL, '%s'는 요청에 대한 서버의 응답(예컨대, http 상태코드, 200, 300 등), '%b'는 전송 바이트의 수, '%{Referer}i'는 요청한 URL, '%{Cookie}i'는 요청된 쿠키값, '%D'는 요청을 처리하는데 걸린 시간을 의미할 수 있다.
다음으로, 로그 포맷에서 인덱싱(indexing) 된 하나 이상의 항목을 식별할 수 있다(S120). 일 실시예에 따르면, 로그 포맷에는 하나 이상의 항목이 인덱싱되어 있고, 컴퓨팅 장치는 로그 포맷에서 인덱싱 된 하나 이상을 항목을 식별할 수 있다. 여기서, 분석이 필요한 항목들이 로그 포맷에서 인덱싱 될 수 있다. 도 3에서는, 원격 호스트의 IP 주소를 나타내는 '%h'가 0번 인덱스, 호스트로부터 요청을 받은 일시를 나타내는 '%t'가 1번 인덱스, 사용자 요청 방식과 URL을 나타내는 '%r'이 2번 인덱스, 전송 바이트의 수를 나타내는 '%b'가 3번 인덱스, 요청을 처리하는데 걸린 시간을 나타내는 '%D'가 4번 인덱스인 것으로 예시되어 있다.
이어서, 로그 데이터를 제1 파싱하여 인덱싱된 항목들을 식별하고, 상기 식별된 인덱싱된 항목을 포함하는 다수의 가공 단위 로그를 메모리에 로드할 수 있다(S130). 메모리에 로드된 가공 단위 로그들은 행(row)로서 서로 구분될 수 있으며, 2차원 행렬로서 구성될 수 있다. 부연하면, 로그 데이터에는 다수의 원시 단위 로그들이 포함될 수 있으며, 컴퓨팅 장치는 제1 파싱을 수행하여 로그 데이터에 포함된 원시 단위 로그들을 서로 구분하고, 또한 각 원시 단위 로그에서 인덱싱된 항목들(즉, 필요한 항목들)만을 선별하고, 이렇게 선별된 항목들을 포함하는 가공 단위 로그가 메모리를 로드할 수 있다. 즉, 로그 데이터에 포함된 원시 단위 로그가 그대로 메모리에 탑재되는 것이 아니라, 필요한 항목만을 포함하는 가공 단위 로그가 메모리에 로드된다.
도 4는 메모리에 로드된 2차원 행렬 형태의 다수의 가공 단위 로그를 예시하는 도면이다.
도 4에 예시된 바와 같이, 가공 단위 로그는 n*m 행렬의 구조를 가질 수 있다. 또한, 각각의 가공 단위 로그는 행으로서 서로 구분될 수 있다. 또한, 도 4에 예시된 바와 같이, 메모리에 로드된 가공 단위 로그는, 원시 단위 로그에 포함된 모든 항목들을 포함하지 않고, 사전에 인덱싱된 항목만을 포함하여 메모리에 로드 될 수 있다.
도 4에 따르면 가공 단위 로그는, 원격 호스트의 IP 주소를 나타내는 0번 인덱스(fip), 호스트로부터 요청을 받은 일시를 나타내는 1번 인덱스(ftime), 사용자 요청 방식과 URL을 나타내는 2번 인덱스(frequest), 전송 바이트의 수를 나타내는 3번 인덱스(fbyte) 및 요청을 처리하는데 걸린 시간을 나타내는 4번 인덱스(ftimetaken)를 포함하고 있다.
본 실시예에 따르면, 분석에 필요한 항목들만을 포함하는 가공 단위 로그가 메모리에 탑재됨에 따라, 메모리 공간을 절감할 수 있을 뿐만 아니라, 후술하는 제2 파싱을 더욱 신속하게 처리할 수 있다.
이하, 도 5를 참조하여, 도 1의 단계 S300에 대해서 자세하게 설명한다.
도 5를 참조하면, 제2 파싱 대상이 되는 열(column)의 범위를 식별할 수 있다(S410). 상기 열의 범위는 사전에 각 로그 포맷별로 사전에 설정될 수 있다. 다른 실시예에서, 제2 파싱 대상이 되는 항목이 각 로그 포맷별로 사전에 정의될 수 있으며, 컴퓨팅 장치는 상기 제2 파싱 대상이 되는 항목이 포함된 열의 범위를 식별함으로써, 상기 제2 파싱 대상이 되는 열의 범위를 식별할 수 있다.
또 다른 실시예로서, 제2 파싱 대상이 되는 항목들이 기록되는 항목 목록(이하, '제2 파싱 대상 항목 목록'이라고 지칭함)을 사전에 저장할 수 있다. 예를 들어, 제2 파싱 대상의 항목 목록은, 날짜와 시간이 관련된 항목, 라우팅 홉의 ip 주소와 관련된 항목, 파일명 및 확장자와 관련된 항목 등을 포함할 수 있다. 컴퓨팅 장치는 제1 파싱된 항목들 중에서, 제2 파싱 대상 항목 목록에 기록되는 항목이 존재하면, 그 항목들이 제2 파싱할 수 있음을 사용자에게 안내할 수 있다. 이때, 컴퓨팅 장치는 제1 파싱된 항목들 중에서 제2 파싱이 대상이 되는 하나 이상의 항목을 포함하는 알림 메시지(또는 메뉴)를 화면에 디스플레이하거나 사용자 단말로 전송한 후, 알림 메시지에 포함된 항목들 중에서 사용자가 선택한 항목을 제2 파싱 대상이 되는 항목으로 결정하고, 그 결정된 항목이 포함된 열의 범위를 상기 제2 파싱 대상이 되는 열로서 식별할 수 있다.
이어서, 행(row)의 순서를 나타내는 'n'을 '1'로 초기에 설정한 후(S420), n번째 행에서 상기 식별된 열의 범위에 포함된 대상 항목의 데이터를 제2 파싱을 수행하여, 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분할 수 있다(S430). 예컨대, 상기 대상 항목이 연월일시를 나타내는 항목인 경우, 상기 대상 항목을 년을 기록하는 제1 서브 항목, 월을 기록하는 제2 서브 항목, 일을 기록하는 제3 서브 항목, 시를 기록하는 제4 서브 항목 중에서 둘 이상의 서브 항목으로 구분할 수 있다. 이때, 이미 메모리에 로드된 대상 항목의 데이터를 이용하여 제2 파싱을 수행한다. 즉, 대상 항목의 데이터를 다시 메모리에 로드하는 것이 아니라, 2차원 행렬 형태로 이미 메모리에 로드된 대상 항목의 데이터를 이용하여 제2 파싱을 수행한다. 이에 따라, 제2 파싱의 속도가 향상될 수 있다.
다음으로, 행의 순서를 나타내는 'n'이 메모리에 로드된 2차원 행렬의 마지막 행(last line)과 일치하는지 여부를 판정할 수 있다(S440). 'n'이 마지막 행에 해당하면(즉, 모든 행에 대한 제2 파싱이 완료되면), 단계 S500을 진행할 수 있다.
반면에, 'n'이 마지막 행(last line)에 해당하지 않는 것으로 판정되면, n을 1 증가시키고 단계 S430를 재진행하여, 다음 번째의 행에서 지정된 열의 범위에 해당하는 대상 항목의 데이터를 2차 파싱할 수 있다.
도 5의 방법에 따라, 메모리에 로드된 가공 단위 로그 중에서, 제2 파싱 대상이 되는 대상 항목들은 열에 따라 순차적으로 제2 파싱될 수 있다. 이렇게 메모리에 로드된 가공 단위 로그들을 대상으로 제2 파싱을 수행할 때, 열 단위로 제2 파싱이 이루지게 함으로써, 대용량 로그 데이터를 파싱할 때에 파싱하는 속도를 증가시키는 효과를 발휘할 수 있다. 즉, 메모리에 이미 로드된 2차원 행렬 형태의 가공 로그 데이터들 중에서, 특정 범위 열에 포함되는 항목만을 대상으로 제2 파싱이 이루지게 함으로써, 제2 파싱 과정에서의 메모리 접근 횟수를 줄이고, 또한 파싱 과정에서 함수가 호출되는 횟수도 줄일 수 있다.
부연하면, 기존에는 원시 단위 로그를 대상으로 제1 파싱과 제2 파싱을 수행할 때에는, 로그 데이터에서 제1 파싱되는 항목을 식별하여 메모리에 로드하고, 더불어 제2 파싱되는 항목을 서브 항목으로 구분하여 각각의 서브 항목들을 메모리에 로드하게 된다. 즉, 기존에는 하나의 원시 단위 로그에서 제1 파싱과 제2 파싱이 동시에 진행되고, 더불어 제1 파싱에 이용되는 제1 함수와 제2 파싱에 이용되는 제2 함수가 같이 이용된다. 이 경우, 제1 파싱의 위한 제1 함수와 제2 파싱을 위한 제2 함수를 스위치하는 과정을 거쳐야 되고, 함수 스위치 과정에서 메모리에 대한 접근이 증가하게 되고 파싱에서의 속도도 저하되게 된다.
반면에, 본 실시예에 따르면, 제1 파싱에 이용되는 제1 함수를 이용하여 가공 원시 데이터를 메모리에 이미 로드한 상태에서, 제2 파싱에 이용되는 제2 함수를 이용하여 제2 파싱이 되는 항목들을 열 단위로 제2 파싱함으로써, 메모리에 접근하는 횟수와 함수 호출 횟수를 줄일 뿐만 아니라, 대용량 데이터를 처리할 때에 속도도 증가시킬 수 있다.
이하, 도 6 및 도 7을 참조하여, 도 1의 단계 S500에 대해서 자세하게 설명한다.
도 6을 참조하면, 제2 파싱이 완료되면, 별도의 파일을 생성할 수 있다(S510). 상기 별도의 파일은 원시 단위 로그를 포함하는 로그 파일과는 상이한 파일일 수 있다. 일 실시예에서, 상기 별도의 파일은 CSV(Comma Separated Value) 포맷의 파일일 수 있다.
이어서, 제1 파싱된 일부 항목들과 제2 파싱된 서브 항목들을 병합할 수 있다(S520). 여기서, 제1 파싱된 일부 항목들은, 제1 파싱된 항목들 중에서, 제2 파싱 대상이 되지 않은 항목들일 수 있다. 일 실시예에서, 제1 파싱된 일부 항목들과 제2 파싱된 서브 항목들을 열(column) 단위로 병합할 수 있다.
도 7은 병합된 항목들을 예시하는 도면으로서, 도 4와 도 7을 예를 들어 설명하면, 1번 인덱스에 포함된 항목(ftime)은 년을 기록하는 제1 서브 항목(fyear), 월을 기록하는 제2 서브 항목(fmonth), 일을 기록하는 제3 서브 항목(fday), 시를 기록하는 제4 서브 항목(fhour), 분을 기록하는 제5 서브 항목(fmimute), 초를 기록하는 제6 서브 항목(fsecond), 년월일을 기록하는 제7 서브 항목(fdate), 분초를 기록하는 제7 서브 항목(ftime) 및 연월일시분초를 기록하는 제8 서브 항목(fdatetime)로 구분될 수 있다. 또한, 이렇게 구분된 서브 항목들과 제1 파싱된 일부 항목(즉, frequest, fip, fbyte, ftime_taken 등)을 열 단위로 병합될 수 있다. 이렇게 열 단위로 병합하게 되면 데이터 병합에 있어서의 속도가 향상된다. 즉, 일일이 행 단위로 데이터를 병합하는 경우, 행 개수에 비례하여 항목 병합에서의 속도가 지연될 수 있는데, 본 실시예에서는 행 단위의 병합 대신에 열 단위 병합을 이용함으로써, 병합 과정에서 속도를 향상시킬 수 있다.
다음으로, 열 단위로 병합된 항목들을 상기 생성된 파일에 기록할 수 있다(S530). 다른 실시예로서, 컴퓨팅 장치는 열 단위로 상기 파일에 항목들을 기록함으로써, 최종적으로 서브 항목들과 제1 파싱된 일부 항목들을 병합할 수 있다. 도 7을 예를 들어 설명하면, fyear의 서브 항목에 해당하는 열에서부터 fextension 항목에 해당하는 열을 순차적으로 파일에 기록할 수 있다.
본 실시예에 따르면, 열 단위로 제2 파싱된 서브 항목들과 제1 파싱된 항목들을 병합함으로써, 항목 병합 과정에서 속도를 향상시킬 수 있으며, 결과적으로 제2 파싱 결과물이 나오기까지의 속도도 향상시킬 수 있다.
도 8은 종래의 파싱 기술과 본 실시예에 따른 파싱 결과를 비교한 도면이다.
본 테스트 환경에서는 파싱되는 로그 데이터를 동일하게 적용하였고, 더불어 로그 데이터를 메모리에 로드하는 시점에서부터 파일을 생성하기까지의 시간을 측정하였다. 테스트 과정에서 3.3GHz의 CPU와 16 기가바이트의 메모리를 가지는 서버가 이용되었다. 그리고 종래의 기술로서 GoAccess 1.4.6 버전을 이용하였다.
도 8의 도면에서 10초 이내의 차이가 발생하는 경우, 결과로 '비슷'을 기록하였고, 10초 이상의 차이가 발생한 경우, '우세'로 표기하였다.
도 8에 나타난 바와 같이, 로그 데이터(즉, 로그 파일)의 크기가 1 기가바이트 이하인 경우, 본 실시예의 파싱 성능과 Goaccess의 파싱 성능은 비슷한 것으로 나타나지만, 로그 데이터의 크기가 2 기가 바이트 이상이면, 본 실시예에 따른 파싱 성능이 Goaccess 성능보다 우세한 것으로 나타났다.
이하, 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 9를 참조하여 설명하기로 한다.
도 9는 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. 본 실시예에 따른 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 네트워크 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 도 9에는 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 명세서의 실시예들이 속한 기술분야의 통상의 기술자라면 도 9에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 명세서의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.
메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 명세서의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 컴퓨터 프로그램(1500)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 상기 메모리에는 상술한 2차원 행렬 형태로 다수의 가공 단위 로그들이 로드될 수 있다.
시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다. 상기 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 네트워크 인터페이스(1200)는 통신망과 연결할 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 명세서의 실시예들이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1500)은 본 명세서의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 명세서의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다. 컴퓨터 프로그램(1500)은, 도 2 내지 도 8을 참조하여 설명한 방법을 위한 인스트럭션들을 포함할 수 있다.
상기 컴퓨터 프로그램(1500)은 로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 상기 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 동작과, 상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 동작과, 상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 동작과, 상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 동작을 수행하기 위한 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 9를 참조하여 본 발명의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 9를 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (9)
- 컴퓨팅 장치에 의해서 수행되는 방법에 있어서,
로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 단계;
상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 단계;
상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계; 및
상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계는,
상기 2차원 행렬에서 상기 제2 파싱 대상이 되는 열의 범위를 식별하는 단계; 및
상기 식별된 열의 범위에 포함되는 상기 대상 항목의 데이터를, 상기 2차원 행렬의 첫 행에서부터 마지막 행까지 순차적으로 제2 파싱을 수행하되, 상기 메모리에 로드된 대상 항목의 데이터를 이용하여 상기 제2 파싱을 수행하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
상기 제2 파싱 결과를 저장하는 단계는,
상기 복수의 서브 항목과 상기 대상 항목이 아닌 항목을 열 단위로 병합하여 저장하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제3 항에 있어서,
상기 제2 파싱 결과를 저장하는 단계는,
별도의 파일을 생성하고, 상기 별도의 파일에 상기 병합된 결과를 기록하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
상기 다수의 단위 로그를 메모리에 2차원 행렬로 로드하는 단계는,
상기 로그 데이터의 유형에 상응하는 로그 포맷을 식별하는 단계;
상기 로그 포맷에서 인덱싱된 항목을 필요 항목으로서 결정하는 단계; 및
상기 결정된 필요 항목을 포함하는 상기 단위 로그를 상기 제1 파싱하여 상기 메모리에 로드하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
라우팅 홉들의 IP 주소를 포함하는 IP 로깅 정보가 상기 로그 데이터에 포함되어 있는지 여부를 판정하는 단계; 및
상기 로그 데이터에 상기 IP 로깅 정보가 포함되었다는 판정에 응답하여, 상기 IP 로깅 정보에서 IP 주소를 구분하는 구분자를 제거하는 단계를 더 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
상기 대상 항목은, 연월일시가 기록되는 항목이고,
상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 단계는,
상기 연월일시 항목을, 년을 기록하는 제1 서브 항목, 월을 기록하는 제2 서브 항목, 일을 기록하는 제3 서브 항목 및 시를 기록하는 제4 서브 항목 중에서 둘 이상의 서브 항목으로 구분하는 단계를 포함하는,
로그 데이터 파싱 방법. - 제1 항에 있어서,
상기 제2 파싱 대상이 되는 대상 항목을 결정하는 단계는,
상기 제1 파싱되어 상기 메모리에 로드된 항목들 중에서, 상기 제2 파싱이 가능한 하나 이상의 항목을 사용자에게 제공하는 단계; 및
상기 제공된 하나 이상의 항목 중에서 상기 사용자가 선택된 항목을 상기 제2 파싱 대상이 되는 상기 대상 항목으로 결정하는 단계를 포함하는,
로그 데이터 파싱 방법. - 하나 이상의 프로세서;
상기 프로세서에 의하여 수행되는 프로그램을 로드(load)하는 메모리; 및
상기 프로그램이 저장된 스토리지를 포함하되,
상기 프로그램은,
로그 데이터를 제1 파싱하여 식별된 다수의 단위 로그를 상기 메모리에 2차원 행렬로 로드하되, 상기 단위 로그는 복수의 항목을 포함하고 하나의 행을 구성하는 것인 동작;
상기 메모리에 로드된 항목들 중에서 제2 파싱 대상이 되는 대상 항목을 결정하는 동작;
상기 메모리에 상기 2차원 행렬로 로드된 항목들 중에서, 상기 대상 항목의 데이터를 제2 파싱하여 상기 대상 항목의 데이터를 복수의 서브 항목으로 구분하는 동작; 및
상기 복수의 서브 항목을 포함하는 제2 파싱 결과를 저장하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함하는,
컴퓨팅 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210103838A KR20230021894A (ko) | 2021-08-06 | 2021-08-06 | 로그 데이터 파싱 방법 및 장치 |
US17/836,059 US12117967B2 (en) | 2021-08-06 | 2022-06-09 | Method and apparatus for parsing log data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210103838A KR20230021894A (ko) | 2021-08-06 | 2021-08-06 | 로그 데이터 파싱 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230021894A true KR20230021894A (ko) | 2023-02-14 |
Family
ID=85152484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210103838A KR20230021894A (ko) | 2021-08-06 | 2021-08-06 | 로그 데이터 파싱 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12117967B2 (ko) |
KR (1) | KR20230021894A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102616652B1 (ko) * | 2023-04-27 | 2023-12-27 | 쿠팡 주식회사 | 전자 장치 및 그의 로그 데이터 관리 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827411B (zh) * | 2023-06-27 | 2024-03-01 | 北京和德宇航技术有限公司 | 一种载荷数据解析方法、装置、电子设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200026852A (ko) | 2020-02-26 | 2020-03-11 | 넷마블 주식회사 | 로그 데이터 기반의 동시 접속자수 집계 장치 및 방법 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925678B2 (en) * | 2007-01-12 | 2011-04-12 | Loglogic, Inc. | Customized reporting and mining of event data |
CN101286891B (zh) | 2008-05-30 | 2010-11-10 | 杭州华三通信技术有限公司 | 系统日志解析方法及装置 |
KR20120003567A (ko) | 2010-07-05 | 2012-01-11 | 최진환 | 로그 관리 시스템과 이의 로그 처리방법 및 이의 로그 처리방법을 저장하는 기록매체 |
CN106055703B (zh) | 2016-06-22 | 2020-01-14 | 北京科摩仕捷科技有限公司 | 一种日志实时分析方法及系统 |
US11080305B2 (en) * | 2017-06-29 | 2021-08-03 | Accenture Global Solutions Limited | Relational log entry instituting system |
KR101826828B1 (ko) | 2017-08-16 | 2018-03-22 | 주식회사 마크베이스 | 로그 데이터 관리 시스템 및 방법 |
CN109582551B (zh) | 2018-10-11 | 2022-04-26 | 平安科技(深圳)有限公司 | 日志数据解析方法、装置、计算机设备和存储介质 |
US11023671B2 (en) * | 2019-08-08 | 2021-06-01 | Rubrik, Inc. | Data classification using spatial data |
US11113064B2 (en) * | 2019-11-27 | 2021-09-07 | Sas Institute Inc. | Automated concurrency and repetition with minimal syntax |
US11347800B2 (en) * | 2020-01-02 | 2022-05-31 | International Business Machines Corporation | Pseudo parse trees for mixed records |
US11636071B2 (en) * | 2020-01-10 | 2023-04-25 | Salesforce.Com, Inc. | Database replication error recovery based on supervised learning |
CN111949627B (zh) | 2020-08-14 | 2023-12-15 | 深圳市智汇云网络科技有限公司 | 用于表格化日志文件的方法、装置、电子设备和介质 |
US11874937B2 (en) * | 2020-12-30 | 2024-01-16 | Atlassian Pty Ltd | Apparatuses, methods, and computer program products for programmatically parsing, classifying, and labeling data objects |
-
2021
- 2021-08-06 KR KR1020210103838A patent/KR20230021894A/ko active Search and Examination
-
2022
- 2022-06-09 US US17/836,059 patent/US12117967B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200026852A (ko) | 2020-02-26 | 2020-03-11 | 넷마블 주식회사 | 로그 데이터 기반의 동시 접속자수 집계 장치 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102616652B1 (ko) * | 2023-04-27 | 2023-12-27 | 쿠팡 주식회사 | 전자 장치 및 그의 로그 데이터 관리 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20230040539A1 (en) | 2023-02-09 |
US12117967B2 (en) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027540B2 (en) | Automatically determining unpopulated entries of a provisioning template for a hosted computing environment | |
CN108763031B (zh) | 一种基于日志的威胁情报检测方法及装置 | |
CN111274095B (zh) | 日志数据处理方法、装置、设备及计算机可读存储介质 | |
US8838651B2 (en) | Database system testing | |
US10540358B2 (en) | Telemetry data contextualized across datasets | |
JP6919569B2 (ja) | ログ分析システム、方法、及び記録媒体 | |
KR20230021894A (ko) | 로그 데이터 파싱 방법 및 장치 | |
CN103077108B (zh) | 一种对浏览器崩溃进行预警的方法和系统 | |
CN103152229A (zh) | 监控指标项动态配置方法 | |
US20140317137A1 (en) | Log management computer and log management method | |
US20210096981A1 (en) | Identifying differences in resource usage across different versions of a software application | |
US20160098390A1 (en) | Command history analysis apparatus and command history analysis method | |
EP3809269A1 (en) | Monitoring a distributed application server environment | |
CN114116422B (zh) | 一种硬盘日志分析方法、硬盘日志分析装置及存储介质 | |
CN111258973A (zh) | Redis慢日志的存储、展示方法、装置、设备和介质 | |
JP2014056571A (ja) | 条件ベースのメンテナンスシステムで使用するセンサデータおよび計算されたパラメータの格納および検索 | |
CN112612832A (zh) | 节点分析方法、装置、设备及存储介质 | |
WO2020119551A1 (zh) | 基于日志文件的服务性能分析方法、装置及电子设备 | |
WO2016085443A1 (en) | Application management based on data correlations | |
JP6855364B2 (ja) | ログ収集システム及びプログラム | |
US11720591B1 (en) | Virtual metrics | |
US20190042317A1 (en) | Data processing method, distributed data processing system and storage medium | |
CN114168557A (zh) | 一种访问日志的处理方法、装置、计算机设备和存储介质 | |
WO2019230597A1 (ja) | 機能解析装置、機能解析方法および機能解析プログラム | |
JP7074187B2 (ja) | 監視装置、監視方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |