마이크로서비스는 많은 혜택이 있지만 모니터링 부분에서는 이에 따른 더 복잡한 문제가 발생할 수 있다. 장애 발생시 우리는 서버와 로크파일, 네트워크 등 많은 부분을 체크해야 하는데 마이크로서비스에서는 이를 해결하기 위해 작은 것들을 모니터링하고 전체 상황을 볼 수 있도록 취합해야 한다. 시작은 가장 단순한 시스템인 단일 노트에서 부터다.

단일 서비스, 단일 서버

무엇을 관찰해야 할까? 먼저 호스트 자체를 모니터링 한다. CPU와 메모리의 정상 범위를 알고 해당 범위를 벗어날 때 경보를 보낼 수 있다. 자체 모니터링 소프트웨어나 호스팅 서비스를 이용할 수 있다. 두번째는 서버에 직접 접근하여 명령어로 에러 로그를 찾는다. 세번째로는 어플리케이션 자체의 최소한 응답시간을 모니터링 할 수 있다. 

단일 서비스, 다수 서버

하나의 호스트가 아닌 분리된 여러 호스트 상에 실행되는 서비스에도 마찬가지로 호스트 레벨의 측정이 필요하다. 개별 호스트 문제인지 전체 호스트 문제인지 세부 분석을 할 수 있어야 한다. 마찬가지로 서버에 로그를 확인해야 하는데 여러 호스트에 동일한 명령 실행이 가능한 ssh멀티플렉서를 이용하면 조금 더 간편하게 찾을 수 있다. 세번째 응답시간 추적은 부하 분산기에서 쉽게 추적할 수 있다. 그러나 부하 부난기 또한 추적의 대상이 되어야 한다

다수 서비스, 다수 서버

다수의 호스트에 분선되어 협업하는 다수의 서비스의 경우 로그부터 어플리케이션 측정 지표까지 가능한 한 많은 수집과 집중식 취합이 필요하다. 호스트의 수가 많아지면 SSH멀티플렉싱으로도 어렵다. 대신 로그를 수집하고 중앙에서 접근하기 위해 전문적인 서브시스템인 로그스태쉬를 사용할 수 있다. 많은 로그 파일 포맷을 파싱하고 추가 분석을 위해 하부 시스템에 전송할 수 있다. 

다수 서비스 간의 측정지표 추적

다수 서비스 간의 로그를 살펴보는 것은 어렵기 때문에 오랜 기간에 거쳐 명확한 패턴이 드러나도록 시스템의 행동 방식에 대한 측정 치표를 수집해야 한다. 전체 시스테메 대해 집계된 특정 측정지표 뿐만 아니라 특정 서비스에 대한 모든 인스턴스타 개발 인스턴스에 대한 측정지표까지도 집계할 수 있어야 하는데 이는 이러한 구조를 추론할 수 있도록 메타데이터와 측정지표를 연결할 수 있어야 한다는 것을 의미한다. 그래파이트라는 이러한 서비스를 제공해주는 시스템이 있다. 측정지표를 이해하는 다른 혜택은 용량 게획이다. 사용패턴을 이해햐아 필요한 인프라스트럭처를 보유해 효율성을 높힐 수 있다.

서비스 측정 지표

웹서비스는 최소한 응답시간과 에러율 같은 측정지표를 노출해야 한다. 더 나아가서는 소프트웨어의 기능이 얼마나 활용되고 있는지 알아야 어떻게 개선해야 할지 대응할 수 있도 어떤 데이터가 유용한지 까지 알 수 있다.

전파

시스템 간의 통합 지점을 모니터링 하는것이 중요하다. 각 서비스 인스턴스는 데이터베이스부터 협업하는 다른 서비스에 이르기까지 하위 의존성 상태를 추적하고 노출해야 한다. 이러한 정리된 현황을 알 수 있도록 수집된 정보들을 취합해야 한다. 

표준화

모니터링은 표준화가 중요하다. 많은 인터페이스를 이용하는 사용자에게 기능을 제공하기 위해 다양한 방식으로 협업하는 서비스들이 있다면 총체적인 방식으로 시스템을 바라볼 수 있어야 한다. 


서비스 

- 최소한의 필수 사항으로 응답시간을 추적하고 에러유을 추적하라 그리고 어플리케이션레빌 측정치표에 대해 작업해라.

- 모든 하위 응답 상태 추적. 최소한 하위 호출의 응답시간을 포함하고 에러율도 추적

- 측정지표가 수집될 방식과 저장소를 표준화

- 가능하면 표준 저장소와 포맷으로 로깅하라

- 불량 프로세스를 추적하고 용량 계획을 수행할 수 있도록 하부 운영 체제를 모니터링 하라

시스템

- 어플리케이션 레벨 측정 지표와 cpu처럼 호스트 레블 칙정지표도 취합해라

- 측정지표 저자소 도국가 스스템 또는 서비스 레벨로 집계할 수 있는지 확인하고 개별 호스트 레벨까지 탐색해서 보여줘라

- 시스템의 추이를 이해할 정도로 오랜 기간 데이터를 유지할 수 있는지 확인

- 로그를 취합하고 저장하는데 질의 가능한 단 하나의 도구를 ㅏ용하라

- 상관관계 ID를 사용하는 데 있어 표준화를 고려하라

- 대응 행동 요청이 필요한 것이 무엇인지 이해하고 주의 경보와 대시보드를 적절히 구조화 하라

- 수로나 리만 같은 도구가 적합한지 검토하고 모든 다양한 측정지표를 취합하는 방식을 통합할 수 있는지 조사해라



+ Recent posts