👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

Devops

Windows, Linux 시스템 모니터링 설정 및 문제 해결

Potato_H 2024. 9. 2. 17:55
반응형

최근 Windows와 Linux 환경에서 Telegraf, InfluxDB, Grafana를 사용해 시스템 모니터링을 설정하는 작업을 수행하면서 다양한 문제를 겪었습니다.

 

Windows와 Linux에서 Telegraf, InfluxDB, Grafana를 사용하여

시스템 모니터링을 설정하면서 겪은 문제들과 해결 방법

 

 

1. Telegraf Windows 서비스 설정 오류 해결

- sc.exe 명령어는 윈도우 파워쉘이 아닌 cmd창에 입력해야한다. (관리자 권한으로 명령 프롬프트 실행)

- sc.exe delete "Telegraf" 로 기존 서비스 삭제 시에 삭제 반영까지 조금 걸린다.

 

 

2. InfluxDB에서 Windows와 Linux의 데이터를 구분하여 수집하기

- Windows와 Linux에서 각각 Telegraf를 설정하여 데이터를 수집할 때, 데이터베이스 이름이 같아 혼동이 발생할 수 있다.

- Windows와 Linux에서 Telegraf의 설정 파일(telegraf.conf)이 동일한 이름을 사용하고 있어서 InfluxDB에서 두 시스템의 데이터가 혼동되었으며, 윈도우에서는 win_telegraf.conf, 리눅스에서는 telegraf.conf로 지정하였다.

 

 

3. Telegraf 설정 파일에서 win_perf_counters 및 win_services 수정

기본 설정 파일에는 수집할 성능 카운터(메모리, 디스크, cpu 등의 리소스)와 서비스가 제대로 정의되어 있지 않았습니다. 따라서 Telegraf가 원하는 데이터를 수집하지 못하여, 아래와 같이 주석을 해제하여 수정하였다.

[[inputs.win_perf_counters]]
  ## CPU 사용률 수집
  [[inputs.win_perf_counters.object]]
    ObjectName = "Processor"
    Instances = ["*"]
    Counters = ["% Idle Time", "% Interrupt Time", "% Privileged Time", "% User Time", "% Processor Time"]
    Measurement = "win_cpu"

  ## 메모리 사용률 수집
  [[inputs.win_perf_counters.object]]
    ObjectName = "Memory"
    Counters = ["Available Bytes", "Cache Faults/sec", "Page Faults/sec", "Pages/sec"]
    Measurement = "win_mem"

  ## 디스크 I/O 성능 수집
  [[inputs.win_perf_counters.object]]
    ObjectName = "PhysicalDisk"
    Instances = ["*"]
    Counters = ["Disk Read Bytes/sec", "Disk Write Bytes/sec", "Current Disk Queue Length"]
    Measurement = "win_diskio"

 

 

4. 데이터 수집 오류: Telegraf와 InfluxDB 연결 문제

Telegraf가 InfluxDB에 데이터를 전송하지 못하는 문제가 있었다.

  1) InfluxDB URL 확인: telegraf.conf에서 urls = ["http://<InfluxDB 서버 IP>:8086"]로 설정을 확인

  2) 사용자 이름과 비밀번호가 정확한지 확인