본문으로 건너뛰기

"observability" 태그로 연결된 2개 게시물개의 게시물이 있습니다.

모든 태그 보기

Data Query로 조회하는 Cloud Trail과 DNS 리졸버 로그

· 약 5분
Erin (오예진)
Cloud Engineer
Tutorial new release

운영 환경에서 로그는 장애를 진단하고 보안을 점검하는 기준 데이터입니다. 다만 로그를 저장해두는 것만으로는 충분하지 않습니다. 필요한 시점에 원하는 조건으로 빠르게 조회할 수 있어야 실제 운영 문제를 분석하고 원인을 파악하는 데 활용할 수 있습니다. 특히 감사와 진단에 반복적으로 활용되는 로그는, 처음부터 저장 위치와 파일 구조, 조회 방식을 함께 고려하는 것이 중요합니다.

이번에 추가된 두 개의 튜토리얼은 Object Storage에 저장된 운영 로그를 Data CatalogData Query를 활용해 SQL로 조회하고 분석하는 방법을 다룹니다.

두 문서는 같은 데이터 분석 아키텍처를 사용하지만, 살펴보는 운영 관점은 조금 다릅니다. 하나는 사용자 활동과 리소스 변경 이력을 바탕으로 한 보안 감사와 변경 추적이고, 다른 하나는 VPC 내부의 DNS 질의 흐름을 바탕으로 한 네트워크 진단입니다. 이에 따라 분석 대상도 각각 Cloud Trail 로그DNS 리졸버 쿼리 로그가 됩니다.

운영 로그 저장 → Object Storage → Data Catalog → Data Query

즉, 분석 대상 로그는 서로 다르지만, Object Storage에 로그를 저장한 뒤 Data Catalog에서 테이블 메타데이터를 구성하고, Data Query에서 SQL로 조회하는 과정은 동일합니다.

이번 포스트에서는 각 로그가 어떤 운영 상황에서 유용한지 살펴보고, 운영 로그를 SQL 기반으로 분석하는 방법을 함께 알아보겠습니다.

Cloud Trail 로그: 리소스 변경 이력을 확인하는 기준 데이터

Cloud Trail은 카카오클라우드에서 발생한 사용자 활동과 리소스 작업 이력을 이벤트 단위로 기록합니다. 예를 들어 특정 사용자가 언제 로그인했는지, 어떤 리소스를 생성하거나 수정했는지, 어떤 서비스에서 이벤트가 발생했는지 확인할 수 있습니다. 이 로그를 Data Query와 연동하면 보안 감사나 이력 추적 시 자주 마주치는 질문에 SQL로 답할 수 있습니다.

  • 특정 날짜에 어떤 사용자가 어떤 리소스를 변경했는가?
  • 특정 서비스나 IP 주소에서 수행된 작업 이력이 있는가?
  • 특정 리소스에 대해 생성, 수정, 삭제 이벤트가 발생했는가?

Cloud Trail 로그를 Data Query를 통해 조회 튜토리얼에서는 Cloud Trail 로그를 Object Storage에 gz 형식으로 저장하고, project_event, domain_event 경로를 기준으로 Data Catalog와 Data Query 조회 환경을 구성하는 흐름을 안내합니다. 이때 date_id, hour_id 같은 파티션 컬럼을 조건으로 사용해 필요한 기간만 확인하는 방식이 중요합니다.

Cloud Trail 로그는 보안 감사나 변경 이력 추적에 활용되는 데이터이므로, 전체 로그를 한 번에 훑는 방식보다 언제, 어떤 서비스에서, 누가, 어떤 리소스에 대해라는 조건을 좁혀 조회하는 방식이 적합합니다.

DNS 리졸버 쿼리 로그: VPC 내부의 DNS 질의와 응답 확인

DNS 리졸버 쿼리 로그는 VPC 내에서 발생한 DNS 질의와 응답 정보를 기록합니다. 애플리케이션이 어떤 도메인을 조회했는지, 응답 결과가 정상인지, 특정 시간대에 실패 응답이 집중되었는지 확인할 수 있습니다. 이 로그를 Data Query로 조회하면 다음과 같은 운영 질문을 다룰 수 있습니다.

  • 특정 날짜에 가장 많이 조회된 도메인은 무엇인가?
  • NOERROR가 아닌 응답이 어느 시간대에 집중되었는가?
  • 특정 VPC에서 특정 도메인을 비정상적으로 많이 조회했는가?
  • 응답 시간이 긴 DNS 질의가 반복되고 있는가?

