👋 Hello, I am Seung-ho Ham

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

Devops

Telegraf, InfluxDB, Grafana를 활용한 Window/Linux 리소스 모니터링 구축

Potato_H 2024. 8. 30. 09:29
반응형

 

- Telegraf: 다양한 시스템 메트릭(CPU, 메모리, 디스크 사용량 등)을 수집하는 에이전트

- InfluxDB: 시계열 데이터베이스로, Telegraf가 수집한 데이터를 저장

- Grafana: InfluxDB에 저장된 데이터를 시각화하여 모니터링 대시보드를 구축하는 도구

 

설치 및 설정 과정 (Windows & Linux)

1) Telegraf 설치 및 설정 (Windows)

  • Telegraf 다운로드 및 설치
# PowerShell에서 Telegraf 다운로드
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.31.2_windows_amd64.zip -UseBasicParsing -OutFile telegraf-1.31.2_windows_amd64.zip

# 다운로드한 파일의 압축을 풀기
Expand-Archive .\telegraf-1.31.2_windows_amd64.zip -DestinationPath 'C:\telegraf'

 

 

Telegraf 설정 파일(telegraf.conf) 편집 Windows에서 다양한 메트릭을 수집하기 위해 아래와 같이 설정합니다:

#Telegraf.conf 파일 메모장으로 실행
notepad c:/telegraf/telegraf-1.31.2/telegraf.conf
[[inputs.win_perf_counters]]
  [[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", "Committed Bytes", "Cache Faults/sec"]
    Measurement = "win_mem"

[[inputs.win_services]]
  servicenames = ["W3SVC", "BITS", "WinRM", "MSSQLSERVER"]

[[inputs.win_eventlog]]
  xpath_queries = [
    "Event[System[Provider[@Name='Microsoft-Windows-Security-Auditing']]]",
    "Event[System[Provider[@Name='Application Error']]]"
  ]
# Telegraf 테스트 모드로 실행
cd "C:\telegraf\telegraf-1.31.2"
.\telegraf.exe --config .\telegraf.conf --test

# Telegraf 서비스 시작
Start-Service telegraf

# Telegraf 서비스 재시작
Restart-Service telegraf

 

2) Telegraf 설치 및 설정 (Linux)

  • Telegraf 설치 Linux에서는 패키지 관리자를 사용하여 Telegraf를 설치합니다
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install -y telegraf

# CentOS/RHEL
sudo yum install -y telegraf

 

Telegraf 설정 파일(telegraf.conf) 편집 Linux에서 다양한 메트릭을 수집하기 위해 아래와 같이 설정합니다

# 설정 파일 열기
sudo nano /etc/telegraf/telegraf.conf
# CPU 메트릭 수집
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false

# 메모리 메트릭 수집
[[inputs.mem]]

# 디스크 I/O 메트릭 수집
[[inputs.diskio]]

# 디스크 사용량 메트릭 수집
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

# 스왑 메모리 메트릭 수집
[[inputs.swap]]

# 시스템 부하 및 가동 시간 수집
[[inputs.system]]

# 네트워크 메트릭 수집
[[inputs.net]]
# Telegraf 테스트 모드로 실행
sudo telegraf --config /etc/telegraf/telegraf.conf --test

# Telegraf 서비스 시작
sudo systemctl start telegraf

# Telegraf 서비스 상태 확인
sudo systemctl status telegraf

# Telegraf 서비스 재시작
sudo systemctl restart telegraf

 

3) InfluxDB 설치 및 설정

  • 윈도우 - InfluxDB 다운로드 및 설치 InfluxDB 공식 사이트에서 OS에 맞는 버전을 다운로드하고 설치합니다.
  • 리눅스
# Ubuntu/Debian
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
echo "deb https://repos.influxdata.com/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update && sudo apt-get install -y influxdb

# CentOS/RHEL
sudo yum install -y https://repos.influxdata.com/influxdb2.x86_64.rpm
  • InfluxDB 실행 (윈도우, 리눅스 각각)
# Windows
cd "C:\Program Files\InfluxData\influxdb"
.\influxd.exe

# Linux
sudo systemctl start influxdb

 

  • InfluxDB 웹 UI를 통한 데이터베이스 설정
    • 브라우저에서 http://localhost:8086로 이동하여 초기 설정을 완료하고 Telegraf 데이터를 저장할 Bucket을 생성합니다.

4) Grafana 설치 및 설정

  • 윈도우 - Grafana 다운로드 및 설치 Grafana 공식 사이트에서 OS에 맞는 버전을 다운로드하고 설치합니다.
# Grafana 서비스 시작
Start-Service grafana
  • 리눅스
# Ubuntu/Debian
sudo apt-get install -y software-properties-common
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update && sudo apt-get install -y grafana

# CentOS/RHEL
sudo yum install -y https://packages.grafana.com/oss/rpm/grafana-release-1.0-1.noarch.rpm
sudo yum install -y grafana
# Grafana 서비스 시작
sudo systemctl start grafana-server

# Grafana 서비스 상태 확인
sudo systemctl status grafana-server

# Grafana 서비스 재시작
sudo systemctl restart grafana-server

 

Grafana 웹 UI에 접근

  • 브라우저에서 http://localhost:3000으로 이동하여 Grafana 웹 UI에 접근
  • 기본 로그인 정보는 admin/admin

데이터 소스 및 대시보드 설정

  1. Grafana에서 InfluxDB 데이터 소스 추가
    • Grafana 웹 UI에서 Configuration > Data Sources로 이동합니다.
    • Add data source를 클릭하고 InfluxDB를 선택한 후, 다음 정보를 입력합니다:
      • URL: http://localhost:8086
      • Database: telegraf (Telegraf에서 설정한 데이터베이스 이름)
      • UserPassword: InfluxDB의 인증 정보
  2. Grafana 대시보드 생성
    • Grafana에서 새로운 대시보드를 생성하고, InfluxDB에서 수집된 데이터를 시각화할 패널을 추가합니다.
    • CPU, 메모리, 디스크, 네트워크 등 다양한 지표를 시각화하여 실시간 모니터링이 가능하도록 설정합니다.