Consul 모니터링 및 알림

Consul 모니터링 및 알림 (Consul monitoring and alerts)

이 페이지에서는 모니터링해야 할 호스트 리소스와 모니터링 도구가 Consul 클러스터가 한계를 초과할 때 알림을 설정하는 데 어떻게 도움이 되는지 설명해요. Consul을 모니터링하고 알림을 설정하면 서비스 검색과 서비스 메시 요구 사항 모두에 대해 Consul이 기대한 대로 작동하도록 보장할 수 있어요.

출처: 문서

본문

이 페이지에서는 모니터링해야 할 호스트 리소스와 모니터링 도구가 Consul 클러스터가 한계를 초과할 때 알림을 설정하는 데 어떻게 도움이 되는지 설명합니다. Consul을 모니터링하고 알림을 설정하면 모든 서비스 검색 및 서비스 메시 요구 사항에 대해 Consul이 기대한 대로 작동하도록 보장할 수 있습니다.

인스턴스 수준 모니터링 (Instance level monitoring)

각 호스트 환경과 Consul 배포는 고유하지만, 이러한 권장 사항은 배포의 고유한 요구 사항을 충족하기 위해 참조할 수 있는 출발점 역할을 합니다.

Consul 데이터센터는 서비스 검색이나 서비스 메시 같은 기본적인 Consul 작업을 수행할 수 있는 Consul 인프라의 가장 작은 단위입니다. 데이터센터에는 최소 하나의 Consul 서버 에이전트가 포함되지만, 실제 배포에는 서버 에이전트 3~5개와 여러 Consul 클라이언트 에이전트가 포함됩니다.

Consul 서버 에이전트는 서비스 및 노드 IP 주소, 상태 검사, 구성을 포함한 모든 상태 정보를 저장합니다. Consul 클라이언트는 노드 및 서비스 상태를 Consul 클러스터에 보고합니다. 일반적인 배포에서는 데이터센터의 모든 컴퓨팅 노드에서 클라이언트 에이전트를 실행해야 합니다. Kubernetes 워크로드가 있는 경우 클라이언트 에이전트 없이 Envoy 프록시를 배포하는 대체 서비스 메시 구성으로 Consul을 실행할 수도 있습니다. 자세한 내용은 Simplified service mesh with Consul dataplanes을 참조하세요.

Consul 에이전트 상태에 대해 다음 매개변수를 모니터링하는 것을 권장합니다:

  • 디스크 공간 및 파일 핸들
  • RAM 사용률
  • CPU 사용률
  • 네트워크 활동 및 사용률

이러한 메트릭을 추적하려면 애플리케이션 성능 모니터링(APM) 시스템을 사용하는 것을 권장합니다. 핵심 메트릭의 전체 목록은 Telemetry 문서의 Key metrics 섹션을 방문하세요.

호스트 수준 알림 권장 사항 (Recommendations for host-level alerts)

대부분의 초기 프로덕션 배포나 테스트 환경에서는 소규모 클러스터로 시작하는 것을 권장합니다. 지속적으로 높은 워크로드가 있는 프로덕션 환경의 경우 대규모 클러스터를 권장합니다. 자세한 내용은 Consul capacity planning 문서를 참조하세요.

메트릭을 수집할 때 기준선을 설정하는 것이 중요합니다. 이 기준선은 Consul 배포가 정상인지 확인하고 비정상적인 클러스터 동작을 해결할 때 참조 지점 역할을 합니다. 메트릭을 수집하는 방법을 배우려면 Monitor Consul datacenter health 튜토리얼을 완료하세요.

메트릭에 대한 기준선을 설정한 후에는 해당 메트릭과 다음 권장 사항을 사용하여 Consul 에이전트에 대한 합리적인 알림을 구성하세요.

메모리 알림 권장 사항 (Memory alert recommendations)

