KR102160119B1 - 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 - Google Patents
도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 Download PDFInfo
- Publication number
- KR102160119B1 KR102160119B1 KR1020180144287A KR20180144287A KR102160119B1 KR 102160119 B1 KR102160119 B1 KR 102160119B1 KR 1020180144287 A KR1020180144287 A KR 1020180144287A KR 20180144287 A KR20180144287 A KR 20180144287A KR 102160119 B1 KR102160119 B1 KR 102160119B1
- Authority
- KR
- South Korea
- Prior art keywords
- log
- task
- container
- information
- task characteristic
- Prior art date
Links
Images
Classifications
-
- 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/3409—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 for performance assessment
- G06F11/3414—Workload generation, e.g. scripts, playback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명의 일 실시예에 따르면, 메인 호스트 상에 위치하며 하위 호스트에 각각 위치한 로그 관리 컨테이너로부터 각 컨테이너의 로그를 수집하는 컨테이너 로그 수집기; 수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 로그 데이터 분석기; 및 상기 테스크 특성 로그를 이용하여 각 컨테이너에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 및 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 테스크 특성 추출기를 포함하는 도커 컨테이너 로그 분석 프레임워크 장치를 제공한다.
Description
본 발명의 일실시예는 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법에 관한 것으로, 보다 구체적으로는 다중 호스트에서 동작하는 도커 기반 컨테이너 시스템에서 동작할 수 있는 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법에 관한 것이다.
가상화 기술에 속하는 전가상화와 반가상화는 오버헤드가 크고 종속성이 발생한다는 문제점이 있다. 반면에 컨테이너 개념은 프로세스에서 필요한 자원만을 사용하기 때문에 오버헤드가 상대적으로 적고 실행환경을 컨테이너에 포함시키기 때문에 어느 환경에서도 동일한 동작을 보장한다.
기존 컨테이너 기술은 유닉스 시스템의 chroot 명령어를 통해 간단한 형태의 독립된 파일시스템 형태로 제공되었으며, FreeBSD에서는 이를 프로세스로 확장하는 Jail 유틸리티를 제공하기 시작했다. 구글에서는 리눅스 커널을 위한 CGroups를 개발하였고, 리눅스 컨테이너(LXC) 프로젝트는 CGroups, kernel namespaces, chroot 기술과 합쳐져 컨테이너화 솔루션을 제공하였지만, 기존 유사 컨테이너 기술에 비해 사용이 쉽지 않아 널리 사용되지 못했다. 도커는 기존 리눅스 컨테이너 기술을 차용하였으며, 다양한 확장을 통해 컨테이너의 생성 및 배포가 편리한 솔루션을 제공한다.
도커 기술로 인해 컨테이너 기술에 대한 진입장벽이 낮아지면서 LXC가 다양한 곳에 활용되기 시작했다. 클라우드 서버에는 수많은 모듈이 다양한 호스트에서 실행되어야 한다. 각 모듈은 같은 호스트에서 실행하지 않는 한 동일한 동작을 기대할 수 없으며, 개발환경을 장비 세팅 시마다 구축해야 한다는 번거로움이 있다. 반면 도커를 사용하면, 호스트 환경이 동작에 영향을 주지 않기 때문에 준비된 컨테이너를 실행시키는 것 만으로 원하는 동작을 기대할 수 있다.
Docker Swarm은 도커와 도커머신을 위한 클러스터 관리 툴로, 도커 호스트를 프로비저닝 하는 CLI 툴을 제공한다. 이로 인해 도커가 도커 엔진만을 제공하는 것이 아니라 도커 컨테이너 운영을 위한 통합 솔루션까지 제공하게 되었다.
Kubernetes는 구글에서 개발한 도커 컨테이너 관리 툴로, 클러스터링 기반의 도커 컨테이너 관리 및 로그 수집을 지원한다. 2014년에 처음으로 릴리즈 되었으며, 호스트의 개수나 상태와 상관 없이 API 서버에 요청하는 것으로 관리자가 제어를 할 수 있다. 하지만 다른 툴에 비해 사용이 어렵다.
Marathon은 아파치 메소스(Mesos)를 위한 컨테이너 오케스트레이션 플랫폼이다. 부하분산, 서비스 탐색, 고 가용성 등 여러 특성을 가지고 있지만, 메소스를 탑재한 소프트웨어 스택 상에서만 구동할 수 있다는 단점이 있다.
Logspout은 호스트의 각 컨테이너에 연결되어 해당 컨테이너의 로그를 라우팅하는 오픈소스 프로그램이다. 로그 파일을 직접 관리하는 것이 아니라 사용자가 원하는 로그를 원하는 장소에 두기 위한 모듈이다. JSON, HTTP, UDP 등 다양한 형식으로 출력을 확장할 수 있다는 장점이 있지만, 다중 호스트 환경에서 로그 수집을 지원하지 않는다.
이러한 기존 관리 툴은 도커 컨테이너 자원을 관리하거나 컨테이너의 상태 로그를 수집하는 것 외의 동작을 기대할 수 없으며, 수집된 로그에서 테스크의 특성을 추출하기 위해서는 사용자가 직접 확인하는 것 외에는 방법이 없다. 따라서, 컨테이너 상태에 맞게 자원 관리 정책을 변경하기 위해선 사용자가 직접 개입해야 한다는 단점이 있다.
본 발명이 이루고자 하는 기술적 과제는 다중 호스트에서 동작하는 도커 기반 컨테이너 시스템에서 각 컨테이너에서 수집한 로그 정보를 분석하여 주어진 테스크의 특성을 추출하고 이를 기반으로 효과적인 스케줄링 및 자원 할당 기능을 제공하는 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법을 제공하는데 있다.
본 발명의 일 실시예에 따르면, 메인 호스트 상에 위치하며 하위 호스트에 각각 위치한 로그 관리 컨테이너로부터 각 컨테이너의 로그를 수집하는 컨테이너 로그 수집기; 수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 로그 데이터 분석기; 및 상기 테스크 특성 로그를 이용하여 각 컨테이너에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 및 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 테스크 특성 추출기를 포함하는 도커 컨테이너 로그 분석 프레임워크 장치를 제공한다.
상기 일반 시스템 로그는 응용프로그램 영역의 에러 정보 및 예외 처리 정보중 적어도 하나를 포함할 수 있다.
상기 로그 데이터 분석기는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 포함되었는지 여부에 따라 상기 테스크 특성 로그를 상기 일반 시스템 로그와 분류할 수 있다.
상기 테스크 특성 추출기는 Cpu_stats 명령어를 통하여 전체 cpu의 사용량, 유저모드에서의 cpu 사용량 및 커널모드에서의 cpu 사용량 중 적어도 하나를 분석하여 상기 중앙처리장치(CPU) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
상기 테스크 특성 추출기는 Memory_stats 명령어를 통하여 전체 페이지의 입출력(In/Out) 의 크기, 할당된 컨테이너의 메모리 한계 및 실제 도커 컨테이너가 물리 메모리에서 점유하고 있는 크기 중 적어도 하나를 분석하여 메모리 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
상기 테스크 특성 추출기는 Network_stats를 통하여 송수신된 패킷의 양, 전송 성공 패킷의 수 및 전송 실패 패킷의 수를 분석하여 네트워크 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
상기 테스크 특성 추출기는 Blkio_stats를 통하여 파일 입출력(I/O)에 사용한 총 시간, 실제 사용한 시간, 대기 시간 및 유휴 시간 중 적어도 하나를 확인하여 파일 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
상기 테스크 특성 추출기에서 추출한 테스크 특성 정보를 저장하는 테스크 특성 데이터베이스를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 클러스터에 속한 호스트의 로그 관리 컨테이너로부터 각 컨테이너의 로그를 수집하는 단계; 수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 단계; 및상기 테스크 특성 로그를 이용하여 각 컨테이너에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 및 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 단계를 포함하는 도커 컨테이너의 로그를 이용한 특성 분석 방법을 제공한다.
본 발명인 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법은 다중 호스트 도커 컨테이너 시스템에서 각 컨테이너에서 발생하는 시스템 로그를 통합적으로 수집 및 분석할 수 있다.
또한, 수행되는 각 테스크가 어떤 작업을 위주로 수행하는 지에 대한 특성 정보를 제공할 수 있다.
또한, 제공된 특성 정보에 기반한 로드밸런싱 기법을 통해 효율적인 자원 할당과 작업 부하 분산을 수행할 수 있다.
도1은 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치의 개념도이다.
도2는 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치의 동작을 설명하기 위한 도면이다.
도3은 도커 컨테이너 스탯을 설명하기 위한 도면이다.
도2는 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치의 동작을 설명하기 위한 도면이다.
도3은 도커 컨테이너 스탯을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.
이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도1은 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치의 개념도이다.
도1을 참조하면, 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치(110)는 클러스터(200) 시스템의 메인 호스트(100) 상에 위치하며 클러스터(200) 하위의 호스트(210)들에 위치한 로그 관리 컨테이너(211)로부터 각 일반 컨테이너(212)의 로그들을 수집할 수 있다. 도커 컨테이너 로그 분석 프레임 워크 장치(110)는 수집한 로그들을 테스크 특성 추출에 유의미한 로그와 기타 로그들로 구분하며, 각 테스크가 CPU, 메모리, I/O 중 어떤 것 위주의 작업을 하는지 특징을 추출할 수 있다.
다중 호스트를 사용하는 도커 컨테이너 시스템(1)은 클러스터링 기법을 사용하여 컴퓨팅 자원을 하나처럼 사용한다. 메인 호스트(100)는 로드밸런싱을 통하여 클러스터링 된 호스트(210)의 테스크의 부하를 분산하여 각각의 호스트(210)에 할당할 수 있다.
본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치(110)는 컨테이너 로그 수집기(111), 로그 데이터 분석기(112) 및 테스크 특성 추출기(113)를 포함하여 구성될 수 있다.
컨테이너 로그 수집기(111)는 클러스터(200)에 속한 호스트(210)의 로그 관리 컨테이너(211)로부터 각 컨테이너의 로그를 수집할 수 있다. 컨테이너 로그 수집기(111)는 각각의 호스트(210)의 로그 관리 컨테이너(211)에 의해 수집된 로그들을 수집하여 로그 데이터 분석기(112)로 전달할 수 있다. 컨테이너 로그 수집기(111)는 도커 컨테이너에서 제공하는 컨테이너 모니터 관련 API인 Docker Stats API를 이용하여 로그를 수집할 수 있다. Docker Stats API는 명령어를 통해 실시간으로 실제 자원 사용정보(CPU, 메모리, 네트워크 I/O 및 블록 I/O 등)를 제공할 수 있으며, 컨테이너 로그 수집기(111)는 API에서 제공하는 명령어를 통해 컨테이너의 자원 사용정보로 각 컨테이너 자원의 로그를 수집할 수 있다.
로그 데이터 분석기(112)는 수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류할 수 있다. 로그 데이터 분석기(112)는 컨테이너 로그 수집기(111)를 통해 수집한 로그들을 테스크 특성 추출에 사용되는 테스크 특성 로그인지 일반 시스템 로그인지를 분류할 수 있다. 로그 데이터 분석기(112)는 분류한 테스크 특성 로그를 테스크 특성 추출기(113)로 전달하며, 일반 시스템 로그는 별도로 저장하여 사용자가 컨테이너(212)의 상세한 정보를 모니터링할 수 있게 한다.
본 발명의 실시예에서 일반 시스템 로그는 응용프로그램 영역의 에러 혹은 예외처리와 같은 정보를 포함하는 로그를 의미할 수 있다. 본 발명의 실시예에서 로그 데이터 분석기(112)는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 담겨있는지 확인함으로써 테스크 특성 로그를 일반 시스템 로그와 분류할 수 있다.
테스크 특성 추출기(113)는 테스크 특성 로그를 이용하여 각 컨테이너(212)에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 및 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다. 로그 데이터 분석기(112)를 통해 전달받은 테스크 특성 로그들은 각 컨테이너(212)에서 사용되는 자원 할당에 대한 정보를 포함하고 있다. 테스크 특성 추출기(113)는 테스크 특성 로그에서 해당 정보들을 추출하여 해당 컨테이너(212)에서 수행하고 있는 테스크가 중앙처리장치 작업, 메모리 작업, 입출력 작업 중 어떠한 작업을 위주로 수행하고 있는지 분석한 테스크 특성 정보를 생성하여 테스크 특성 데이터베이스(120)에 저장할 수 있다.
도3은 도커 컨테이너 스탯을 설명하기 위한 도면이다. 도3을 참조하면, 사용정보들은 주기적으로 Stats API 의 명령어를 통해 로그에 기록된다. 테스크 특성 추출기(113)는 로그를 통해 할당된 자원의 사용비중을 파악하여 테스크 특성을 추출할 수 있다.
예를 들면, 중앙처리장치 자원 사용 정보는 Cpu_stats 명령어를 통하여 확인할 수 있다. 테스크 특성 추출기(113)는 Cpu_stats 명령어를 통하여 전체 cpu의 사용량, 유저모드에서의 cpu 사용량, 커널모드에서의 cpu 사용량 등을 확인하여 중앙처리장치(CPU) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
또한, 메모리 자원 사용 정보는 Memory_stats 명령어로 확인할 수 있다. 테스크 특성 추출기(113)는 Memory_stats 명령어를 통하여 전체 페이지의 In/Out 의 크기, 주어진 컨테이너의 메모리 한계, 실제 도커 컨테이너가 물리 메모리에서 점유하고 있는 크기 등을 확인하여 메모리 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
또한, 네트워크 입출력 자원 사용 정보는 Network_stats 명령어로 확인할 수 있다. 테스크 특성 추출기(113)는 Network_stats를 통하여 송수신된 패킷의 양, 전송 성공 패킷의 수, 전송 실패 패킷의 수 등을 확인하여 네트워크 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
또한, 파일의 I/O를 나타내는 Block I/O 자원 사용 정보는 Blkio_stats 명령어로 확인할 수 있다. 테스크 특성 추출기(1130는 Blkio_stats를 통하여 파일 I/O에 사용한 총 시간, 실제 사용한 시간, 대기 시간, 유휴 시간 등을 확인하여 파일 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성할 수 있다.
다시 도1을 참조하면, 테스크 특성 데이터베이스(120)는 테스크 특성 추출기(113)에서 추출한 테스크 특성 정보가 저장되어 있다. 테스크 특성 정보는 도커 컨테이너 생성 요청시 컨테이너 매니저(130)에서 자원 할당 정책을 정하는데 활용될 수 있다. 또한, 테스크 특성 정보는 스케줄링 시에도 활용될 수 있다.
컨테이너 매니저(130)는 로드밸런싱 기법을 통하여 컨테이너 생성시 생기는 부하를 분산시킬 수 있다. 컨테이너 매니저(130)는 테스크 특성 데이터베이스(120)에 저장되어 있는 테스크 특성 정보를 활용하여 컨테이너 매니저(130) 내부에 있는 스케줄러(131)를 통해 로드 밸런싱을 수행할 수 있다.
로그 관리 컨테이너(211)는 호스트 내의 각 컨테이너(212)로부터 발생하는 로그를 수집하는 컨테이너이다. 각 컨테이너(212)에서 syslog를 통해 로그를 호스트(210)에게 전달하면, 로그 관리 컨테이너(211)에서 로그가 저장된 경로에 마운트하여 로그 정보에 접근하고, 수집된 로그들을 로그 데이터베이스(213)로 관리할 수 있다.
도2는 본 발명의 실시예에 따른 도커 컨테이너 로그 분석 프레임워크 장치의 동작을 설명하기 위한 도면이다.
먼저, 클러스터(200) 내의 각 호스트(210)에 위치한 일반 컨테이너(212)는 syslog를 통해 자원 사용량에 관한 정보와 컨테이너에 관한 정보가 담긴 로그를 호스트(210)에 전달한다(S201).
로그 관리 컨테이너(211)는 해당 로그들을 수집하여 로그 데이터베이스(213)를 생성하고 일정한 주기로 메인 호스트(100)에게 전달한다(S202).
메인 호스트(100)에 있는 로그 분석 프레임워크 장치(110)는 컨테이너 로그 수집기(111)를 통하여 각 호스트(210)의 로그 관리 컨테이너(211)가 전달하는 로그들을 일시적으로 저장한다(S203).
로그 데이터 분석기(112)는 저장된 로그들을 테스크 특성 로그와 일반 시스템 로그로 분류된다. 여기서, 일반 시스템 로그는 별도의 컨테이너 모니터링에 사용되거나 타 응용프로그램에 의해 활용될 수 있다(S204).
테스크 특성 추출기(113)는 테스크 특성 로그를 이용하여 테스크의 특성을 추출한다. 테스크 특성 추출기(113)는 해당 테스크가 사용하고 있는 자원에 대한 정보에 기반하여 해당 테스크가 중앙처리장치 위주의 작업인지, 메모리 위주의 작업인지, 또는 입출력 장치 위주의 작업을 수행하는지 판단한다. 테스크 특성 추출기(113)는 전술한 판단 과정을 통하여 테스크 특성 정보를 생성한다(S205).
테스크 특성 데이터베이스(120)는 생성된 테스크 특성 정보를 저장한다(S206).
컨테이너 매니저(130)는 테스크 특성 데이터베이스(120)에 저장된 테스크 특성정보를 활용하여 로드밸런싱을 위한 자원 할당 정책을 갱신한다(S207).
컨테이너 매니저(130)의 스케줄러(131)는 특성 정보에 기반하여 스케줄링 한다(S208).
본 실시예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 테스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 메인 호스트
110: 로그 분석 프레임 워크 장치
111: 컨테이너 로그 수집기
112: 로그 데이터 분석기
113: 테스크 특성 추출기
120: 테스크 특성 데이터베이스
130: 컨테이너 매니저
131: 스케줄러
200: 클러스터
210: 호스트
211: 로그 관리 컨테이너
212: 일반 컨테이너
213: 로그 데이터베이스
110: 로그 분석 프레임 워크 장치
111: 컨테이너 로그 수집기
112: 로그 데이터 분석기
113: 테스크 특성 추출기
120: 테스크 특성 데이터베이스
130: 컨테이너 매니저
131: 스케줄러
200: 클러스터
210: 호스트
211: 로그 관리 컨테이너
212: 일반 컨테이너
213: 로그 데이터베이스
Claims (10)
- 메인 호스트 상에 위치하며 클러스터에 속한 호스트의 로그 관리 컨테이너로부터 각 컨테이너의 로그를 수집하는 컨테이너 로그 수집기;
수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 로그 데이터 분석기;
상기 테스크 특성 로그를 이용하여 각 컨테이너에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 네트워크 입출력 장치 작업 및 파일 입출력 장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 테스크 특성 추출기;
상기 테스크 특성 추출기에서 추출한 테스크 특성 정보를 저장하는 테스크 특성 데이터베이스; 및
상기 테스크 특성 데이터베이스에 저장되어 있는 상기 테스크 특성 정보를 활용하여 내부에 있는 스케줄러를 통해 로드 밸런싱을 수행하는 컨테이너 매니저;를 포함하며,
상기 테스크 특성 추출기는 Cpu_stats 명령어를 통하여 전체 cpu의 사용량, 유저모드에서의 cpu 사용량 및 커널모드에서의 cpu 사용량 중 적어도 하나를 분석하여 상기 중앙처리장치(CPU) 작업으로 분류한 테스크 특성 정보를 생성하고, Memory_stats 명령어를 통하여 전체 페이지의 입출력(In/Out) 의 크기, 할당된 컨테이너의 메모리 한계 및 실제 도커 컨테이너가 물리 메모리에서 점유하고 있는 크기 중 적어도 하나를 분석하여 메모리 작업으로 분류한 테스크 특성 정보를 생성하고, Network_stats를 통하여 송수신된 패킷의 양, 전송 성공 패킷의 수 및 전송 실패 패킷의 수를 분석하여 네트워크 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하고, Blkio_stats를 통하여 파일 입출력(I/O)에 사용한 총 시간, 실제 사용한 시간, 대기 시간 및 유휴 시간 중 적어도 하나를 확인하여 파일 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하며,
상기 로그 데이터 분석기는 수집한 로그를 분석하여 상기 컨테이너 로그 수집기를 통해 수집한 로그들을 테스크 특성 추출에 사용되는 테스크 특성 로그인지 일반 시스템 로그인지를 분류하고, 분류한 테스크 특성 로그를 상기 테스크 특성 추출기로 전달하며, 상기 일반 시스템 로그는 별도로 저장하여 사용자가 상기 컨테이너의 상세한 정보를 모니터링할 수 있게 하되, 상기 일반 시스템 로그는 응용프로그램 영역의 에러 또는 예외처리 정보를 포함하는 로그를 의미하며, 상기 로그 데이터 분석기는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 담겨있는지 확인하여 상기 테스크 특성 로그를 상기 일반 시스템 로그와 분류하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 일반 시스템 로그는 응용프로그램 영역의 에러 정보 및 예외 처리 정보 중 적어도 하나를 포함하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 로그 데이터 분석기는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 포함되었는지 여부에 따라 상기 테스크 특성 로그를 상기 일반 시스템 로그와 분류하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 테스크 특성 추출기는 Cpu_stats 명령어를 통하여 전체 cpu의 사용량, 유저모드에서의 cpu 사용량 및 커널모드에서의 cpu 사용량 중 적어도 하나를 분석하여 상기 중앙처리장치(CPU) 작업으로 분류한 테스크 특성 정보를 생성하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 테스크 특성 추출기는 Memory_stats 명령어를 통하여 전체 페이지의 입출력(In/Out) 의 크기, 할당된 컨테이너의 메모리 한계 및 실제 도커 컨테이너가 물리 메모리에서 점유하고 있는 크기 중 적어도 하나를 분석하여 메모리 작업으로 분류한 테스크 특성 정보를 생성하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 테스크 특성 추출기는 Network_stats를 통하여 송수신된 패킷의 양, 전송 성공 패킷의 수 및 전송 실패 패킷의 수를 분석하여 네트워크 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 테스크 특성 추출기는 Blkio_stats를 통하여 파일 입출력(I/O)에 사용한 총 시간, 실제 사용한 시간, 대기 시간 및 유휴 시간 중 적어도 하나를 확인하여 파일 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 제1항에 있어서,
상기 테스크 특성 추출기에서 추출한 테스크 특성 정보를 저장하는 테스크 특성 데이터베이스를 더 포함하는 도커 컨테이너 로그 분석 프레임워크 장치.
- 클러스터에 속한 호스트의 로그 관리 컨테이너로부터 각 컨테이너의 로그를 수집하는 단계;
수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 단계;
상기 테스크 특성 로그를 이용하여 각 컨테이너에서 수행하고 있는 테스크의 특성을 중앙처리장치(CPU) 작업, 메모리 작업 네트워크 입출력 장치 작업 및 파일 입출력 장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 단계
상기 테스크 특성 정보를 저장하는 단계; 및
상기 테스크 특성 정보를 활용하여 내부에 있는 스케줄러를 통해 로드 밸런싱을 수행하는 단계를 포함하며,
상기 테스크 특성 정보를 생성하는 단계는 Cpu_stats 명령어를 통하여 전체 cpu의 사용량, 유저모드에서의 cpu 사용량 및 커널모드에서의 cpu 사용량 중 적어도 하나를 분석하여 상기 중앙처리장치(CPU) 작업으로 분류한 테스크 특성 정보를 생성하고, Memory_stats 명령어를 통하여 전체 페이지의 입출력(In/Out) 의 크기, 할당된 컨테이너의 메모리 한계 및 실제 도커 컨테이너가 물리 메모리에서 점유하고 있는 크기 중 적어도 하나를 분석하여 메모리 작업으로 분류한 테스크 특성 정보를 생성하고, Network_stats를 통하여 송수신된 패킷의 양, 전송 성공 패킷의 수 및 전송 실패 패킷의 수를 분석하여 네트워크 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하고, Blkio_stats를 통하여 파일 입출력(I/O)에 사용한 총 시간, 실제 사용한 시간, 대기 시간 및 유휴 시간 중 적어도 하나를 확인하여 파일 입출력장치(I/O) 작업으로 분류한 테스크 특성 정보를 생성하는 단계를 포함하고,
상기 수집한 로그를 분석하여 테스크 특성 로그 및 일반 시스템 로그로 분류하는 단계는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 담겨있는지 확인하여 수집한 로그들을 테스크 특성 추출에 사용되는 테스크 특성 로그인지 일반 시스템 로그인지를 분류하고, 분류한 테스크 특성 로그를 테스크 특성 추출기로 전달하고, 상기 일반 시스템 로그는 별도로 저장하여 사용자가 상기 컨테이너의 상세한 정보를 모니터링할 수 있게 하는 단계를 포함하며,
상기 일반 시스템 로그는 응용프로그램 영역의 에러 또는 예외처리 정보를 포함하는 로그를 의미하는 도커 컨테이너의 로그를 이용한 특성 분석 방법.
- 제9항에 있어서,
상기 테스크 특성 로그 및 일반 시스템 로그로 분류하는 단계는 일반 컨테이너에 할당된 자원에 관한 정보가 로그에 담겨있는지 확인함으로써 테스크 특성 로그를 일반 시스템 로그와 분류하는 도커 컨테이너의 로그를 이용한 특성 분석 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180135528 | 2018-11-07 | ||
KR1020180135528 | 2018-11-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200052798A KR20200052798A (ko) | 2020-05-15 |
KR102160119B1 true KR102160119B1 (ko) | 2020-09-25 |
Family
ID=70679194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180144287A KR102160119B1 (ko) | 2018-11-07 | 2018-11-21 | 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102160119B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USD988166S1 (en) * | 2020-11-03 | 2023-06-06 | Augustin Jungmin Koh | Electronic timer whistle |
KR102282755B1 (ko) * | 2020-11-27 | 2021-07-29 | 주식회사 비아이티 | 컨테이너 기반 유전체 분석 솔루션 제공 방법, 장치 및 시스템 |
CN112527459B (zh) * | 2020-12-16 | 2024-03-26 | 新浪技术(中国)有限公司 | 一种基于Kubernetes集群的日志分析方法及装置 |
CN116155706A (zh) * | 2023-02-15 | 2023-05-23 | 杭州云合智网技术有限公司 | 转发芯片的表项操作信息管理方法、装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936601B1 (ko) * | 2008-05-15 | 2010-01-13 | 재단법인서울대학교산학협력재단 | 멀티 프로세서 시스템 |
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
KR101810762B1 (ko) * | 2015-12-07 | 2017-12-19 | 한양대학교 에리카산학협력단 | 클라우드 환경에서 hdfs 기반의 도커 컨테이너 보안 로그 분석 방법 및 시스템 |
KR102016238B1 (ko) * | 2017-12-05 | 2019-08-29 | 숭실대학교산학협력단 | 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체 |
-
2018
- 2018-11-21 KR KR1020180144287A patent/KR102160119B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
‘[Docker]완벽한 IT 인프라 구축을 위한 Docker: 제3장 Docker의 설치 방법과 기본 커맨드’, https://miiingo.tistory.com/89?category=644188, 2018.01.30.* |
Also Published As
Publication number | Publication date |
---|---|
KR20200052798A (ko) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102160119B1 (ko) | 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 | |
CN107689953B (zh) | 一种面向多租户云计算的容器安全监控方法及系统 | |
US10922205B2 (en) | Monitoring applications running on containers | |
KR101810762B1 (ko) | 클라우드 환경에서 hdfs 기반의 도커 컨테이너 보안 로그 분석 방법 및 시스템 | |
US8589555B2 (en) | Virtualization and consolidation analysis engine for enterprise data centers | |
KR101984714B1 (ko) | 가상화 자원 모니터링 시스템 | |
US9866481B2 (en) | Comprehensive bottleneck detection in a multi-tier enterprise storage system | |
US10009251B1 (en) | Tuple traffic management | |
US20200026560A1 (en) | Dynamic workload classification for workload-based resource allocation | |
US9298849B2 (en) | Managing a template in an operator graph | |
US9135078B2 (en) | Configuration information management server, configuration information management method and configuration management program | |
US10754866B2 (en) | Management device and management method | |
WO2014090070A1 (en) | Method and system for managing servers | |
US20160321009A1 (en) | Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine | |
Poggi et al. | ALOJA: A systematic study of hadoop deployment variables to enable automated characterization of cost-effectiveness | |
KR20190081306A (ko) | 빅데이터 분석 소프트웨어에 대한 자원 할당 방법, 상기 방법을 이용하는 가상화 자원 할당 장치 | |
Fan et al. | Improving MapReduce performance by balancing skewed loads | |
Diallo et al. | AutoMigrate: a framework for developing intelligent, self-managing cloud services with maximum availability | |
Huang et al. | OOOPS: An innovative tool for IO workload management on supercomputers | |
Chen et al. | Docker container log collection and analysis system based on ELK | |
Pătraşcu et al. | Logging framework for cloud computing forensic environments | |
Bhattacharya et al. | Performance modeling for I/O‐intensive applications on virtual machines | |
CN104899078A (zh) | 一种虚拟机环境下的审计系统与方法 | |
Hoppe et al. | Towards seamless integration of data analytics into existing HPC infrastructures | |
US10992742B2 (en) | Managing asset placement with respect to a distributed computing environment having a set of hosts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |