개요

주요 특징

로그프레소 테이블(또는 테이블)은 로그프레소 플랫폼이 수집한 데이터를 저장하는 논리적 저장소입니다. 로거를 통해 시작된 데이터 스트림의 최종 목적지는 테이블이 됩니다. 로거에서 직접 데이터를 저장할 테이블을 지정할 수도 있고, 스트림 쿼리를 통해 스트림을 특정한 테이블에 저장하도록 할 수도 있습니다.

테이블 관리 기능은 테이블에서 이용할 수 있습니다.

테이블 관리 화면

첫 화면에서 보여주는 속성은 다음과 같습니다.

  • 이름: 테이블 이름
  • 최근 로그 일자: 테이블에 저장된 가장 최근 데이터의 수집 날짜
  • 사용량: 테이블의 디스크 사용량 표시
  • 비율: 저장된 전체 테이블 크기에 대한 각 테이블의 사용률 표시(단위: %)

테이블은 다음과 같은 특성이 있습니다.

  • 테이블에 기록하는 데이터는 압축되어 저장됩니다.
  • 민감한 정보가 저장되는 테이블을 보호(기밀성, 무결성)할 수 있도록 암호화 기능을 테이블 단위로 적용할 수 있습니다.
  • 고성능 암호화/복호화 알고리즘을 이용하므로 데이터의 입출력 과정에서 성능 저하가 발생하지 않습니다.
  • 저장할 데이터의 구조와 무관하게 모든 데이터는 수집된 날짜 단위로 파티션되어 저장됩니다.
  • 블룸 필터와 역인덱싱 방식으로 인덱스를 생성하고 관리합니다.

테이블 트리

화면의 왼편은 테이블 트리를 보여줍니다. 이 목록에서 테이블을 선택하면 화면 오른편에서 테이블의 속성을 확인하고 조회하거나 관리 작업을 수행할 수 있습니다.

네임스페이스

로그프레소 플랫폼이 여러 대의 로그프레소 서버로 페데레이션을 이루고 있는 경우, 각 노드는 독립된 네임스페이스를 갖습니다. 테이블 트리는 각 페데레이션 노드를 정점으로 해서 여러 개가 표시됩니다. 단독실행형으로 동작할 때에는 로컬 노드만 트리에 나타납니다.

테이블 트리 - 로컬 노드와 페데레이션 노드

쿼리 명령어 중에서 table은 테이블에 기록된 데이터를 출력합니다. 이 명령어의 문법에서 페데레이션 노드의 테이블을 대상으로 명령을 수행하려면 테이블의 이름을 네임스페이스:로거_이름 형식으로 사용합니다.

table [OPTIONS] [NODE:]TABLE, ...

예를 들어 로컬의 araqne_query_logs 테이블은 노드가 로컬이므로 "table araqne_query_logs"과 같이 테이블 조회 쿼리 명령을 작성하고, 페데레이션 노드인 thor에 있는 araqne_query_logs 테이블 데이터를 조회하려면 "table thor:araqne_query_logs"과 같이 작성하십시오.

앱에 종속적인 테이블

테이블 목록은 사용자가 진입한 "공간"에 따라 다르게 보일 수 있습니다. 다음 그림에서 왼편은 전역 공간에서 테이블 트리를 조회한 모습입니다. 사용자는 전역 공간에서 로그프레소 플랫폼의 모든 테이블을 조회할 수 있습니다. 그러나 오른편은 아파치 웹 로그의 앱 공간에서 테이블 트리를 조회한 모습입니다. 사용자가 앱 공간에서 확인할 수 있는 테이블은 앱에서 사용하는 것들로 제한됩니다. 또한 인덱스가 있는 테이블은 접혀 있는 테이블 트리를 확장하면 인덱스에 대한 정보를 보여줍니다.

테이블 트리 - (왼쪽) 전역 공간 테이블 트리, (오른쪽) 앱 공간 테이블 트리