Elastic 머신 러닝이 탐지하는 이상 징후 설명

blog-thumb-blind-spots.png

왜 그것이 비정상적일까요? 이상 징후 점수는 왜 더 높지 않은 것일까요? 이상 징후 탐지는 Elastic Security와 Observability에서 사용되는 귀중한 머신 러닝 기능입니다. 하지만 그 숫자들은 혼란스러워 보일 수 있습니다. 누군가가 그 숫자들을 명확한 말로 설명할 수 있다면 얼마나 좋을까요? 또는 그림을 그려줄 수 있다면 훨씬 더 좋을 것입니다.

Elastic 8.6에서는 이상 징후 레코드에 대한 추가 세부 정보를 보여 줍니다. 이러한 세부 정보를 통해 이상 징후 점수 평가 알고리즘의 이면을 살펴볼 수 있습니다.

이전에 이 블로그에서 이상 징후 점수 평가와 정규화에 대해 소개해드린 적이 있습니다. 이상 징후 탐지 알고리즘은 시계열 데이터를 온라인 방식으로 분석합니다. 하루, 일주일, 한 달 또는 일 년과 같은 다양한 시간 척도로 추세 및 주기적 패턴을 식별합니다. 실제 데이터는 일반적으로 다양한 시간 척도의 추세와 주기적 패턴이 섞여 있는 것입니다. 게다가, 처음에는 이상 징후처럼 보이는 것이 새로운 반복 패턴으로 나타날 수 있습니다.

이상 징후 탐지 작업은 해당 데이터를 설명하는 가설을 제시합니다. 제공된 증거를 사용하여 이러한 가설들을 심사숙고하고 혼합합니다. 모든 가설들은 확률 분포입니다. 따라서 관측치가 "정규 분포"인 정도에 대한 신뢰 구간을 제공할 수 있습니다. 이 신뢰 구간에서 벗어나는 관측치는 비정상적입니다.

이상 징후 점수 영향 요인

이제 여러분은 아마도 이 이론이 간단하다고 생각하실 수 있습니다. 하지만 예상치 못한 동작을 보게 되면, 그것이 얼마나 평범하지 않은 동작인지 어떻게 수량화할 수 있을까요? 

레코드에 부여되는 초기 이상 징후 점수는 다음과 같은 세 가지 요소로 구성될 수 있습니다. 

  • 단일 버킷 영향
  • 다중 버킷 영향
  • 이상 징후 특성 영향

다시 말씀드리지만, 이상 징후 탐지 작업은 시계열 데이터를 시간 버킷으로 분할합니다. 버킷 내의 데이터는 함수를 사용하여 집계됩니다. 버킷 값에서 이상 징후 탐지가 발생하고 있습니다. 버킷에 대한 자세한 내용과 적절한 버킷 범위 선택이 중요한 이유에 대해 알아보려면 이 블로그 게시물을 참조하세요. 
먼저, 가설 혼합을 고려하여 버킷의 실제 값 확률을 살펴봅니다. 이 확률은 과거에 본 유사한 값의 수에 따라 달라집니다. 이것은 실제 값과 일반 값의 차이와 관련이 있을 때가 많습니다. 일반 값은 버킷에 대한 확률 분포의 중앙값입니다. 이 확률은 단일 버킷 영향으로 이어집니다. 이것은 일반적으로 단기간의 급증 또는 하락의 초기 이상 징후 점수에 영향을 미칩니다.

둘째, 선행하는 11개의 버킷과 함께 현재 버킷 값의 값을 관찰할 확률을 살펴봅니다. 실제 값과 일반 값 사이의 누적된 차이는 현재 버킷의 초기 이상 징후 점수에 다중 버킷 영향이라는 결과를 야기합니다.

다중 버킷 영향이 이상 징후 점수에 대해 두 번째로 흔히 발생하는 혼동 원인이므로, 이 아이디어에 대해 자세히 알아보겠습니다. 우리는 12개 버킷의 결합된 편차를 살펴보고 현재 버킷에 그 영향을 할당합니다. 높은 다중 버킷 영향은 현재 버킷에 선행하는 간격에서 비정상적인 동작을 나타냅니다. 현재 버킷 값이 95% 신뢰 구간 내로 돌아올 수 있다는 점에 유의하세요. 

