효과적인 IT 시스템 모니터링은 IT 실패로 인한 비즈니스 위협을 최소화하기 위해 필수적인 분야다. 여러 시스템 모니터링 방법이 있지만, 로그 관리는 IT 모니터링의 핵심으로서 시스템 활동의 상세 기록을 통해 문제를 해결하고 보안을 강화하게 해준다.
로그 관리는 IT 시스템에서 생성되는 모든 이벤트 기록을 수집, 저장, 분석하는 과정이다. 로그는 서버, 애플리케이션, 네트워크 장비 등 다양한 소스에서 생성되며, 상세한 ‘디지털 흔적’을 제공한다. 로그 데이터는 문제 해결, 성능 최적화, 보안 분석, 규정 준수 증명 등 다양한 목적으로 활용될 수 있어 엔드투엔드 옵저버빌리티를 확보하기 위한 출발지점이다.
로그 데이터는 단순한 이벤트 기록을 넘어, 시스템 행동 패턴, 사용자 활동 추세, 애플리케이션 성능 변화 등에 대한 깊은 통찰력을 제공할 수 있다. 로그를 분석함으로써 IT팀은 데이터에 기반한 의사결정을 내릴 수 있게 된다.
최병주 엘라스틱코리아 상무(표지 사진)는 23일 <바이라인네트워크>가 개최한 ‘AI 기반 옵저버빌리티와 최신 클라우드 네이티브 운영 전략’ 주제의 웨비나에서 ‘ELK 스택을 활용한 로깅 시작하기’를 주제로 발표했다.
최병주 상무는 “엘라스틱은 단일 스택에서 옵저버빌리티, 시큐리티, 검색 등을 제공한다”며 “데이터 소스를 검색하고 분석하는 엘라스틱서치와 시각화를 위한 키바나, 그리고 다양한 통합 기능으로 데이터를 수집하는 엘라스틱에이전트가 있다”고 소개했다.
최병주 상무는 “로그 메시지를 보는 가장 일반적인 방법이라면 테일에프(tail -f)로 로그 스트리밍을 보는 방법이 있다”며 “이 외에 커맨드라인에서 grep이나 cat을 사용하거나 에디터에서 로그를 보거나 명령어 조합으로 볼 수 있는 등 로그와 소통할 방법은 많다”고 말했다.
그는 “커맨드라인에 능숙하다면 쉽고 간단하게 쓸 수 있는 방법이지만, 호스트가 다양해지거나 실행되는 앱 숫자가 늘어나면 사용하기 어렵고 복잡하다”고 설명했다.

그는 “만약 앱이 5개 호스트로 분산돼 있다면, 터미널 5개를 열어야 하고, 클라우드 앱이나 마이크로서비스가 다수 존재하면 가용성과 확장성이 떨어질 수밖에 없다”며 “서버 각각에 여러 POD를 실행할 수도 있고, 각 POD마다 여러 컨테이너가 있을 수 있으며, 더 넓히면 퍼블릭 클라우드의 서버리스나 기타 서비스를 사용하면서 각각의 고유한 개념과 로그 소통 방식이 있게 된다”고 덧붙였다.
로그 데이터는 시스템 장애나 성능 저하 발생 시 원인을 정확히 파악하는 기초자료다. 오류 메시지, 경고, 이벤트 타임스탬프 등의 정보는 문제의 근본 원인을 추적하는 데 중요한 단서를 제공한다. 로그를 분석하면 장애의 정확한 시점, 영향을 받은 구성 요소, 연관된 이벤트 등을 파악할 수 있다.
지속적으로 로그 데이터를 모니터링하면 잠재적 문제를 사전에 감지할 수 있게 된다. 특정 패턴이나 추세를 분석함으로써 시스템 장애의 징후를 파악하고 예방적 조치를 취할 수 있다. 많은 산업 규제 및 데이터 보호법에서 조직이 특정 로그 데이터를 수집, 보관, 분석할 것을 요구한다. 로그는 누가, 언제, 어떤 데이터에 접근했는지를 증명하는 ‘감사 추적(audit trail)’을 제공해 규정 준수 감사에 대비할 수 있게 한다.
로그 관리의 첫 단계는 데이터 수집이다. 그렇게 수집한 로그 데이터를 하나의 저장소에 모으고 통합 관리하는 게 효율적이다. 중앙 집중식 로그 관리는 통합된 가시성을 제공하며, 다양한 소스의 데이터를 연관시켜 복잡한 문제의 근본 원인을 효율적으로 분석하게 한다.
엘라스틱은 데이터를 확보하고 시각화며, 검색할 수 있도록 중앙집중식으로 데이터를 가져오는 쉽고 간단한 방법을 제공한다. 엘라스틱 에이전트를 각 호스트에 배포하면, 에이전트는 모든 로컬 데이터를 읽고 메트릭을 수집한다. 여러 소스에서 데이터를 수신하거나 API 데이터를 수집해 다양한 데이터를 읽어올 수 있다. 여러 엘라스틱 클러스터가 있는 복잡한 구성에서 ‘크로스 클러스터 서치’ 기능을 이용해 어떤 환경이든 단일 클러스터를 구성해 모든 데이터를 한 곳에서 볼 수 있다.

