업무일지 기록만 잘해도 사고를 막을 수 있다
1.
로그(Log)는 시스템이 실시간으로 작성하는 아주 상세한 업무 일지 같습니다. 누가, 몇 시에, 어떤 기능을 썼고 결과가 어떠했는지를 텍스트로 남기는 것인데요. 비슷하게 모니터링(Monitoring)은 이 데이터들을 모아서 그래프로 보여주는 상황실 전광판이자 시스템의 건강 상태를 살피는 CCTV입니다.
2.
로그와 모니터링은 사고가 터졌을 때 원인을 찾는 블랙박스 역할을 합니다. 기록(로그)이 없다면 개발자는 무엇 때문에 서비스가 멈췄는지 추측만 할 수밖에 없기 때문인데요. 서버의 CPU 사용량이나 메모리 수치가 위험 수준에 도달하는 것을 미리 발견하여 서버가 완전히 멈추기 전에 조치를 취하게 해주는 조기 경보 시스템(모니터링)이기도 합니다.
3.
한 예로, 토스도 매우 정교한 모니터링 체계를 구축하고 있는데요. 토스는 수많은 마이크로서비스(MSA)가 얽혀 있어 장애 원인을 찾기 매우 어려운 구조를 가지고 있죠. 이를 위해 서비스 간의 모든 흐름을 추적하는 관측성(Observability) 기술을 도입했습니다. 프로메테우스(Prometheus)와 그라파나(Grafana)라는 시스템을 사용하여 전 직원이 실시간으로 서비스 상태를 볼 수 있는 대시보드를 공유하고 장애 복구 시간을 단축하고 있다고 하네요.
4.
모바일 뱅킹 앱에서 이체 지연 상황이 예로 들어볼까요.
평일 오전 10시에 이체가 안 된다는 민원이 들어오면, 담당자는 즉시 상황판을 보고 결제 처리 지연 시간 그래프가 급상승한 것을 확인합니다. 특정 서버에 빨간불이 들어온 것을 보고 로그 파일을 열어보니 외부 은행 시스템 응답 시간 초과(Timeout)라는 기록이 반복되는 것을 발견하게 됩니다. 덕분에 우리 시스템 문제가 아니라 외부 은행망 장애라는 정확한 원인을 파악하여 즉시 보고할 수 있습니다.
5.
실무에서는 현재 모니터링상에서 에러율이 몇 퍼센트인지, 혹은 로그상에 특정 에러 코드가 남고 있는지를 확인해 의사결정 속도를 높입니다. 장애를 얼마나 빨리 인지하고 투명하게 공지하느냐가 브랜드의 신뢰도를 결정하니까요., 이는 강력한 모니터링 인프라에서 나온답니다.
6.
데이터독(Datadog), 뉴렐릭(New Relic), 그라파나(Grafana) 같은 단어들이 회의에서 나온다면 우리 서비스의 모니터링 시스템을 이야기하고 있다고 이해하시면 됩니다. 오늘 자주 사용하는 앱이 조금이라도 느려진다면 지금 이 앱의 서버 상황판에는 어떤 그래프가 치솟고 있겠죠? 담당자에게는 끔찍한 일일 수도 있겠네요.
[세 줄 이해]
- 로그는 과거의 기록인 일기이고 모니터링은 현재의 상태를 보여주는 전광판입니다.
- 모니터링으로 복잡한 시스템의 장애를 실시간으로 감지하고 대응합니다.
- 로그 기록을 통해 장애 원인을 상세하고 객관적으로 파악할 수 있답니다.