본문 바로가기
Database/PMM

PMM서버에 Windows Export 연동

by 화곡공룡 2022. 5. 31.
반응형

PMM서버에 Windows Export 연동하기

PMM은 기본적으로 Open Source Database의 Metric 정보만 연동하기 때문에
Windows 서버는 지원하지 않는다.

하지만 Grafana Open Souce기반으로 만들어졌기때문에 Prometheus에서 제공하는 Windows Exporter를 이용하여 필요한 metric 정보를 수집할 수 있다.

또한 Windows Exporter는 SQL Server Performance Objects Metric도 제공을 해주기때문에 SQL Server가 설치된 서버에서 SQL Server 관련 Metric 모니터링용으로도 적극 활용할 수 있다.

Client 셋팅

첫번째로 metric을 수집하고자 하는 윈도우 서버에 먼저 windows exporter를 설치한다. 설정할 exporter port를 확인하여 방화벽 확인이 필요하다.

Windows Exporter Download

설치 파일은 Github에서 최신 버전을 업데이트 하고 있으며 Download하여 설치 할 수 있다.

Git : https://github.com/prometheus-community/windows_exporter/releases

  • Install 파일은 exe, msi(설치형), Source Code로 제공이되며 msi(설치형)으로 Install시 설치 옵션에서 수집할 metric을 설정할 수 있으며 Service에 등록되어 서버가 재부팅 되어도 자동으로 시작되어 metric을 수집 할 수 있는 장점이 있다.

msi파일로 Install

ENABLED_COLLECTORS 옵션을 확인하여 수집대상 설정

참조 : https://github.com/prometheus-community/windows_exporter#readme

msiexec /i windows_exporter-0.18.1-386.msi ENABLED_COLLECTORS="ad,adfs,cache,cpu,cpu_info,cs,container,dfsr,dhcp,dns,fsrmquota,iis,logical_disk,logon,memory,msmq,mssql,netframework_clrexceptions,netframework_clrinterop,netframework_clrjit,netframework_clrloading,netframework_clrlocksandthreads,netframework_clrmemory,netframework_clrremoting,netframework_clrsecurity,net,os,process,remote_fx,service,tcp,time,vmware" TEXTFILE_DIR="C:\custom_metrics" LISTEN_PORT="9115"

API Test

http://localhost:9115/metrics

실행시 아래와 같이 데이터가 보이면 metric을 수집이 되고 있음을 확인할 수 있다.

# HELP go_gc_cycles_automatic_gc_cycles_total Count of completed GC cycles generated by the Go runtime.
# TYPE go_gc_cycles_automatic_gc_cycles_total counter
go_gc_cycles_automatic_gc_cycles_total 27410
# HELP go_gc_cycles_forced_gc_cycles_total Count of completed GC cycles forced by the application.
# TYPE go_gc_cycles_forced_gc_cycles_total counter
go_gc_cycles_forced_gc_cycles_total 0
# HELP go_gc_cycles_total_gc_cycles_total Count of all completed GC cycles.
# TYPE go_gc_cycles_total_gc_cycles_total counter
go_gc_cycles_total_gc_cycles_total 27410
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0
go_gc_duration_seconds{quantile="0.25"} 0
go_gc_duration_seconds{quantile="0.5"} 0
go_gc_duration_seconds{quantile="0.75"} 0
go_gc_duration_seconds{quantile="1"} 0.0166439
go_gc_duration_seconds_sum 0.9239808
go_gc_duration_seconds_count 27410
# HELP go_gc_heap_allocs_by_size_bytes_total Distribution of heap allocations by approximate size. Note that this does not include tiny objects as defined by /gc/heap/tiny/allocs:objects, only tiny blocks.
# TYPE go_gc_heap_allocs_by_size_bytes_total histogram
go_gc_heap_allocs_by_size_bytes_total_bucket{le="8.999999999999998"} 1.332462928e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="24.999999999999996"} 3.425248985e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="64.99999999999999"} 4.058422288e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="144.99999999999997"} 4.096030224e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="320.99999999999994"} 4.101688603e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="704.9999999999999"} 4.103885611e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="1536.9999999999998"} 4.107077057e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="3200.9999999999995"} 4.107378658e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="6528.999999999999"} 4.107817034e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="13568.999999999998"} 4.108063606e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="27264.999999999996"} 4.108145799e+09
go_gc_heap_allocs_by_size_bytes_total_bucket{le="+Inf"} 4.108255474e+09
go_gc_heap_allocs_by_size_bytes_total_sum 9.9205134936e+10
go_gc_heap_allocs_by_size_bytes_total_count 4.108255474e+09
# HELP go_gc_heap_allocs_bytes_total Cumulative sum of memory allocated to the heap by the application
>

Server 세팅

pmm 서버 콘솔에서 제공하는 node exporter 기능을 이용하여 쉽게 외부 인스턴스를 설정 할 수 있다.

Windows Exporter 연동하기

  1. Configration - PMM Inventory - Add Instance - External Service 클릭

image.png

  1. Client 정보 입력 후 Add Service

image.png

Dashboard 연동하기

  1. 왼쪽 메뉴창에서 + 표시의 Import 선택

image.png

  1. Grafana Labs에서 원하는 Dashboard를 찾아서 ID를 복사
  2. 참조 : https://grafana.com/grafana/dashboards/14694

image.png

  1. dashboard id를 입력하고 Load 클릭

image.png

  1. 여기서 Promethus 선택항목에서 Metrics(default)를 선택한다.

image.png

  1. 연동이 완료된 화면

image.png

반응형

댓글