최병주 상무는 로그 관리를 위한 즉각적인 요구사항으로 다양한 소스를 위한 간편한 설정, 상호 연관성 및 상호 참조, 검색 필터링 및 하이라이드, 시각화, 이상징후 탐지 및 알림, 유연한 보관기간 등을 꼽았다.
최 상무는 “로그 관리를 위해선 다양한 소스를 쉽게 설정할 수 있어야 한다”며 “인프라 전반에 걸쳐 많은 데이터를 보유하고, 자체 수행해야 하는 여러 작업을 간단히 시스템으로 가져올 수 있어야 한다”고 설명했다.
그는 “데이터를 상호 연관시키고, 상호 참조 할 수 있도록 여러 호스트에서 실행되는 데이터를 한 화면에서 볼 수 있는 방법이 필요하며, 데이터를 검색하고 필터링하며 강조표시할 수 있어야 하고, 추세를 살피고 이상 값을 살피기 위해 시각화 할 수 있어야 한다”고 말했다.
이어 “이상 징후 감지와 알람도 중요하고, 유연한 보존기간을 설정해 데이터를 중요도에 따라 관리해야 한다”고 덧붙였다.
엘라스틱 매니지먼트 메뉴에서 ‘인티그레이션’으로 들어가면 265개의 통합 가능한 요소를 볼 수 있다. 여기서 특정 요소를 선택하면 바로 설정을 시작하고, 설정을 개별 배포하지 않고 키바나 UI에서 로그 확인이 가능하다.
최 상무는 구조화되지 않은 비정형 데이터만 활용해도 유용한 로그 분석이 가능하다고 소개했다. 그는 “엘라스틱 로그 메시지 파싱이 복잡하고 어렵다는 얘기를 많이 듣는데 비정형 데이터로도 충분히 괜찮다”며 “서비스 중단이나 이슈 조사에서 비정형 데이터 형태의 로그만 있어도 유용하게 활용할 수 있다”고 설명했다.
그는 인터넷 쇼핑몰에서 특정 서비스의 오류를 구조화되지 않은 로그 데이터만으로 찾아내는 예시를 시연했다. 엘라스틱서치의 검색을 통해 특정 서비스를 찾고, 로그의 메타데이터로 필터를 추가하면서 범위를 좁혔다. 최종적으로 특정한 히트에서 크래시 로그를 찾아낼 수 있었다.
최 상무는 “비정형 데이터만 갖고도 엘라스틱서치와 키바나의 풀텍스트 검색기능으로 신속하게 원인을 찾을 수 있다”며 “모든 데이터를 일일이 파싱하지 않아도 되므로, 어떤 데이터는 사용할 수 있는 상태로 갖고 확보하는 게 좋다”고 말했다
엘라스틱은 로그의 메타데이터를 매우 중요하게 다룬다. 최 상무는 “메타데이터는 매우 중요하고, 자동화나 적은 노력으로 수집할 수 있으며 저장 비용도 저렴하다”며 “엘라스틱서치는 빌트인된 설정이 많아서 별도 설정 없이 바로 사용가능하다”고 설명했다.
그는 “메타데이터는 반복되고 중복되기 때문에 모든 값의 일반적 변경이 적고 압축도 잘된다”며 “엘라스틱서치에 내장된 압축 기능으로 효율적으로 저장 가능하다”고 강조했다.
구조화되지 않은 비정형 데이터라도 로그를 확보하도 되지만, 구조화된 형식으로 만들어두면 조회뿐 아니라 문서 기반으로 계산하는 경우에 유효하다.
구조화된 로그 데이터는 엘라스틱 플랫폼의 ‘인제스트 파이프라인’을 이용하면 된다. 그리고 ‘런타임필드’로 데이터 파싱을 하면 재색인 없이 기존 문서에 필드를 추가하고 데이터 구조 이해 없이도 바로 데이터 작업을 시작할 수 있다. 필드 값 재정의가 가능하며, 스키마 수정없이 특정 용도의 필드 정의를 즉석에서 할 수 있다. 런타임 필드 대신 인제스트 파이프라인을 사용하면 로그 레벨 등의 요소를 파이프라인으로 추가해 사용할 수 있다.
최상무는 이어 ‘인리치먼트’ 기능을 소개했다. 문서의 일부 정보를 기반으로 문서에 추가 데이터를 넣는 기능이다. 일례로 ‘GeoIP 인리치먼트’를 활용해 클라이언트 IP를 수집할 수 있을 때 발생국가, 좌표 등 메타데이터를 추가할 수 있다. GeoIP는 조사나 분석에 도움을 주는 메타데이터다.
또한 ‘커스텀 애플리케이션 로깅’도 소개했다. 최 상무는 “이상적인 로깅 환경은 앱 로그를 JSON 형태로 로깅하고, 구조가 ECS와 호환되도록 호환 스키마를 준수해야 하며, ECS를 준수하기 위해 로깅 라이브러리를 이용하면 쉽다”며 “ECS는 파싱을 단순화하며 엘라스틱은 ECS를 이해하고 자동 작업해 수동 파싱을 할 필요가 없다”고 말했다.
그는 “이렇게 되면 JSON도 사람이 읽기 쉬워지고, 키바나 UI에서 조화롭게 불러올 수 있게 된다”며 “여러 서비스와 조직이 있는 경우 공통 스키마를 쓰면 데이터를 상호 연관시키기 좋고, 필드 이름이 일관적이어서 재사용성이 좋아진다”고 했다.
이어 “APM와 로그 간 코릴레이션도 지원해 특정 시점 APM 트레이스를 추적하면서 해당 트레이스 연관 로그만 쉽게 찾아볼 수 있다”고 강조했다.
그는 커스텀 로깅 권장사항으로 일반적 형태의 로그보다 iso8601 타임스탬프라도 갖춰야하며, 그보다 JSON, 가장 좋은 건 엘라스틱의 로깅 라이브러리를 사용하는 것이라고 했다. 모든 로그는 중요하다고 보고 의미있는 메시지를 기록하고, 무언가 기록할 때마다 최종적으로 읽는 사람이 이해하도록 암호화해 기록하지 말라고 조언했다. 또 최대한 많은 로그를 확보하고, 가능한 민감 정보를 기록하지 않는 게 좋다고 덧붙였다.
최 상무는 마지막으로 로그 관리 권장사항을 제시했다.
그는 “기본 인덱스 수명주기 정책을 변경하길 바라며, 하나의 수명주기로 전체 로그를 관리하지 말고 소스별로 다른 보존기간을 설정하는 게 좋다”며 “프로즌 인덱스는 스냅샷 저장 데이터를 활용해 저렴한 비용으로 검색에 사용할 수 있어 좋고, 적절한 역할기반접근제어(RBAC)를 사용해 조직에 아무도 사용않는 로그의 존재를 확인하고 아무도 쓰지 않으면 접근을 차단하라”고 말했다.
이어 “메타데이터는 매우 중요하고 종종 무료 혹은 적은 비용으로 큰 효과를 보게 한다”며 “가능한 많은 데이터 기록하고, 비정형 데이터 자체만으로도 좋으며, 가능한 로깅 라이브러리를 사용하라”고 조언했다.
글. 바이라인네트워크
<김우용 기자>yong2@byline.network