2017년 5월 4일 뉴스

Elastic Stack의 Machine Learning 기능을 소개합니다

By Steve Dodson

오늘 X-Pack을 통해 제공되는 Elastic Stack의 머신러닝(Machine Learning) 기능의 출시를 발표하게 되어 기쁘게 생각합니다. Elastic에 합류하는 과정은 마치 로켓을 타고 우주로 떠나는 것 같았지만, 정신없는 7 달의 여정 끝에 Prelert 머신러닝 기능 이 이제 Elastic Stack에 완전히 통합되어 매우 흥분됩니다. 저희는 사용자로부터 피드백을 얻는 것에 대해 대단히 기쁘게 생각합니다.

참고: 너무 흥분하기 전에, 이 기능은 5.4.0 에서 베타로 동작한다는 점을 고려하시기 바랍니다

머신러닝(Machine Learning) 

저희의 목표는 사용자가 Elasticsearch 데이터로부터 통찰력을 얻을 수 있는 도구를 제공하는 것입니다. 저희는 머신러닝 기능이 Elasticsearch의 검색과 분석의 자연스러운 확장을 제공할 것으로 보고 있습니다. 예를 들어, Elasticsearch를 사용하면 방대한 양의 실시간 데이터로부터 사용자 'steve'의 트랜잭션을 검색하거나 집계 및 시각화를 사용하여 시간에 따른 상위 10개의 판매 제품 또는 트렌드를 표시 할 수 있습니다. 이제 머신러닝을 통해 "내 서비스의 행동 중 바뀐 것이 있는가?" 또는 "내 서버에서 비정상적인 프로세스가 작동중이지는 않는가?" 와 같은 질문을 할 수 있습니다. 이러한 질문들을 도출 해 내기 위해서는 서버 또는 서비스의 행동 모델(behavioural models)을 필요로 하며, 이것들은 머신러닝 기술을 이용해 자동으로 만들어 낼 수 있습니다.

안타깝게도, 머신러닝은 현재 소프트웨어 업계에서 가장 거품이 많이 낀 용어 중 하나입니다. 머신러닝은 근본적으로 데이터 기반의 예측, 의사결정 및 모델링을 위한 알고리즘 그리고 방법론을 설명하는데 사용하는 용어입니다. 그러므로 잡음을 버리고 구체적으로 정확히 무엇을 하는지에 대한 설명이 중요합니다.

시계열 데이터로부터 이상징후 탐지

현재의 X-Pack 머신러닝 기능은 비지도(unsupervised) 학습 방식을 통해 "시계열 테이터로부터 이상징후 탐지" 기능을 제공하는 데 중점을 두고 있습니다.

시간이 지남에 따라 머신러닝에 더 많은 기능을 추가 할 예정이지만, 현재는 Elasticsearch에서 로그 파일, 응용 프로그램 및 성능 수치, 네트워크 통신 그리고 금융 거래 데이터와 같은 시계열 데이터를 다루는 사용자에게 부가 가치를 제공하는 데 초점을 맞추고 있습니다.

사례 1 – KPI(핵심 성과 지표) 값의 비정상적인 변경에 대한 자동 알림

이 기술의 가장 간단한 사용 사례는 이벤트의 특정한 수치 값 또는 비율이 정상적인 행동 범위에서 벗어나는 경우를 식별하는 것입니다. 예를 들어, 제공중인 서비스의 응답 소요 시간이 현저하게 증가 했다거나, 특정 시간대의 사이트 방문자 수가 평소와 다르게 예상되는 경우 등입니다. 전통적으로 이러한 유형의 분석에는 규칙, 임계 값 또는 일반적인 통계 방법들이 사용됩니다. 불행히도 이러한 일반적인 방법은 현실 세계의 데이터에 유효하지 않는 경우가 많습니다. 통계는 가설 분포 (예 : 가우스 분포)에 의존하거나, 트렌드 (장기 또는 주기적)를 허용하지 않거나, 특정한 변화에 취약합니다.

