An incident triage with observability intelligence

What’s your observability solution of choice?

옵저버빌리티 솔루션과 전통적인 모니터링 솔루션의 차이점은 옵저버빌리티 솔루션이 클라우드 네이티브 환경에서 발생하는 장애의 근본 원인을 더 잘 식별하는 데 도움이 된다는 것입니다. 이에 따라 마이크로서비스 환경을 위한 다양한 모니터링, 로그, 어플리케이션 트레이싱 솔루션이 출시되고 있으며, 사용자들은 그 많은 옵션 중에서 어떤 솔루션이 효과적인지 평가하고 선택해야 하는 기로에 서 있습니다.

이러한 상황에서 솔루션을 평가하는 위한 최적의 기준은 무엇일까요? 어플리케이션 트레이싱을 심층적으로 분석하는 데 도움이 되는 솔루션을 기본 메트릭 모니터링 솔루션과 통합하여 사용하는 것이 적절할까요? 아니면 메트릭, 로그 및 트레이싱을 포함하는 단일 솔루션을 사용하면 보다 통합된 방식으로 문제의 근본을 찾는 데 도움이 되지 않을까요? Prometheus와 같은 여러 OSS 프로젝트로 고유한 옵저버빌리티 솔루션을 구축하는 옵션은 어떻습니까?

In real life….

Java로 개발된 마이크로 서비스가 데이터베이스의 데이터를 호출할 때 응답 지연이 발생하여 마이크로 서비스에 대한 Pod의 메모리 사용량이 증가하여 옵저버빌리티 솔루션이 Alert을 발생시킨다고 가정합니다. 특정 팟(Pod)의 메모리 사용량이 증가했다는 메트릭 정보는 Alert의 원인을 판별하기에 충분한 정보를 갖지 못할 것입니다. 시스템 운영자는 개발 팀과 협력하여 마이크로서비스의 문제를 식별해야 합니다. 개발 팀은 마이크로 서비스가 남긴 로그와 추적을 분석하여 문제를 일으킨 특정 마이크로 서비스를 발견할 수 있을 것입니다. 최근 배포된 어플리케이션의 문제로 지연이 발생한 경우, 팀은 이전 소프트웨어 버전으로 롤백하는 조치를 취해야 합니다.

여기서의 질문은 다음과 같습니다. 여러분은 이런 상황에서 얼마나 빨리 문제의 원인을 파악하고 적절한 조치를 취할 수 있습니까? 일반적으로 DevOps 팀이 문제를 파악하기 어려워 개발팀의 참여가 필요한 경우, 문제의 원인을 파악하고 해결안을 설치할 때까지 제법 많은 시간이 걸릴 수 있습니다.

이는 궁극적으로 문제를 신속하게 식별하는 데 도움이 되는 마이크로서비스 간의 트레이싱을 전문적으로 분석할 수 있는 솔루션의 중요성을 강조합니다. 물론 코드에 트레이싱 라이브러리(예: Jaeger 또는 OpenElementary)가 추가되었거나 모든 마이크로 서비스를 트레이싱할 수 있도록 도움을 주는 서비스 메시 솔루션을 사용한다는 전제 하에 있습니다. 이러한 트레이싱 도구는 개발 단계 또는 사후 단계에서 실질적인 도움이 될 수 있지만 즉각적인 문제를 해결하기 위해 배포된 서비스 또는 구성을 롤백하는 것보다 현실적인 대안이 될 수 있으며 Kubernetes 롤아웃은 이 프로세스를 용이하게 하는 데 도움이 됩니다.

Observability with NexClipper

