2021년 11월 30일 화요일

로그 데이터의 수집과 시각화 – Part 1

IT에 빅데이터가 등장하던 시기쯤 함께했던 키워드 중 IoT, M2M이 있다. 주요 골자는 빅데이터 시대에는 사람이 만들어내는 데이터가 아닌 기계가 만들어내는 데이터가 대규모로 발생한다는 것이다. 그리고 약 10여년이 지난 지금 실제로 그렇게 되고 있으며, 이를 넓은 의미에서 빅데이터 분석이라거나 반정형 데이터 처리, 혹은 더욱 간단한 말로 로그 분석1으로 분류되고 있다.

전통적으로 로그는 서버에 접속하여서 실시간으로 확인하거나, 파일로 기록되어 있는 것을 vi 에디티터 등으로 확인하면 되었다. 하지만, IT가 크고 복잡해지면서 각 시스템마다 발생하는 수많은 로그를 각각 확인하는 것이 사실상 불가능해지면서 통합 관제라는 개념이 등장하게 된다. 다양한 소스에서의 데이터 수집과 파싱, 그리고 모니터링 화면을 전체 하나의 업무영역으로 만든 이 개념은 순식간에 빅데이터 사용 예의 한 축으로 등장하였고, 적용 사례도 보안 관제, 시스템 관제, 네트워크 관제 등 다양한 형태로 나타나게 되었다. 현재까지도 많은 곳에서 사용하는 Splunk 같은 솔루션이 여기의 대표적인 예다.

[Splunk 아키텍처]

상용 라이선싱 모델을 가지고 출발한 Splunk와 함께 오픈소스 진영에서는 Elastic이 이 부분을 담당해왔다. 초기에는 Splunk는 주력으로 내세운 직관적인 템플릿과 간단한 구성 방식을 갖춘 모니터링 화면 덕분에 많은 시장 빠르게 장악했지만, Elastic도 시각화 프로젝트인 Kibana가 발전하면서 현재로는 기업의 요구사항을 넉넉히 해결할 수 있는 수준에 도달해있다. 더 많은 데이터의 통합이 요구되는 최근의 상황에서는 Splunk 이상의 ROI를 얻을 수 있을 것이라는 기대 심리와 최근 신규 버전에서 보여주는 솔루션의 발전, 클라우드로의 빠른 전환 등을 통해 많은 사이트에서 도입이 검토되고 있다.

[Elastic 아키텍처]

컨테이너 사용이 적극 고려되는 시기로 넘어오면서는 또다른 프로젝트가 상당한 주목을 받았는데, 바로 Prometheus 이다. 컨테이너 환경의 모니터링을 위한 데이터 수집기이며 Grafana와 연결하여 쿠버네티스 환경의 최다 모니터링 플랫폼으로 각광받고 있다. 특히, 클라우드 시점을 시작으로 컨테이너 시대가 열리면서 시스템 로그에 대한 관심도는 더욱 높아졌는데, 기존 서버들 대비 클라우드 인스턴스나 컨테이너 VM 들의 안정성이 떨어지는 것을 감안하면 그리 놀라운 일은 아니다.

[Kubernetes 모니터링 아키텍처]

이러한 솔루션들의 장점은 명확하다. 특정 인프라 환경에 국한되지 않고 전체 통합 모니터링을 하는 것이 가능하다는 점이며, 처음 목적인 통합 관제를 충실하게 달성한다. 반면, 고려해야 하는 점 역시 명확한데, 로그 데이터를 수집하여 현재 일어나는 문제 상황을 최대한 빠르게 모니터링 하는 것만 가능하다는 점이다. 이 로그를 바탕으로 특정 상황에 대해 어떤 대응을 하고자 하면 그에 따른 기능 구현이나 업무적인 프로세스 설계가 함께 이루어져야만 이를 잘 활용하는 것이라고 말할 수 있을 것이다.

업무적인 대응 프로세스를 만들다보면 더욱 세밀한 형태의 요구사항이 등장하게 되며, 해당 요구사항을 더 잘 충족하기 위한 기술이 고려되는 것은 자연스러운 일이다. 시계열 형태로 데이터를 수집하기 위해 Promethus 대신 InfluxDB를 데이터 수집으로 사용한다던지, 기존 기술을 사용하더라도 인덱싱 등의 기능을 추가한다던지, 예측 보전을 위해 Pattern Matching이나 Prediction Anlaytics 등의 분석 기술을 추가로 활용하고자 하는 시도들이 이를 잘 나타내준다. 즉, 로그 분석 역시 처음에는 간단한 수집과 파싱에서 출발했지만, 이제는 머신 러닝2 등을 추가로 활용하여 원하는 목적을 더욱 더 달성해가기 위한 방향으로 나가고 있다는 것이다.

다음 글에서는 이렇게 수집되고 정제되는 데이터 들을 어떤 형태로 보여지는지 시각화에 초점을 맞추어 내용을 정리하고자 하며, 클라우드 사업자들이 제공하는 자사의 서비스들의 로그 데이터 수집 (예: AWS CloudWatch)과 그와 관계된 매니지드 서비스 등에 대해서는 별도로 다루고자 한다.

  1. End-to-End IoT Monitoring with Log Data
  2. Log Analysis with Machine Learning: An Automated Approach to Analyzing Logs Using ML/AI

    Related Posts

    로그 데이터의 수집과 시각화 – Part 3
    로그 데이터의 수집과 시각화 – Part 2
    소프트웨어 오픈소스 전략에 대한 고찰

    Leave a Reply