소개
Prometheus Windows exporter는 Windows 시스템의 메트릭을 수집하여 Prometheus 모니터링 시스템에 제공하는 오픈소스 소프트웨어입니다. Prometheus 커뮤니티에서 개발 및 유지보수하며, MSI 설치 프로그램을 통해 Windows 서비스로 쉽게 설치할 수 있습니다. CPU, 메모리, 디스크, 네트워크 등 다양한 시스템 구성 요소의 성능 및 상태 정보를 수집하여 모니터링 및 알림에 활용할 수 있습니다.
상세정보
다양한 컬렉터 지원
이 익스포터는 다음과 같은 다양한 시스템 구성 요소에 대한 메트릭을 수집할 수 있는 컬렉터를 제공합니다:
- CPU 사용량 및 정보
- 메모리 사용량 메트릭
- 디스크 드라이브 및 논리 디스크 I/O
- 네트워크 인터페이스 I/O (Net, TCP, UDP)
- OS 정보 (호스트명, 제품/버전, 설치 시간)
- 서비스 상태 메트릭
- 프로세스별 메트릭
- IIS 사이트 및 애플리케이션 메트릭
- Hyper-V 호스트 메트릭
- GPU 메트릭
- Active Directory 관련 서비스 (AD, ADCS, ADFS 등)
- Exchange, MSSQL, SMTP 등 다양한 서버 역할 메트릭
- 텍스트 파일에서 Prometheus 메트릭 읽기
필터링 및 구성 기능
수집할 메트릭을 선택적으로 활성화하거나 비활성화할 수 있는 기능을 제공합니다:
--collectors.enabled플래그를 통해 특정 컬렉터만 활성화 가능[defaults]플레이스홀더를 사용하여 기본 활성화된 컬렉터에 추가 컬렉터를 포함시킬 수 있음- YAML 형식의 구성 파일을 통해 컬렉터 활성화/비활성화 및 컬렉터별 파라미터 설정 가능
- 구성 파일과 CLI 플래그를 혼합하여 사용 가능 (CLI 플래그가 우선순위 높음)
서비스 및 배포 지원
Windows 환경에 최적화된 배포 기능을 제공합니다:
- MSI 설치 프로그램을 통해 Windows 서비스로 자동 설치 및 설정
- 설치 중에 Windows 방화벽 예외 규칙 자동 생성 가능 (
ADDLOCAL=FirewallException속성 사용) - 설치 디렉토리 지정 가능 (
APPLICATIONFOLDER속성) - 로그 출력 대상 구성 가능 (stdout, stderr, eventlog, 파일 등)
- Docker 및 Kubernetes 환경에서도 실행 가능하도록 컨테이너 이미지 제공
메트릭 엔드포인트
다음 HTTP 엔드포인트를 통해 메트릭 및 상태 정보를 제공합니다:
/metrics: Prometheus 텍스트 형식으로 수집된 모든 메트릭 노출/health: 익스포터가 정상 실행 중인지 확인 (200 OK 반환)/debug/pprof/: 성능 프로파일링을 위한 pprof 엔드포인트 (--debug.enabled설정 시만 활성화)
다운로드 및 설치 방법
최신 버전의 Prometheus Windows exporter는 GitHub 릴리스 페이지에서 MSI 설치 파일을 다운로드할 수 있습니다. 설치는 다음 단계를 따릅니다:
- GitHub 저장소의 Releases 페이지에서 최신 버전의
windows_exporter.msi파일을 다운로드합니다. - 다운로드한 MSI 파일을 실행합니다.
- 설치 마법사의 안내에 따라 설치를 완료합니다. 기본적으로
C:Program Fileswindows_exporter디렉터리에 설치되며 Windows 서비스로 등록됩니다. - 설치 중에
ADDLOCAL=FirewallException속성을 지정하면 Windows 방화벽에 예외 규칙이 자동으로 생성되어:9182포트로의 외부 접근이 허용됩니다.
명령줄을 통한 설치를 선호하는 경우, PowerShell에서 다음 명령을 사용할 수 있습니다:
msiexec /i --% ADDLOCAL=FirewallException
설치 중에 다양한 속성을 지정하여 동작을 커스터마이징할 수 있습니다:
ENABLED_COLLECTORS: 활성화할 컬렉터 목록 지정 (예:os,iis,memory,process)LISTEN_PORT: 메트릭을 제공할 포트 지정 (기본값: 9182)METRICS_PATH: 메트릭 엔드포인트 경로 지정 (기본값: /metrics)APPLICATIONFOLDER: 설치 디렉토리 지정 (예:F:Program Fileswindows_exporter)CONFIG_FILE: 사용자 정의 구성 파일 경로 지정EXTRA_FLAGS: 추가 CLI 플래그 전달
설치 속성은 구성 파일보다 우선 적용되므로, 구성 파일을 통해 설정하고자 하는 경우 위 속성들을 사용하지 않아야 합니다.
기본 사용법
설치 후 windows_exporter는 Windows 서비스로 자동 실행됩니다. 서비스는 기본적으로 다음과 같이 동작합니다:
- 모든 기본적으로 활성화된 컬렉터에서 메트릭을 수집합니다.
:9182포트에서/metrics엔드포인트로 메트릭을 제공합니다.- 로그 메시지는 이벤트 로그에 기록됩니다 (MSI 설치 프로그램의 기본 동작).
수동으로 실행하거나 구성을 변경해야 하는 경우, 다음 방법을 사용할 수 있습니다:
명령줄 옵션 사용
windows_exporter 실행 파일에 직접 플래그를 전달하여 동작을 제어할 수 있습니다:
.windows_exporter.exe --collectors.enabled="os,service" --listen-port=5000
자주 사용되는 플래그는 다음과 같습니다:
--web.listen-address: 바인딩할 호스트와 포트 지정 (기본값::9182)--telemetry.path: 메트릭을 제공할 URL 경로 지정 (기본값:/metrics)--collectors.enabled: 활성화할 컬렉터 목록 지정 (기본값:[defaults])--scrape.timeout-margin: 클라이언트 타임아웃에서 뺄 초 단위 값 지정 (기본값: 0.5)--web.config.file: TLS 및 인증을 위한 웹 구성 파일 경로 지정--config.file: YAML 구성 파일 경로 지정--log.file: 로그 출력 대상 지정 (기본값:stderr, MSI 설치 시eventlog로 변경됨)
구성 파일 사용
YAML 형식의 구성 파일을 통해 보다 복잡한 설정을 관리할 수 있습니다. 구성 파일은 --config.file 플래그를 통해 지정할 수 있습니다:
.windows_exporter.exe --config.file=config.yml
구성 파일의 예시는 다음과 같습니다:
yaml
collectors:
enabled: cpu,net,service
collector:
service:
include: windows_exporter
log:
level: warn
구성 파일과 CLI 플래그를 함께 사용할 경우, CLI 플래그가 더 높은 우선순위를 가집니다. 예를 들어:
.windows_exporter.exe --collectors.enabled=cpu
와 함께 다음과 같은 구성 파일을 사용하면:
yaml log: level: debug
최종적으로 --collectors.enabled=cpu 설정이 적용되고, 로그 레벨은 debug로 설정됩니다.
이런 경우에 유용합니다
Prometheus Windows exporter는 다음과 같은 상황에서 특히 유용하게 사용할 수 있습니다:
- Windows 서버 및 워크스테이션의 시스템 성능을 중앙에서 모니터링해야 하는 시스템 관리자
- Prometheus와 Grafana를 사용하여 Windows 호스트의 메트릭을 시각화하고 알림을 설정하려는 DevOps 팀
- Active Directory, Exchange, MSSQL, IIS 등 특정 Windows 서버 역할의 성능 및 가용성을 추적해야 하는 환경
- 컨테이너 또는 가상화 환경에서 Windows 호스트의 리소스 사용량을 모니터링해야 하는 경우
- 사용자 정의 텍스트 파일에서 메트릭을 읽어 Prometheus와 통합해야 하는 특수한 모니터링 요구 사항이 있는 경우
지원 환경·시스템 요구사항
Prometheus Windows exporter는 다음 Windows 버전에서 지원됩니다:
- Windows Server 2016 이상
- Windows 10 및 Windows 11 (21H2 이상)
Windows Server 2012 R2 및 이전 버전에서는 알려진 호환성 문제가 있을 수 있습니다.
제한 사항·확인 사항
설치 및 사용 시 다음과 사항을 확인해야 합니다:
- MSI 설치 관리자를 통해 설치할 경우, 관리자 권한이 필요합니다.
- 설치 중에 생성되는 Windows 서비스는
Local System계정으로 실행되므로, 특정 성능 카운터에 접근하기 위해서는 적절한 권한이 필요할 수 있습니다. - 일부 컬렉터 (예: MSSQL, Exchange)는 해당 역할이 설치된 시스템에서만 의미 있는 메트릭을 제공합니다.
- 설치된 서비스의 로그 수준 및 출력 대상을 변경하려면 구성 파일이나 레지스트리 수정이 필요할 수 있습니다.
- 방화벽 예외를 통해 외부에서의 메트릭 접근을 허용하는 경우, 보안 정책에 따라 적절히 제한된 IP 범위만 허용하도록
REMOTE_ADDR속성을 구성하는 것이 권장됩니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