이제 NexClipper가 장애에 대처하는데 어떻게 도움이 되는지 살펴보겠습니다. NexClipper의 ExporterHub를 통해 Kubernetes 서비스를 모니터링하고, 장애 대응 얼럿을 즉각 받을 수 있는 일련의 서비스를 자동 설치할 수 있습니다. 시스템 이상으로 인해 Prometheus Alert manager에서 Alert이 생성되면 NexClipper의 AlertHub는 전용 채널을 통해 책임자에게 Alert를 전달하고 담당자는 Alert 검토를 시작할 수 있습니다. NexClipper는 문제 해결을 위한 해결 방법을 찾기 위해 추가 후속 조치를 위해 Alert을 인시던트로 에스컬레이션할 수 있도록 지원합니다. NexClipper의 장애탐지기능 (출시예정) 은 수집된 얼럿을 ML 룰베이스 분석을 통해 장애가능성을 예측하고, 특정 장애에 대한 사전조치활동을 제안하여, 발생가능한 문제를 적극적으로 대처할 수 있도록 도와 줍니다. NexClipper의 인시던트 기능은 관련 Alert 보관, 사건 전후의 메트릭, 장애 해결을 위한 팀원 및 시스템의 활동 내역, 관련 자료 등을 통합 관리합니다. 이는 사용자가 문제를 해결하고 향후 사고를 방지하기 위한 사후 활동에 도움이 됩니다. NexClipper의 Sudory는 제안된 사전 조치 활동을 원격에서 자동/수동 실행할 수 있도록 지원하여 사용자의 개입이 없이도 장애에 대한 적극적인 조치 실행을 가능하게 합니다.

Alert Hub

NexClipper의 AlertHub는 Prometheus의 Alert Manager와 연동 작동하여 특정 클러스터, 노드 또는 서비스에서 생성된 Alert을 Slack이나 이메일과 같은 선택된 채널을 통해 지정된 그룹에 보내는 것을 돕습니다.

Incident management

NexClipper 사용자는 예를 들어 특정 Alert을 사용하여 인시던트 티켓을 생성할 수 있습니다. 인시던트 티켓하에 관련 메트릭 및 얼럿, 최근에 적용된 배포 기록을 연계하여 관리할 수 있습니다. 이 기능은 또한 사용자가 사건과 관련하여 취한 조치의 이력을 관리하여 향후 사례에 대한 전체적인 장애 보고서를 참조할 수 있도록 지원합니다.

MLOps

NexClipper’s MLOps는 Kubernetes 노드 및 서비스의 장애 여부를 예측하기 위한 ML rule-base 를 기반으로 인입되는 얼럿 정보를 활용하여 서비스 장애 스코어링을 지원합니다. 이를 통해 장애가 예상되는 Kubernetes 서비스 및 컴퓨팅 리소스에 대한 조치를 위해 인시던트 티켓을 자동 생성하고, 기 설정된 능동 조치 활동을 제안하여, 장애에 대한 적극적 조치를 가능하게 합니다. NexClipper의 Sudory 와 연동하여, 사용자의 개입 없이 해당 활동을 자동 실행하여 장애 대응에 대한 반응성을 높일 수 도 있습니다.

Log & Trace

NexClipper의 로그 및 트레이싱 기능은 고객이 특정 기간 동안 발생한 로그 및 트레이싱을 검색하는 데 도움이 되며 서비스 지연을 초래하는 원인을 검토할 수 있습니다.

Rapid operation by highly qualified information

위에서 설명한 대로 NexClipper는 다음을 지원합니다.

1) 수집된 얼럿을 누구에게 전달할 것인지 결정
2) 얼럿, 사고 이력, 증상 관련 메트릭 등을 인시던트 통합 관리로 정확한 판단
3) 관련 애플리케이션의 로그 및 트레이싱 상관관계 분석
4) ML Rule-base와 수집된 얼럿 등을 통해 장애예측 및 적극적 예방활동

  1. 수집된 얼럿을 누구에게 전달할 것인지 결정
  2. 얼럿, 사고 이력, 증상 관련 메트릭 등을 인시던트 통합 관리로 정확한 판단
  3. 관련 애플리케이션의 로그 및 트레이싱 상관관계 분석
  4. ML Rule-base와 수집된 얼럿 등을 통해 장애예측 및 적극적 예방활동

결론적으로 NexClipper는 사용자가 향후 개발 및 운영을 위한 참고 자료를 제공하여 문제를 신속하게 해결할 수 있도록 하는 것을 목표로 합니다. 대시보드, 로그 및 트레이싱, 얼럿 및 인시던트, 장애 대응 Rule-base 관리가 운영자의 관점에서 잘 통합되면 시간에 민감한 작업에 대한 신속하며 효과적인 대처가 가능해 질 것입니다.

이것으로 NexClipper가 사건에 대처할 때 사용자를 돕는 것이 정확히 어떤 목표인지에 대한 개요를 마칩니다. 더 궁금한 사항이 있거나 주제에 대해 더 논의하고 싶다면 언제든지 Jerry Lee (jerry.lee@nexclipper.io) 에게 연락주시기 바랍니다.