Kubernetes + Zabbix 연동: Grafana 변수(Query)로 만드는 동적 모니터링 대시보드

Kubernetes 환경에서 Pod 단위의 네트워크 트래픽을 모니터링하려면, 단순히 고정된 쿼리만으로는 부족하다. Pod, Host, Group이 계속 바뀌기 때문이다. 그래서 Grafana의 템플릿 변수(Template Variable) 기능을 적극적으로 활용해야 한다.

아래 예시는 내가 실제 운영하고 있는 Zabbix + Grafana 환경에서 구성한 Pod 네트워크 모니터링 대시보드를 기반으로 설명한다.
이 글을 참고삼아 응용해서 다양한 환경에서 grafana를 잘 적용할 수 있길 바란다.


1. 대시보드 개요

[그림 1]

[그림 2]

위 그림은 Pod 별 네트워크 사용량을 보여주는 대시보드다.

  • [그림 1] : Pod 별 네트워크 RX/TX 트래픽의 현재 사용량을 보여주는 상태 지표
  • [그림 2] : 시간대별 사용량을 보여주는 트래픽 추이 그래프

이 화면은 단일 쿼리가 아니라, 변수 기반 동적 쿼리로 구성되어 있다. 즉, 특정 Group/Host/Item을 선택하면 그에 맞는 데이터가 자동으로 바뀌는 구조다.


2. Group 변수 활용

  • 데이터 소스: Zabbix
  • Query Type: Group

Group 변수는 모니터링 대상이 되는 Host Group을 불러온다. 예를 들어, kubelet 관련 그룹만 가져오도록 필터링하면, Kubernetes 관련 노드들만 대시보드에 노출된다.

👉 활용 포인트

  • 전체 그룹 중 특정 네임스페이스나 워크로드 그룹만 필터링
  • 운영 환경(Prod/Dev) 별 그룹을 구분해 선택 가능

3. Host 변수 활용

  • Query Type: Host
  • Group: $Group

앞서 선택한 Group에 따라 그 안의 Host 리스트가 자동으로 바뀐다. 예를 들어, Kubelet it-db-1과 같은 노드 Host를 선택할 수 있다.

👉 활용 포인트

  • 특정 노드(Pod가 붙은 워커 노드 등)만 골라서 모니터링
  • DB 서버, Proxy 서버처럼 특정 워크로드 Host만 집중 관찰

4. Item 변수 활용 – RX / TX

  • Query Type: Item
  • Group: $Group
  • Host: $BetaDB1
  • Item: RX 또는 TX 항목만 필터링

이렇게 하면 Host의 모든 지표 중에서 네트워크 관련 지표만 선택할 수 있다.
즉, RX(수신)과 TX(송신)를 분리해 모니터링할 수 있고, 이를 조합하면 Pod 단위 트래픽을 직관적으로 확인할 수 있다.

👉 활용 포인트

  • Pod 트래픽 중 Ingress/Egress 구간을 분리 모니터링
  • RX/TX 추이를 별도 그래프로 나누거나, 합산 지표로 묶어서 활용
  • 특정 Pod의 네트워크 병목 문제 추적

5. 실제 대시보드 반영

위의 그림 처럼 변수 드롭다운이 생긴다.

  • PODNetWork_RX
  • PODNetWork_TX

운영자는 여기서 원하는 값을 선택할 수 있고, 대시보드의 모든 쿼리와 차트가 선택된 값에 맞춰 자동으로 갱신된다.


6. Grafana 변수 문법 정리

Grafana 템플릿 변수 문법은 크게 세 가지 Query Type에 따라 나뉜다.

(1) Group

  • Host Group 목록을 가져오는 데 사용
  • 필터링 가능 (.*kubelet.* 같은 식)

(2) Host

  • Group 내 특정 Host 목록을 가져옴
  • 상위 Group 변수를 참조 가능 ($Group)
  • Host 이름 일부 매칭 가능 (.*db-1$)
  • 해당 Host 이름만 매칭되는 노드 선택 가능 (^Kubelet it-db-1$)

(3) Item

  • Host가 가진 Metric(Item)을 가져옴
  • 특정 이름 패턴만 선택 가능 (.*TX.*, .*RX.*)
  • 대소문자 구분하지 않고 패턴 선택 가능 (/.RX../i -> i가 무시 플래그)
  • Application 별로 제한 가능

👉 정리하면

  • Group → Host → Item 순으로 종속성을 가지며,
  • 상위 변수를 $Group, $Host로 불러다 쓸 수 있다.
  • 실제 운영에서는 이 체계를 활용해 Pod → Node → Network Item 까지 Drill-down 형태로 모니터링 구성이 가능하다.

7. 활용 방법

  1. 운영 환경 분리
    • Group 변수를 Prod, Dev, Test로 분리하면, 같은 대시보드를 여러 환경에서 재사용 가능하다.
  2. 네트워크 병목 분석
    • RX/TX 별 트래픽을 분리하면, 특정 Pod가 과도한 송신이나 수신을 하고 있는지 한눈에 알 수 있다.
  3. 자원 최적화
    • Pod 단위 네트워크 사용량을 분석하면, 네트워크 대역폭 사용량이 어느 노드에서 집중되는지 분석할 수 있다.

8. 마무리

Grafana의 변수(Query) 기능은 단순히 선택 옵션을 만드는 수준이 아니라,

  • 환경을 분리하고,
  • 데이터를 계층적으로 Drill-down하며,
  • 운영자가 보고 싶은 정보만 직관적으로 노출할 수 있게 한다.

특히 Zabbix와 Kubernetes 환경을 연동한 네트워크 모니터링에서는,
Pod → Host → Item 구조를 변수를 통해 잘 설계하는 것이 대시보드 활용도의 핵심이다.

ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. 본문 및 이미지를 무단 복제·배포할 수 없습니다. 공유 시 반드시 원문 링크를 명시해 주세요.
ⓒ 2025 엉뚱한 녀석의 블로그 [quirky guy's Blog]. All rights reserved. Unauthorized copying or redistribution of the text and images is prohibited. When sharing, please include the original source link.