메인 콘텐츠로 건너뛰기
에이전트가 오작동할 때만이 아니라, AgentEye 배포 자체가 다운되거나 성능이 저하된 경우를 즉시 파악할 수 있습니다. 탐지는 Kubernetes 네이티브 방식이며, 결정적으로 AgentEye와 독립적으로 작동합니다. Kubernetes 컨트롤 플레인에서 파드 상태를 직접 읽고 AgentEye의 핵심 의존성을 확인하기 때문에, 서버, ClickHouse, 또는 Postgres가 다운된 경우에도 알림이 발생합니다. 두 가지 레이어로 구성됩니다. 첫 번째는 기본 내장이며, 두 번째는 선택적으로 활성화합니다.

1. 의존성 인식 준비성 검사 (기본 내장)

서버는 명확히 다른 역할을 가진 두 가지 프로브 엔드포인트를 제공합니다:
엔드포인트프로브확인 항목인증
GET /health활성(liveness)프로세스 정상 동작 여부 (항상 {"status":"ok"} 반환)없음
GET /ready준비(readiness)실제 서비스 가능 여부: Postgres + ClickHouse 연결 가능 여부없음
/ready는 두 핵심 의존성이 모두 연결 가능한 경우 "status":"ready"와 모든 항목 "ok"와 함께 200을 반환하고, 하나라도 연결 불가능한 경우 "status":"not_ready"와 함께 503을 반환합니다. 두 응답 모두 간략한 본문을 포함합니다:
Redis는 서버가 없어도 성능 저하 상태로 동작할 수 있는 선택적 캐시이므로, 정보 제공 목적으로만 보고되며 준비성 검사에 실패를 유발하지 않습니다. 캐시가 설정된 경우 "ok", 설정되지 않은 경우 "not_configured"를 표시하며, "down" 상태는 절대 표시되지 않습니다. 번들로 제공되는 Kubernetes 매니페스트에서 준비(readiness) 프로브는 /ready를, 활성(liveness) 프로브는 /health를 가리킵니다. 그 결과: 실행 중이지만 데이터베이스에 연결할 수 없는 서버는 Service에서 제외되어 NotReady 상태로 표시되며, 아래에서 설명하는 클러스터 모니터링을 통해 알림을 받을 수 있습니다. 활성 프로브는 비용이 낮게 유지되므로, 일시적인 의존성 장애가 파드 재시작을 유발하지 않습니다. 프로브는 넉넉한 실패 임계값을 사용하므로, 순간적인 장애로 인해 레플리카가 로테이션에서 빠지는 현상이 발생하지 않습니다.

2. Robusta를 이용한 파드 장애 알림 (선택 사항)

Robusta는 Kubernetes 네이티브 모니터로, API 서버를 감시하고 파드 장애(CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending/NotReady, Failed, 퇴거)를 Slack으로 전달합니다. AgentEye에 직접 묻는 방식이 아닌 컨트롤 플레인을 관찰하기 때문에, AgentEye가 전혀 응답하지 못하는 상황에서도 알림이 발생합니다. Robusta는 릴리스 번들에 선택적 애드온으로 포함되어 있습니다. 아래에 안내된 표준 Robusta Helm 차트와 소규모 values 파일을 사용하여 활성화하세요:
  1. 차트 저장소를 추가하고 해당 채널에 사용할 Slack 봇 토큰 (xoxb-…)을 준비합니다:
    아래 설정은 모든 것을 클러스터 내부로 유지하므로 (disableCloudRouting: true), 토큰은 자체 호스팅 Slack 앱에서 가져옵니다. https://api.slack.com/apps에서 앱을 생성하고, chat:write 봇 스코프를 추가한 후, 워크스페이스에 설치하고 Bot User OAuth Token (xoxb-…)을 복사한 다음, 채널에 봇을 초대합니다 (/invite @your-app).
  2. 배포별 레이블 (clusterName)과 Slack 채널을 포함한 values.yaml을 생성하고, agenteye 네임스페이스로 범위를 지정합니다:
  3. 검증된 Robusta 차트 릴리스에 --version을 고정하여 설치합니다 (릴리스 목록). 테스트되지 않은 차트가 설치되는 것을 방지할 수 있습니다:

보고 항목

  • Kubernetes 파드 상태 (어떤 AgentEye 파드가 실패하고 있으며 원인이 무엇인지)와 각 파드의 이미지 태그, 즉 실행 중인 컴포넌트의 버전.
  • AgentEye 이벤트 데이터 및 고객 데이터는 클러스터 외부로 절대 유출되지 않습니다.
  • 번들로 제공되는 values는 알림 범위를 agenteye 네임스페이스로 제한하므로, 동일 클러스터의 관련 없는 워크로드는 보고되지 않습니다.

모든 배포를 한 곳에서

모든 배포의 Robusta가 하나의 공유 Slack 채널을 가리키도록 설정하되, 각 배포마다 고유한 clusterName을 지정합니다. 모든 알림에 해당 레이블이 태그되므로, 단일 채널에서 전체 플릿의 상태를 확인할 수 있으며, 어떤 배포에 문제가 발생했는지 한눈에 파악할 수 있습니다.

클러스터 전체 장애

클러스터 내부에서만 동작하는 감시자는 클러스터 전체 또는 네트워크 장애를 보고할 수 없습니다 (클러스터와 함께 다운됩니다). 이 경우가 필요하다면, 선택적 Robusta UI 싱크를 활성화하세요: disableCloudRouting: false로 설정하고 robusta gen-config에서 발급받은 토큰과 함께 robusta_sinksinksConfig에 추가합니다. 이를 통해 다중 클러스터 통합 대시보드가 제공되며, 체크인이 중단된 클러스터를 플래그로 표시합니다.

문제 해결

“알림이 수신되지 않음” 및 “서버가 계속 NotReady로 flapping됨” 문제는 enterprise-docs/troubleshooting.md상태 모니터링 섹션을 참조하세요.