따라서 머신러닝 기능에 대한 첫 번째 진입 관점은 이 기능이 정상적인 내용을 학습하고, 단일 변수에 대해 시계열에 따른 데이터의 이상을 식별하도록 하는 단일 지표 작업(Single Metric job) 입니다. 발견 된 예외가 유용하다면이 기능을 실시간으로 계속 실행하고 예외가 발생할 때 알림을 할 수 있습니다.

비교적 단순한 사례처럼 보이지만, 머신러닝 기능의 백엔드에는 복잡한 비지도 학습 알고리즘 및 통계 모델링이 포함되어 있으므로 혼잡한 신호에 대해서도 상당히 정확합니다.

또한 기본적으로 Elasticsearch 클러스터에 최적화 된 상태로 실행되도록 구현되어 있기 때문에 수백만 이벤트를 몇 초 만에 분석 할 수 있습니다.

machine-learning-1.gif

사례2 – 서로 다른 1000개의 메트릭 자동 추적

머신 러닝 기능은 수십만개의 메트릭 및 로그 파일로 확장 될 수 있습니다. 다음에 볼 부분은 여러 메트릭들을 함께 분석하는 사례입니다. 서버의 여러 연관 메트릭, 데이터베이스 또는 응용 프로그램의 성능 메트릭 그리고 여러 서버들의 다양한 로그 파일 등이 가능합니다. 이 경우 분석을 분할하여 결과를 통합 화면에 표시하여 전체 시스템 이상 징후를 표시 할 수 있습니다.

예를 들어, 서로 다른 여러 응용 프로그램 서비스로부터 응답 시간을 수집하고 있다면, 전체 시스템의 이상 징후를 탐색했던 것과 같이, 쉽게 각 시스템 별로 시간대별 응답 시간을 분석하고, 비정상 적인 행동들의 분석이 가능합니다.

machine-learning-2.gif

사례3 – 고급 설정

마지막으로, 머신 러닝 기능에는 수많은 고급 설정 기능이 있습니다. 일반적인 사용자들과 비교해서 비정상적인 행동의 사용자를 찾거나, 이질적인 DNS 트래픽, 런던 도로의 혼잡성 등, 고급 설정은 Elasticsearch에 저장된 모든 시계열 데이터를 유연하게 분석할 수 있습니다.

Elastic Stack 과의 통합

머신 러닝은 X-Pack 기능으로 사용이 가능합니다. 다시 말해, X-Pack을 설치하면 머신 러닝 기능을 사용하여 실시간으로 Elasticsearch의 시계열 데이터를 분석 할 수 있습니다. 기계 학습 작업은 인덱스와 샤드들이 분산되는 것과 거의 같은 방식으로 Elasticsearch 클러스터에서 자동으로 분산되고 관리됩니다. 이는 또한 머신 러닝 작업이 노드의 장애에 대해 복구가 가능함을 있음을 의미합니다. 성능적인 측면으로 볼 때, Elastic Stack과의 긴밀한 통합은 데이터가 클러스터를 벗어날 필요가 없음을 의미하며 일부 작업 유형의 성능을 크게 향상시키기 위해 Elasticsearch 집계 기능을 사용 할 수도 있습니다. 스택 간의 긴밀한 통합의 또 다른 이점은 이상 징후 탐색 작업을 생성하고 Kibana에서 바로 결과를 볼 수 있다는 것입니다.

데이터가 클러스터 내부에서 분석되고 바깥으로 벗어나지 않기 때문에 이 접근법은 외부 데이터 시스템 도구와 Elasticsearch를 연동하는 것에 비해 상당히 의미 있는 성능 및 운영상의 이점을 제공합니다. 특히 우리가 이 공간에서 함께 더 많은 기술을 개발할 때, 이 아키텍처의 장점은 더욱 분명해질 것입니다.

Machine Learning Diagram

지금 바로 사용 해 보시고 의견을 알려주세요

타로 제공됩니다. 즉 지금 바로 사용이 가능합니다. 저희는 여러분의 의견을 듣고 싶습니다. 5.4 버전을 다운로드 하시고, X-Pack을 설치하세요. 여러분의 의견은 직접, 또는 discuss 포럼을 통해 저희에게 연락 주시기 바랍니다.