Kibana를 처음 접했을 때 Discover 화면에 나열된 수십 개의 필드를 보고 막막했다. 각 필드가 무슨 의미인지 모르겠고 어떤 걸 선택해야 제대로 모니터링할 수 있는지도 감이 오지 않았다. 하지만 기본적인 목적은 단 하나다. 우리가 수집한 로그에서 중요한 정보를 빠르게 확인하고 이상 징후를 감지하거나 분석할 수 있어야 한다. Kibana에서 어떤 필드를 중점적으로 보고 어떤 목적에 어떻게 활용하는지를 정리해보자.
Kibana의 Discover 탭은 Elasticsearch에 저장된 로그 데이터를 실시간으로 탐색할 수 있는 공간이다. 실질적으로 로그 분석의 80% 이상은 이곳에서 이루어진다. 다양한 필드를 기준으로 검색, 필터링, 정렬이 가능하고 가장 중요한 것은 여기서 문제의 조짐을 빠르게 포착할 수 있다는 점이다.
수많은 필드 중 자주 사용되는 핵심 필드는 다음과 같다.
필드명 | 설명 | 주요 용도 |
---|---|---|
@timestamp | 로그 수집 시간 | 시간 필터링, 시각화 기준 |
message | 로그 본문 | 에러 내용, 키워드 검색 |
log.level 또는 level | 로그 심각도 | ERROR만 필터링 등 |
log.file.path | 로그 파일 경로 | 어떤 서비스에서 발생했는지 확인 |
agent.hostname | 로그를 보낸 서버 이름 | 장애 서버 식별 |
cloud.region , cloud.instance.id | 클라우드 인프라 정보 | 특정 리전/인스턴스 장애 파악 |
이 필드들을 기준으로 쿼리를 작성하거나 필터를 적용하면 원하는 로그만 선별해서 확인할 수 있다.
KQL은 Kibana에서 사용하는 검색 언어로 SQL처럼 복잡하지 않고 직관적이다. 필드명: 조회값
형태로 조회하면 되고 and
, or
조건 등을 줄 수도 있다.
Discover 화면 상단에는 GUI로 조건을 추가할 수 있는 필터 패널이 있다. KQL을 몰라도 필드명을 클릭하고 -> Add Filter -> 조건 선택
만으로 필터링이 가능하다.
이렇게 필터를 해서 확인을 할 수 있다.
Pin across all apps를 통해 Dashboard, Visualization 등 모든 앱에 적용할 수 있다.
Discover 우측 상단의 Time Picker를 통해 날짜/시간 정보를 조작할 수 있다. 특정 시간대의 로그만 보고 싶을 때 유용하며 실시간 모니터링 외에도 과거 이슈 분석에 매우 유용하다.
Kibana의 Discover 탭은 단순한 로그 나열 도구가 아니라 로그의 핵심을 빠르게 파악하고 문제를 진단하는 데 가장 강력한 도구라는 것을 배웠다. 처음에는 필드가 너무 많아 막막했지만 @timestamp
, message
, log.level
, log.file.path
처럼 핵심 필드를 기준으로 필터링과 검색을 적용하니 필요한 정보를 빠르게 찾을 수 있었다. 특히 KQL과 필터 패널을 병행해 사용하면 초보자도 손쉽게 원하는 로그만 추려볼 수 있어 실무에 바로 활용 가능하다는 점이 인상 깊었다. 또한 Time Picker 기능을 활용하면 특정 시간대의 로그를 손쉽게 추적할 수 있어 장애 시간대나 이벤트 발생 직후의 로그를 분석하는 데 매우 유용했다. Kibana는 단순히 데이터를 보여주는 툴이 아니라 운영 중인 시스템을 이해하고 예기치 못한 상황을 사전에 감지하는 데 필수적인 분석 툴이라는 것을 체감했다.
참고