본문 바로가기
Engineering/OS -Linux, Windows, EXSi

(windows) Telegraf : Windows Application(Process) Memory Monitoring

by 알탱2 2022. 5. 6.
반응형

 팀에서 Telegraf + Influx DB + Grafana 조합으로 Linux Docker Container Monitoring 시스템을 운영하고 있다. 기존에는 Docker Container 형태로 배포되는 Application만 모니터링 하다가 Windows Native Application 을 모니터링에 추가해야 하는 상황이 발생하였다. 이에 따라 Windows 환경에서 Telegraf 설치 및 모니터링을 위한 Config Setting을 해본 내용을 정리해보고자 한다.

 이 Post에서 Influx DB와 Grafana 설치는 생략한다. (필자의 경우 기존 Influx DB와 Grafana가 설치된 상태에서 특정 지표만 추가하는 상황이어기 때문) Influx DB와 Grafana 초기 설치 및 셋팅은 추후에 별도로 포스팅을 해보는 것으로..

 


Windows에 Telegraf 설치

(1) 설치 파일 다운로드 : 

  • 다운로드 페이지 : Link
  • 필자의 경우, 아래 캡쳐 화면에서 wget 명령어를 Windows PowerShell 에서 입력하여 파일을 다운로드 받았고, 압축을 푼 뒤, "C:\Program Files\Telegraf" 폴더를 생성하여 해당 폴더에 telegraf.exe, telegraf.conf 파일을 copy 하였다.

 

(2) 설정 편집 (telegraf.conf)

  • 텍스트 편집기에서 telegraf.conf 파일을 열어 아래 부분 입력
  • 아래 설정은 테스트를 위한 주요 설정 내용이며, 그 외 설정값들은 default 값으로 사용하거나, 환경에 맞게 설정을 변경해줘야 함
    • [agent]
      • hostname : 해당 이름으로 Influx DB에 추가되며, Grafana에서 해당 이름으로 filtering하여 데이터 추출 가능
    • [[outputs.influxdb]]
      • urls : influx DB 설치 환경에 대한 url info.
      • database : influx DB에 생성한 DATABASE NAME. influx DB에서 생성해야 함. (influx DB에 database 생성 방법은 본 Post에서는 생략)
    • [[inputs.win_perf_counters.object]]
      • ObjectName : "Process" 고정으로 입력. Windows 성능 모니터에서 정의된 Application 단위 명.
      • Counters : Windows Application에 Memory 모니터링을 위한 지표 중, 2가지( Private Bytes, Working Set )에 대해 지속적으로 값을 수집하기 위함. 그 외 수집 가능 Counter 정보는 Link 참고.
      • Instances : exe 파일명에 해당함. 만약 "Test AppName.exe" 파일을 모니터링하고자 한다면 "Test AppName" 으로 입력. (이름이 불확실할 경우 Windows 성능 모니터 설정 가이드(Link)에서 인스턴스 이름을 참고)
      • Measurement : Influx DB에서 mesurement로 조회하고자 하는 이름을 지정. 다른 지표(cpu, disk 등)와 차별되는 이름으로 지정해야 구별이 가능함. 필자의 경우, Influx DB의 "Test1"이란 database에 기존 존재하지 않는 "win_mem" 이름으로 지정함
[agent]
  hostname = "Windows_Test"

# 생략

[[outputs.influxdb]]
  urls = ["http://10.220.150.50:8086"]
  database = "Test1"
  timeout = "5s"

# 생략

[[inputs.win_perf_counters.object]]
  ObjectName = "Process"
  Counters = [
  "Private Bytes",
  "Working Set"
  ]
  Instances = ["Test AppNames"] 
  Measurement = "win_mem"

# 생략

 

(3) Telegraf를 Windows Service에 등록 및 실행

  • Windows PowerShell을 실행 ( Windows 키 + PowerShell 입력하여 "관리자 모드로 실행 )

 

  • Windows Service 로 등록
cd 'C:\Program Files\Telegraf\'
.\telegraf.exe -service install

 

  • 서비스 실행

 

 

Influx DB에 데이터 수집 확인하기

Influx CLI 에서 아래 query 입력 : 

influx -database 'Test1' -execute 'select * from win_mem limit 10'

 

 

 

Grafana에서 Monitoring Panel 추가하기

 

 

 

 

 

 

 

* 참고 링크 : 

https://medium.com/@lakitharav/resource-monitoring-using-grafana-telegraf-for-windows-6197fa5c2e11 

https://tshooter.tistory.com/93

https://blog.hjf.pe.kr/466

 

 

 

반응형

댓글