Windows 컨테이너, NT 서비스 마이그레이션, 로그 수집까지!

by DD
6년 전
조회수 6

Windows 컨테이너 환경에서 NT 서비스를 컨테이너화하는 어려움을 설명함

ServiceMonitorLogMonitor 유틸리티를 활용하여 Docker 컨테이너 내 서비스 실행 및 로그 수집

표준 출력으로 로그를 내보내면서 컨테이너 생명주기 관리 가능

NT 서비스 컨테이너화의 핵심: ServiceMonitor

Windows 환경에서 NT 서비스Service Control Manager(SCM)에 의해 관리된다. 따라서, 컨테이너 런타임은 SCM의 실행 상태를 직접 고려하지 않는다. ServiceMonitor는 이러한 문제를 해결하기 위해, SCM에 의해 제어되는 서비스를 컨테이너 내에서 정상적으로 실행되도록 돕는다.

로그 수집, LogMonitor와 표준 출력

컨테이너 환경에서 로그 수집은 필수적이다. LogMonitor는 NT 서비스의 이벤트 로그, ETW 로그, 로그 파일을 수집하여 표준 출력(stdout)으로 내보낸다. 따라서, Docker 컨테이너의 로그를 쉽게 확인하고 관리할 수 있으며, 모니터링 시스템과의 연동도 용이하다.

NT 서비스 컨테이너화, 리팩토링 vs 유틸리티

NT 서비스 컨테이너화는 리팩토링유틸리티 활용 두 가지 접근법이 존재한다. LogMonitor와 같은 유틸리티는 빠른 적용이 가능하지만, 근본적인 해결책은 아니다. 따라서, 장기적으로는 콘솔 애플리케이션 형태로의 리팩토링을 고려하여 확장성유지보수성을 확보해야 한다.

[Windows 컨테이너] 3: NT 서비스를 Windows 컨테이너로 마이그레이션하기