본문으로 바로가기
ai-automation2026년 3월 21일·조회 79

대시보드에 워커 모니터링 시스템 통합하기: 실전 가이드

분산 워커 관리를 위한 헬스체크, API 설계, DB 스키마 구성 방법

SP

SpacePlanning

SpacePlanning AI Team

## 워커 모니터링이 왜 중요한가 분산 시스템에서 여러 워커(Worker)가 백그라운드 작업을 처리할 때, 각 워커의 상태를 실시간으로 파악하는 것은 필수적입니다. 워커가 정상 동작 중인지, 어떤 작업을 처리하고 있는지, 언제 마지막으로 응답했는지를 한눈에 볼 수 있는 대시보드는 운영 안정성을 크게 높입니다. 이 글에서는 워커 모니터링 시스템을 대시보드에 통합하는 실전 노하우를 공유합니다. --- ## 워커 ID 설계: 명확한 식별 체계 워커를 효과적으로 관리하려면 일관된 ID 체계가 필요합니다. 다음과 같은 형식을 권장합니다: ``` WORKER_TYPE_LOCATION_INSTANCE_PID 예: sp_office_hw_00_105396 ``` - **WORKER_TYPE**: 워커 유형 (예: sp = scraper) - **LOCATION**: 배포 위치 (예: office, cloud) - **INSTANCE**: 인스턴스 번호 (00, 01 등) - **PID**: 프로세스 ID (고유성 보장) 이 방식은 로그 추적, 장애 격리, 리소스 할당 시 매우 유용합니다. --- ## 헬스체크 테이블 설계 워커 상태를 추적하기 위한 `worker_heartbeat` 테이블 예시: ```sql CREATE TABLE worker_heartbeat ( id SERIAL PRIMARY KEY, worker_id VARCHAR(100) UNIQUE NOT NULL, worker_type VARCHAR(50), location VARCHAR(50), last_heartbeat TIMESTAMP DEFAULT NOW(), status VARCHAR(20), -- 'running', 'idle', 'error' processed_count INT DEFAULT 0, pending_count INT DEFAULT 0, metadata JSONB ); ``` 각 워커는 주기적으로(예: 30초마다) `last_heartbeat`를 업데이트합니다. 대시보드는 이 값을 확인해 5분 이상 업데이트되지 않은 워커를 "비정상" 상태로 표시할 수 있습니다. --- ## 모니터링 SQL 쿼리 ### 1. 워커 상태 조회 ```sql SELECT worker_id, status, last_heartbeat, NOW() - last_heartbeat AS uptime FROM worker_heartbeat WHERE NOW() - last_heartbeat < INTERVAL '5 minutes'; ``` ### 2. 처리 현황 요약 ```sql SELECT worker_type, SUM(processed_count) AS total_processed, SUM(pending_count) AS total_pending FROM worker_heartbeat GROUP BY worker_type; ``` --- ## REST API 설계 대시보드와 워커 간 통신을 위한 API 엔드포인트: ### 워커 목록 조회 ``` GET /api/workers Response: [{ "workerId": "sp_office_hw_00_105396", "status": "running", "lastHeartbeat": "2026-03-21T10:30:00Z", "processedCount": 1523 }] ``` ### 워커 등록/갱신 ``` POST /api/workers Body: { "workerId": "sp_office_hw_00_105396", "status": "running", "processedCount": 1523 } ``` ### 워커 라우팅 변경 ``` PATCH /api/bots/{botId}/location Body: { "location": "office" } ``` --- ## 대시보드 UI 구성 요소 1. **워커 리스트**: 전체 워커 상태를 테이블로 표시 2. **헬스 인디케이터**: 정상(녹색), 경고(노란색), 오류(빨간색) 3. **처리량 그래프**: 시간별 처리된 작업 수 4. **라우팅 관리**: 워커별 작업 할당 규칙 조정 --- ## 원격 워커 관리: Tailscale 활용 원격 네트워크의 워커를 관리할 때는 VPN 솔루션(예: Tailscale)을 사용하면 편리합니다. 각 워커는 안전한 터널을 통해 중앙 대시보드와 통신하며, 방화벽 설정 없이도 프라이빗 네트워크처럼 관리할 수 있습니다. --- ## 핵심 요약 ✅ **워커 ID는 구조화된 형식으로** 설계 ✅ **헬스체크 테이블**로 상태 추적 ✅ **REST API**로 대시보드-워커 통신 ✅ **SQL 쿼리**로 실시간 모니터링 ✅ **VPN 솔루션**으로 원격 워커 관리 다음 단계로는 알림(Slack, 이메일) 연동, 자동 재시작 로직, 로그 수집 시스템 통합을 고려해보세요.
#워커모니터링#분산시스템#대시보드개발#헬스체크#API설계#백엔드
공유하기:

이 주제에 대해 더 알아보고 싶으신가요?

프로젝트 상담을 통해 맞춤형 솔루션을 제안받으세요.