2016-07-27 4 views
0

나는 일련의 서비스를 가지고있다. 모든 서비스에는 몇 가지 구성 요소가 포함되어 있습니다.(마이크로) 서비스를 모니터링하는 방법은 무엇입니까?

일부는 상태 비 저장이며 일부는 상태 저장이고 일부는 동기식이며 일부는 비동기식입니다.

나는 모니터링과 경고에 대해 다른 접근법을 사용했다.

로그 기반 경고 및 메트릭 수집. 새로운 유물 기반. 자기 자전거.

기본적으로 atm 나는 한 곳에서 모든 서비스에 대한 중요한 메트릭을 일반화하고 집계하는 방법을 찾고 있습니다. 그 중 하나는 별도의 서비스보다 더 많은 제품을 모니터링한다는 것입니다.

결국 위젯은 소량의 위젯을 포함하는 단일 대시 보드로 간주되지만 서비스가 최종 고객에게 유용 할 경우 위젯을 살펴 본다.

아마도 누군가 내게 어떤 접근법/방법론을 권할 수 있습니다. 또는 모범 사례에 대한 참고 자료를 제공하십시오.

+0

귀하의 접근 방법은 무엇입니까? – Marco

답변

0

나는 당신이 성취하고자하는 것을 좋아합니다! 서비스를 철저히 모니터링하지 않으면 프로덕션 준비가되지 않습니다.

나는 무엇 END_LINK하면 관심이 설명하는 건강 검사측정의 주제로 간다 생각합니다.

... 서비스가 최종 고객에게 유용 할 수 있다면 확실히 말할 수 있습니다.

그러나 두 가지가 조금 필요합니다. SLA를 현재 수행하고 있는지 확인하려면 서비스가 모두 실행 중인지 확인하고 b) 요청한대로 수행해야합니다. 두 가지 문제 모두 나는 StatsD toolchain을 살펴볼 것을 제안합니다. Etsy가 처음 개발 한이 솔루션은 메트릭 수집을위한 사실상의 표준이되었습니다.

모든 서비스를 실행하기 위해 Kubernetes를 중계합니다. 실행해야 할 것, 외부에서 접근 할 수있는 것 및 우리의 인프라에서 호스팅 할 호스트에 대한 설명이 필요합니다. 그것은 또한, 그것이 죽을 것입니다 - 그들이 다시 시작됩니다 있는지 확인합니다. 자동 크기 조정 등의 작업에 도움이됩니다! Google에 멋진 도구 및 명성! 보장 방법은 건강 수표입니다. Kubernetes에 의해 부팅 된 서비스 노드가 살아 있고 발길질 (즉, HTTP 호출 및 CLI 스크립트이지만 이것이 다른 것들이 필요하면 모듈 식이어야합니다!) Kubernetes가 비정상적인 노드를 발견하면 즉시 그들을 제거합니다 대신 다른 노드를 시작하십시오.

이제 모든 서비스가 예상대로 작동하는지 확인하고 메트릭을 수집해야합니다.

  • 요청/초 등의 오류
  • 수 반환 (404, ... : 우리의 서비스 (모든 개별 엔드 포인트)의 모든, 우리는 같은 StatsD를 통해 몇 가지 통계를 수집)
  • 응답 시간 (평균, 중앙값, 백분위 서비스 SLA)에 따라
  • 페이로드 크기 (때로는 평균)
  • 엔드 포인트 당 동시 요청 수, 인스턴스의 수는 현재와 같은
  • 일반적인 측정을 실행 호스트는 현재 CPU 및 메모리 사용 및 가동 시간을 호스트합니다.

우리는 더 많은 메트릭을 수집하지만 이는 결론에 관한 것입니다. StatsD는 구체적인 제품보다 "프로토콜 사양"이 많아 졌기 때문에 무수히 많은 수집기, 프런트 엔드 및 백엔드 중에서 선택할 수 있습니다. 이 도구는 시스템 상태를 시각화하는 데 도움을 주며 많은 사람들이 특정 항목에 대한 경고 또는 일부 메트릭 조합을 임계 값 이상으로 활용할 수 있도록 도와줍니다.

도움이 될 경우 알려주세요.

0

서비스를 배포하는 호스트, 구성 요소 자체 및 SLA 중 일부는 모니터링해야 할 것입니다. 일부는 사용중인 소프트웨어 스택과 아키텍처에 따라 달라집니다.

그런 식으로 Nagios을 사용하여 서비스가 배포되는 하드웨어를 모니터링하고 서비스 메트릭/SLA에 대해서는 Splunk 및 발생 가능한 모든 오류를 모니터링 할 수 있습니다. 또한 뭔가 잘못되었을 때를 대비하여 SNMP 패키지를 사용할 수 있으며보다 정교한 지원 구조를 가지고있는 경우에 대비하여 트리거가됩니다. 귀하의 인프라/서비스가 어떻게 구성되어 있는지 알지 못하면 더 자세한 세부 사항으로 들어가기가 복잡합니다.

관련 문제