이러한 차이를 강조하기 위해, 다중 버킷 영향이 큰 이상 징후에 대해 다른 마커를 사용하기도 합니다. 위 그림에서 다중 버킷 이상 징후를 자세히 살펴보면, 이상 징후가 동그라미가 아닌 십자 기호 "+"로 표시되어 있음을 알 수 있습니다. 

마지막으로, 길이 및 크기와 같은 이상 징후 특성의 영향을 고려합니다. 여기서는 위와 같이 고정된 간격이 아닌, 지금까지의 이상 징후 현상의 총 지속 시간을 고려합니다. 버킷은 1개일 수도 있고 30개일 수도 있습니다. 이상 징후의 길이와 크기를 과거 평균과 비교하면 데이터의 고객 도메인 및 패턴에 맞춰 조정할 수 있습니다.

또한 알고리즘의 기본 동작은 짧은 기간의 급증보다 긴 이상 징후에 대해 더 높은 점수를 매기는 것입니다. 실제로, 짧은 이상 징후는 데이터의 결함으로 판명되는 경우가 많은 반면, 긴 이상 징후에는 대응을 해야 합니다.

고정 구간과 가변 구간이 있는 요인이 모두 필요한 이유는 무엇일까요? 이들을 결합하면 다양한 도메인에서 비정상적인 동작을 보다 안정적으로 탐지할 수 있습니다. 

레코드 점수 감소

이제 점수 평가 혼란의 가장 흔한 원인인 점수 재정규화에 대해 이야기해 보겠습니다. 이상 징후 점수는 0과 100 사이의 범위로 정규화됩니다. 100에 가까운 값은 작업이 지금까지 확인한 가장 큰 이상 징후를 나타냅니다. 이것은 우리가 그 어느 때보다도 더 큰 이상 징후 현상을 볼 때 이전의 이상 징후의 점수를 줄여야 한다는 것을 의미합니다.

위에서 설명한 세 가지 요인은 초기 이상 징후 점수의 값에 영향을 줍니다. 작업자는 이 값을 기준으로 경보를 받기 때문에 초기 점수가 중요합니다. 새 데이터가 도착하면, 이상 징후 탐지 알고리즘이 과거 레코드의 이상 징후 점수를 조정합니다. 구성 매개 변수 renormalization_window_days는 이 조정의 시간 간격을 지정합니다. 따라서 극단적인 이상 징후가 낮은 이상 징후 점수를 나타내는 이유가 궁금하다면 나중에 작업에서 훨씬 더 중요한 이상 징후가 나타났기 때문일 수 있습니다. 

Kibana 버전 8.6의 단일 메트릭 뷰어는 이 변경 사항을 강조합니다.

기타 점수 감소 요인

두 가지 추가 요인으로 인해, 즉 분산 구간이 높고 버킷이 불완전한 경우, 초기 점수가 감소할 수 있습니다. 

현재 버킷이 데이터 변동성이 높은 계절 패턴의 일부인 경우 이상 징후 탐지의 신뢰성이 떨어집니다. 예를 들어, 여러분은 매일 밤 자정에 서버 유지 관리 작업을 실행할 수 있습니다. 이러한 작업은 요청 처리 대기 시간의 변동성을 높일 수 있습니다. 

또한 현재 버킷이 과거에 예상했던 것과 유사한 수의 관측치를 수신한 경우 신뢰도가 높아질 수 있습니다.

한 곳에 모으기

종종 실제 이상 징후는 여러 요인의 영향을 나타냅니다. 전체적으로 단일 메트릭 뷰어의 새로운 상세 보기는 다음과 같습니다.

get record APIanomaly_score_explanation 필드에서도 이 정보를 확인하실 수 있습니다.

결론

Elastic Cloud에서 Elasticsearch Service의 최신 버전을 사용해 보고 이상 징후 레코드에 대한 새로운 세부 보기를 확인해 보실 것을 적극 권장합니다. 지금 무료 Elastic Cloud 체험판을 시작하여 플랫폼에 액세스하세요. 즐거운 실험 되시기 바랍니다!