Consul은 리더 노드의 데이터를 위한 기본 저장소로 RAM을 사용하며 주기적으로 디스크에 플러시합니다. 자세한 내용은 Telemetry 문서의 Memory usage 섹션을 참조하세요. 권장 인스턴스 유형은 호스팅 제공자에 따라 다릅니다. 대부분의 클라우드 제공자에 대한 권장 인스턴스 유형 및 기타 최신 하드웨어 권장 사항은 Hardware sizing for Consul servers를 참조하세요.

할당해야 하는 RAM의 양을 결정할 때 서버 에이전트가 작업 집합 크기의 2~4배를 담을 수 있을 만큼 충분한 RAM을 권장합니다. 작업 집합 크기는 텔레메트리 데이터에서 consul.runtime.alloc_bytes 값을 확인하여 결정할 수 있습니다.

RAM 사용량이 합리적인 임계값(예: 할당된 RAM의 90%)을 초과하면 알림을 설정하세요.

CPU 알림 권장 사항 (CPU alert recommendations)

Consul 서버는 유휴 부하가 아니라 최대 CPU 부하를 처리하도록 확장해야 합니다. 유휴 상태에서 Consul 서버는 서비스 상태, 배치 또는 기타 구성의 변경에 반응하기 위해 대기하고 있습니다. 서비스 상태 변경이 있으면 Consul 서버는 영향을 받는 모든 Consul 클라이언트에 동시에 알려야 합니다. 예를 들어, Consul 서버가 수백 또는 수천 개의 Consul 클라이언트에 서비스 상태 업데이트를 알려야 한다면 Consul 서버 CPU가 급증할 수 있습니다.

이런 일이 발생하면 대규모 등록/등록 취소 작업 직후에 모든 서버에서 모니터링 대시보드에 CPU 급증이 표시됩니다. 이는 발생해서는 안 됩니다. Consul 서버에 부담을 주지 않고 롤아웃이나 기타 고변경 작업을 수행할 수 있어야 합니다.

Consul 서버 에이전트에서 CPU 급증을 감지하는 알림을 설정하세요. 발생하면 서버 크기를 평가하고 그에 따라 업그레이드하세요.

네트워크 권장 사항 (Network recommendations)

모든 Consul 에이전트 간에 전송되는 데이터는 총 왕복 시간(RTT)에 대한 대기 시간 요구 사항을 따라야 합니다:

모든 트래픽의 평균 RTT는 50ms를 초과할 수 없습니다. 트래픽의 99%에 대한 RTT는 100ms를 초과할 수 없습니다.

네트워크 대기 시간 및 대역폭 지침에 대한 자세한 내용은 Reference architecture를 참조하세요.

RTT가 이러한 값을 초과할 때 감지하는 알림을 설정하세요. 이 경우 호스트의 네트워크 대기 시간과 관련된 메트릭을 모니터링하여 RTT가 이러한 값을 초과하지 않도록 해야 합니다.

Prometheus 및 Grafana로 Consul 모니터링 (Monitoring Consul using Prometheus and Grafana)

Grafana 및 Prometheus와 같은 시계열 기반 관측 가능성 도구는 장기간에 걸쳐 Consul 클러스터의 상태를 모니터링하는 데 도움이 됩니다. 자세한 내용은 Monitoring for Layer 7 observability with Prometheus, Grafana, and Kubernetes 튜토리얼을 참조하세요.

Datadog으로 Consul 모니터링 (Monitoring Consul using Datadog)

Datadog은 대규모 애플리케이션과 인프라를 위한 SaaS 기반 모니터링 및 분석 플랫폼입니다. Consul 모니터링을 지원하는 플랫폼 중 하나입니다. Datadog 에이전트는 호스트에서 실행되어 로그, 메트릭, 트레이스를 보고합니다. Consul 서버 및 클라이언트 인스턴스에 Datadog 에이전트를 구성하면 Consul 클러스터의 상태를 모니터링할 수 있습니다.

자세한 내용은 다음 리소스를 참조하세요:

다음 단계 (Next steps)

이 가이드에서는 모니터링해야 할 호스트 리소스와 모니터링 도구가 Consul 클러스터가 한계를 초과할 때 알림을 설정하는 데 어떻게 도움이 되는지 배웠습니다.

더 알아보기 (Learn more)