Grafana+Metricbeat 대시보드 구성과 디스크 사용량 불일치 해결 정리

2026. 2. 14. 12:43k8s

오늘은 Grafana에서 Metricbeat 데이터를 기반으로 CPU/Memory/Disk 대시보드를 만들고, 실제 서버의 df 결과와 디스크 사용량이 다른 문제를 해결한 과정을 정리한다.
핵심은 Metricbeat의 hostfs 경로(/hostfs)집계 함수(avg)로 인한 왜곡, 그리고 호스트 식별 필드(host.name) 추가였다.


1. 호스트 식별 필드(host.name) 추가
Kibana에서 확인했을 때 host.name이 들어오지 않아 서버별 구분이 어려웠다.
그래서 Metricbeat DaemonSet에 spec.nodeName을 받아 host.name으로 강제 세팅했다.

추가한 설정

  • metricbeat.yml에 필드 추가:

    processors:
    - add_host_metadata: ~
    - add_cloud_metadata: ~
    - add_fields:
        target: ''
        fields:
          host.name: ${NODE_NAME}
  • DaemonSet 컨테이너 env 추가:

    env:
    - name: NODE_NAME
      valueFrom:
        fieldRef:
          fieldPath: spec.nodeName

2. Grafana 대시보드 구성(CPU/Memory/Disk)

CPU 패널

  • 쿼리: metricset.name:cpu
  • 메트릭: system.cpu.total.norm.pct (Avg)
  • Group by: host.name
  • Legend: {{term}}

Memory 패널

  • 쿼리: metricset.name:memory
  • 메트릭 예시
    • system.memory.actual.used.pct (Avg)
    • system.memory.actual.used.bytes (Avg)
  • Group by: host.name

Disk 패널

  • 쿼리:
    metricset.name:filesystem AND system.filesystem.mount_point:"/hostfs"
  • 메트릭 예시
    • 사용률: system.filesystem.used.pct (Avg)
    • 사용량: system.filesystem.used.bytes (Max 또는 Last)
  • Group by: host.name

3. Disk 사용량이 df와 다른 이유 및 해결
df -P /에서는 / 사용률이 66%인데 Grafana는 12.7%로 보였다.
원인은 Metricbeat가 실제 //hostfs 경로로 수집하고 있었기 때문이다.

해결 쿼리

metricset.name:filesystem AND system.filesystem.mount_point:"/hostfs"

Bytes 값이 작게 보이는 이유

  • avg(system.filesystem.used.bytes)여러 시점/호스트의 평균이라 값이 작아짐
  • 해결: Max 또는 Last 사용

4. 단위(Unit) 정리

  • system.filesystem.used.pct

    • 값 범위: 0 ~ 1
    • Grafana에서 Unit을 percent (0-1)로 설정
    • 예: 0.6666%
  • system.filesystem.used.bytes / free / available

    • 바이트 단위
    • Grafana Unit은 bytes (IEC) 또는 bytes (SI)
    • IEC: GiB, SI: GB

남은 용량(GB) 패널

  • Metric: system.filesystem.free 또는 system.filesystem.available
  • Aggregation: Max 또는 Last
  • Unit: bytes (SI) 또는 bytes (IEC)

5. 서버에서 실제 값 확인(Ubuntu)

  • 사용률:
    df -P /
  • 바이트 단위:
    df -B1 /