마크베이스 사용사례


 

초고속 IoT DB의 콤팩트한 가성비 : D 방화벽 어플라이언스 임베딩 적용

작성자
susan hong
작성일
2019-02-26 11:25
조회
32

네트워크 보안장비에서는 하루에도 수 많은 이벤트 로그가 쌓입니다. 


이러한 로그들은 모두 수집, 저장, 분석, 대응에 이르기 까지 일련의 과정을 거쳐


필요한 곳만 빠르게 보안조치를 취하기 까지는 어쩔 수 없이 일정 시간이 소모됩니다.


이에 걸리는 시간을 줄여야만 지능형 보안 위협에 효과적으로 대응할 수 있겠죠. 


 


마크베이스는 데이터를 초 단위 미만으로, 나노 세컨드까지 수집, 저장 할 수 있는 컬럼형 디스크 기반의 데이터베이스 입니다.


네트워크와 방화벽 등으로부터 발생하는 엄청난 양의 로그를 실시간으로 수집하고 저장, 분석할 수 있도록 지원합니다. 


 


실제 마크베이스를 사용하고 있는 고객 중엔 방화벽 어플라이언스를 공급하는 고객사 D가 있습니다. 


이 고객은 한정된 자원과 함께 방화벽의 효율을 높이기 위해 마크베이스 도입을 결정하였습니다. 


 


방화벽 고객의 요구사항 


방화벽을 더 효율적으로 사용할 수 있는 방법은 없을까? 


방화벽의 뛰어난 보안 성능 이상의 고객이 쉽게 로그를 분석하고 리포트를 출력하는 기능 


왜 방화벽에서 로그를 검색하는 데 오랜 시간이 걸릴까요?


방화벽에서 지원하는 대시보드는 왜 단순한 내용만 가능할까요? 


로그 기반의 리포트 작성을 위해서는 다양한 통계 자료가 필요한데 말이죠... 


로그 분석 및 리포팅을 위해 별도의 솔루션을 구매해야 하나요? 


 


서버 환경 제약


CPU3, Memory 3GB .. 이 서버 내에서 초당 10만 건의 방화벽 로그를 빠르게 입력해야 하는 미션! 


과연 가능할까요.


조금만 데이터를 입력해도 될동말동한 이 제한적인 서버 자원 내에서 구동이 가능하게끔 해야 하는 것이 마크베이스의 임무(!)입니다. 


 



 


방화벽은 일반서버와 다르게 한정된 자원을 여러 서비스 데몬 (Service Daemon)이 나누어 사용합니다. 


그렇기 때문에 하드웨어 사양을 바로 바로 쉽게 확장할 수는 없는 구조입니다. 


게다가 방화벽은 무척 한정된 서버 자원으로 운영하기 때문에 고속의 대량 로그 데이터가 입력될 경우 효율적인 운영 자체에 위협이 되기도 합니다. 


 



 


방화벽 필요 요소 


◎ 하드웨어 성능 


초기 방화벽 설계 시 하드웨어 사양이 결정되어 추후에는 확장이 불가능한 게 일반적입니다. 


하드웨어의 한계에 따른 자원 문제가 수반될 수 있습니다. 


◎ 하드웨어 안정성 


설계 시 최상의 성능 보다는 물리적인 안정성을 중심으로 설계가 고려됩니다. 


◎ 저장 공간 


분배된 자원의 효율적인 사용 문제를 해결해야 합니다.


하드웨어 확장이 불가능하기 때문에 저장 공간을 효율적으로 분배해야 합니다. 


◎ 요구사항 



  • 저장된 로그에 대하여 빠른 검색을 지원해야 합니다. 

  • 로그에 대한 다양한 통계 데이터를 추출해야 합니다. 

  • 대시보드와 리포팅을 위한 로그 분석이 가능해야 합니다. 

  • 한정된 자원에서 원활하게 동작하여야 합니다. 


 


기존 로그 저장 아키텍처 


각 Service Daemon 에서 발생하는 로그에 대하여 파일로 저장 


주요 통계 자료에 대하여 META 정보를 별도로 저장 



 


기존 로그 활용 아키텍처


대시보드는 RRD, 리포트와 로그 검색은 META 데이터를 활용합니다. 



 


 


로그 저장 아키텍처 개선 


로그를 Machbase에 저장하고 다수의 META Table을 생성하여 활용합니다. 



 


시스템 자원의 설정 


방화벽의 주 목적인 보안 기능을 위하여 Machbase 의 시스템 자원을 제한하고


설정된 범위 이상으로 자원 사용을 제한해야 합니다. 


Machbase의 환경 설정 값을 통해, CPU, Memory 사용을 통제할 수 잇습니다.



  • CPU_COUNT : CPU 개수를 지정 

  • CPU_AFFINITY_BEGIN_ID  지정된 CPU ID 부터 동작 

  • PROCESS_MAX_SIZE : 사용할 수 있는 Memory 크기 제안 


Disk 에 로그를 저장 중 Disk Full (디스크 꽉참) 으로 인하여 DB가 정지되는 것을 막기 위하여 마크베이스는 저장 공간의 Disk Full 발생 시 데이터의 저장을 중지하고 동작하면서 Disk  공간이 생기면 다시 데이터를 저장하도록 지원하고 있습니다. 


 


로그 저장 방식 


방화벽 Daemon 에서 발생하는 로그를 로그 관리 Daemon 에서 각 Daemon마다 Thread를 생성하여 로그 종류에 따라 여러 테이블에 저장합니다. 



 


빠른 응답 


저장되는 Data의 종류에 따라 MinMax Cache를 사용하고 HashBucket Size를 조정하여 쿼리 속도를 향상시킵니다. 


MinMax Cache를 통하여 저장된 Data의 각 파일의 Min 값과 Max 값을 확인하여 불필요한 File Scan 비용을 줄입니다



  • 순차적으로 저장되는 데이터

  • 분산도가 높은 데이터

  • Table 을 생성할 때 각 컬럼에 설정하여 사용합니다. 


Group by 절이 포함되는 질의 혹은 Distinct 질의 혹은 count (distinct count) 절을 갖는 질의를 처리하기 위해 마크베이스는 Hash Table을 생성하여 사용하며 이 때 출력되는 결과 값이 Hash Table 의 크기 보다 클 경우 쿼리 속도에 문제가 있으므로 적절한 크기로 설정해야 합니다. 


 


백업 


방화벽 특성상 기본 DB에서 지원하는 Backup과 Restore는 사용하기 어렵습니다. 


방화벽에 맞는 일 단위 (Daily)의 Backup 및 새로운 Mount 기능을 사용합니다. 



 


도입효과 


마크베이스 DB로는 세계 최초로 방화벽 어플라이언스에 고속 로고 저장 목적을 위해 도입된 혁신적 사례입니다. 


기존 Firewall에서 처리하기 힘들었던 대용량 로그의 검색 및 다양한 항목의 리포팅이 제공되어 이로 인하여 고객의 제품 만족도가 상승하였습니다. 



  • 로그를 File에서 DB로 저장하여 빠른 로그 검색이 가능해졌습니다. 

  • 다양한 통계 정보를 바탕으로 다양한 항목의 대시보드 및 리포팅을 생성할 수 있습니다. 

  • 다양한 로그의 조합을 통한 보안 이벤트의 상관 분석을 할 수 있습니다. 

  • 제약된 장비 환경에서 고성능의 입력 및 분석을 제공합니다.