본문으로 건너뛰기
로그인 둘러보기
시스템·유틸리티 · 윈도우즈 유틸

Prometheus Windows exporter (MSI Installer)

0

Prometheus Windows exporter는 Windows 시스템의 메트릭을 수집하여 Prometheus 모니터링 시스템에 제공하는 오픈소스 소프트웨어입니다.

Windows메트릭모니터링서비스엑스포터

소개

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 설치 파일을 다운로드할 수 있습니다. 설치는 다음 단계를 따릅니다:

  1. GitHub 저장소의 Releases 페이지에서 최신 버전의 windows_exporter.msi 파일을 다운로드합니다.
  2. 다운로드한 MSI 파일을 실행합니다.
  3. 설치 마법사의 안내에 따라 설치를 완료합니다. 기본적으로 C:Program Fileswindows_exporter 디렉터리에 설치되며 Windows 서비스로 등록됩니다.
  4. 설치 중에 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 속성을 구성하는 것이 권장됩니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.