DNS 리졸버 쿼리 로그를 Data Query 서비스를 통해 조회 튜토리얼에서는 DNS 리졸버 쿼리 로그가 Object Storage의 KCLogs/{region-name}/{year=yyyy/month=mm/day=dd} 구조로 저장되는 점을 기준으로 테이블을 구성합니다. 이후 Data Query에서 year, month, day 파티션을 동기화하고, 도메인별 질의 수나 실패 응답 수를 집계하는 예시를 제공합니다.

DNS 로그는 네트워크 장애 분석뿐 아니라 내부 서비스의 외부 의존성, 예상하지 못한 도메인 질의, 반복적인 실패 응답을 확인하는 데도 유용합니다. Cloud Trail이 사용자와 리소스 작업의 이력을 보여준다면, DNS 리졸버 쿼리 로그는 VPC 내부에서 애플리케이션이 어떤 이름 해석 흐름을 만들고 있는지 보여주는 데이터라고 볼 수 있습니다.

두 튜토리얼이 같은 패턴을 사용하는 이유

앞에서 설명한 것처럼 Cloud Trail 로그와 DNS 리졸버 쿼리 로그는 성격이 다르지만, 운영자가 두 로그를 다루는 방식에는 공통점이 있습니다.

먼저 로그가 Object Storage에 저장됩니다. 그다음 파일 경로와 파티션 구조를 기준으로 Data Catalog에 메타데이터를 구성합니다. 마지막으로 Data Query에서 SQL을 사용해 특정 기간, 서비스, 사용자, 도메인, 응답 코드 같은 조건으로 조회합니다.

이 공통 패턴을 만들어두면 분석 대상이 바뀌더라도 저장 위치, 메타데이터 구성, SQL 조회라는 흐름을 그대로 가져갈 수 있습니다.

단계Cloud Trail 로그DNS 리졸버 쿼리 로그
저장 위치Object StorageObject Storage
주요 경로trail/project_event, trail/domain_eventKCLogs/{region-name}/{year=yyyy/month=mm/day=dd}
주요 파티션date_id, hour_idyear, month, day
주요 분석 관점사용자 활동, 리소스 변경, 서비스 이벤트도메인 질의, DNS 응답 코드, VPC별 질의 패턴
조회 도구Data QueryData Query

이 구조는 운영 로그 분석을 일관된 방식으로 관리하는 데 도움이 됩니다. 별도 도구마다 다른 조회 언어와 저장 구조를 학습하기보다, Object Storage와 Data Catalog, Data Query를 기준으로 조회 흐름을 표준화할 수 있기 때문입니다.

운영 로그 분석을 시작하는 방법

운영 로그를 장기간 보관하고 필요한 시점에 조회해야 한다면, 두 튜토리얼을 함께 살펴보는 것이 좋습니다. 예를 들어 특정 시간대에 장애가 발생했을 때 Cloud Trail 로그로 리소스 변경 이력을 확인하고, DNS 리졸버 쿼리 로그로 같은 시간대의 도메인 질의 실패나 응답 지연을 함께 볼 수 있습니다. 서로 다른 성격의 로그를 같은 방식으로 조회할 수 있으면, 개별 이벤트를 더 넓은 운영 맥락에서 해석하는 데 도움이 됩니다.

카카오클라우드 기술문서에서는 실제 운영 상황을 가정한 다양한 튜토리얼을 제공합니다. 아래 문서에서 운영 로그를 저장하고, 조회 가능한 형태로 구성한 뒤, 필요한 조건으로 분석하는 과정을 단계별로 확인할 수 있습니다.

👉 Cloud Trail 로그를 Data Query를 통해 조회
👉 DNS 리졸버 쿼리 로그를 Data Query 서비스를 통해 조회

고성능 관리형 모니터링을 위한 Advanced Managed Prometheus 서비스 출시

· 약 4분
Evan (진은용)
Service Manager
Advanced Managed Prometheus

안녕하세요.
2024년 12월 26일 카카오클라우드의 새로운 서비스, Advanced Managed Prometheus가 출시되었습니다. 🎉

그 동안 클라우드 환경에서 복잡한 모니터링 설정이나 예상치 못한 장애 처리로 어려움을 겪은 적이 있으시다면, Advanced Managed Prometheus 서비스를 눈여겨 보시면 좋을 것 같습니다.

Advanced Managed Prometheus는 클라우드 네이티브 환경에서 메트릭 데이터를 효율적으로 수집, 저장, 분석할 수 있는 고성능 관리형 모니터링 서비스입니다. Kubernetes, Virtual Machine, 애플리케이션 등에서 발생하는 대규모 데이터를 안정적으로 처리할 수 있도록 설계되었으며, Prometheus의 기본 기능을 기반으로 클라우드 환경에 최적화된 확장성안정성을 제공합니다.

Prometheus란?
Prometheus Logo

Prometheus는 2012년 SoundCloud에서 시작된 프로젝트로 현재는 Cloud Native Computing Foundation (CNCF)의 공식 프로젝트입니다. 메트릭 기반 모니터링을 제공하며, 시스템 및 애플리케이션 성능 데이터를 수집, 저장, 분석합니다. 특히 시계열(time-series) 데이터베이스를 기반으로 데이터를 효율적으로 저장하고 쿼리합니다.
확장성, 신뢰성, 유연성을 갖춘 Prometheus는 클라우드 네이티브 환경에서 필수적인 모니터링 도구라고 할 수 있습니다.

Advanced Managed Prometheus 서비스는?

그럼 카카오클라우드의 Advanced Managed Prometheus의 주요 기능과 특징에 대해 자세히 살펴보겠습니다.
Advanced Managed Prometheus는 Prometheus의 강력한 기능을 클라우드 네이티브 환경에 최적화한 서비스로, 복잡한 설정 없이도 실시간 메트릭 수집 및 모니터링을 제공합니다.

대규모 환경에서는 데이터 저장 용량과 처리 속도의 제약, 클러스터 구성 및 유지보수의 어려움, 장애를 사전에 감지하지 못하는 문제를 겪을 수 있는데요. Advanced Managed Prometheus는 이러한 운영상의 어려움을 해결하기 위해 설계되었습니다. 이 서비스는 데이터 지연이나 손실 위험 없이 실시간으로 메트릭 데이터를 수집합니다. 또한 Prometheus의 설치, 설정, 백업을 자동화함으로써 운영 부담을 줄이고, 사용자가 인프라 관리 대신 비즈니스 로직과 성능 최적화에 집중할 수 있도록 돕습니다.

특히 Kubernetes 환경에서는 대규모 컨테이너 기반 워크로드를 효과적으로 관리하며 클라우드 네이티브 애플리케이션의 가시성을 크게 향상시킵니다.

Advanced Managed Prometheus 주요 기능

1. 자동화된 운영 관리

  • Prometheus의 설치, 업그레이드, 백업을 자동화하여 운영 부담을 최소화합니다.
  • 사용자는 복잡한 설정 없이도 안정적인 모니터링 환경을 구축할 수 있습니다.

2. 확장 가능한 데이터 스토리지

  • 대규모 메트릭 데이터도 안정적으로 보존하고 처리할 수 있습니다.
  • 증가하는 데이터 볼륨에도 탄력적으로 대응하여 성능을 유지합니다.

3. 실시간 알림 및 Alert Center 연동

  • 카카오클라우드 Alert Center와 연동하여 주요 메트릭 및 로그에 대한 임계치 알림을 설정할 수 있습니다.
  • 문제 발생 시 즉각적인 알림 메시지를 통해 신속하게 대응할 수 있습니다.

4. 통합 모니터링

  • Kubernetes, VM, 애플리케이션 등 다양한 리소스를 통합적으로 모니터링하고 관리할 수 있습니다.
  • 모든 리소스를 한눈에 파악할 수 있어 운영 효율성이 높아집니다.

5. 실시간 대시보드 및 시각화

  • Grafana와 연동하여 실시간 대시보드 및 시각화 기능을 제공합니다.
  • 복잡한 메트릭 데이터를 직관적으로 분석하고 이해할 수 있습니다.

사용 목적 및 사례

Advanced Managed Prometheus는 다음과 같은 상황에서 특히 유용합니다.

  • Kubernetes 클러스터의 대규모 워크로드 모니터링
  • VM 및 애플리케이션의 리소스 사용 현황 분석
  • 실시간 메트릭 데이터 수집 및 알림 관리
  • 운영 부담을 최소화하며 안정적인 모니터링 환경 구축

마무리하며

카카오클라우드의 Advanced Managed Prometheus는 클라우드 네이티브 환경에서 모니터링과 알림을 더 쉽고 안정적으로 운영할 수 있도록 설계되었습니다. 사실 그 동안 많은 고객 분들의 요청과 피드백을 바탕으로 Advanced Managed Prometheus 서비스가 탄생하게 되었는데요. 복잡한 모니터링 설정과 유지보수 부담을 줄이고, 더 효과적으로 인프라를 관리할 수 있도록 고민하고, 또 고민했습니다.

카카오클라우드 콘솔에서 Advanced Managed Prometheus 서비스를 선택해 간편하게 모니터링 환경을 구축해 보세요. 더 자세한 내용은 How-to Guides 문서를 참고해 보시면 좋을 것 같습니다.

감사합니다.