본문 바로가기
자빅스/Case Study

Case Study- Zabbix에서 수집한 데이터를 Grafana를 통해 시각적으로 구성하기

by chloefordmove 2023. 10. 26.

안녕하세요, 디무브입니다!

Zabbix 서버 구축 후, 대시보드를 구성할 때 정적 UI와 같은 이유로 아쉬웠던 적 많으시죠? 이러한 점을 해소하기 위하여 Grafana Labs에서 Zabbix 서버 간의 데이터 시각화를 지원할 수 있는 플러그인을 개발하였는데요. 오늘은 Zabbix와 Grafana의 연동 방법 그리고 두 대시보드 간의 차이에 대하여 다루도록 하겠습니다.

먼저, Grafana에 대해서 살펴보도록 하겠습니다.

 


 

Grafana란?

Grafana는 Grafana Labs에서 개발한 오픈 소스 기반의 플랫폼으로, 모니터링 및 Observability를 위한 플랫폼입니다. Grafana를 사용하면 메트릭이 저장된 데이터 소스에 관계없이 메트릭에 대한 쿼리를 실행하여 이를 기반으로 시각화가 가능합니다. 대시보드를 생성하여 데이터를 탐색하고, 팀 단위로 공유하여 시각적으로 데이터를 분석할 수 있습니다.

  • Visualizations
    다양한 옵션을 제공(Time chart, Table, Gauge Chart, History Table)하여 메트릭 및 로그를 시각화할 수 있습니다.
  • Dynamic Dashboard
    대시보드를 생성하게 되면 다른 대시보드에서 생성한 위젯을 재 사용하거나 템플릿 형태로 생성하여 사용할 수 있습니다.
  • Explore Metrics
    ad-hoc 기반 쿼리와 dynamic drilldown을 활용하여 수집된 데이터를 확인할 수 있습니다. 서로 다른 시간의 범위를 지정하여 Query 및 원본 데이터 간의 비교가 가능합니다.
  • Expore Logs
    레이블 필터를 이용하여 메트릭과 로그 간 전환을 자유롭게 할 수 있습니다. 모든 로그를 빠르게 검색하거나, 라이브 스트리밍이 가능합니다.
  • Alerting
    중요 메트릭 정보에 대하여 시각적으로 알람을 구성하여 확인할 수 있습니다. 이것을 기반으로 Slack, PagerDutym Victor Ops, OpsGenine에 알림을 전송할 수 있습니다.
  • Mixed Data Sources
    데이터 소스 생성 후 각 데이터 소스 간의 데이터를 합산하여 메트릭을 생성할 수 있습니다.

 


 

Grafana의 종류

Grafana의 경우, 3가지 형태로 애플리케이션을 배포하고 있습니다. 각 배포 형태에 대하여 간략히 설명해 보도록 하겠습니다. 본 포스팅에서 사용하는 Grafana의 경우 Open Source 기반의 Grafana를 사용하고 있습니다.

Open Source Cloud Enterprise
▶ 사용자가 직접 Grafana 서버를 운영하며 환경에 맞게 설정하기 위한 경우 사용
▶ SaaS형 서비스로, 별도 서버를 구성하지 않고 클라우드 형태로 사용 가능

▶ Grafana Labs에서 직접 관리하며 개인/팀/기업에서 사용 가능

▶ 사용자 10명 미만의 경우 50K Metric / 50GB Log / 50GB Trace / 50GB Profile / 500UVh의 k6 서비스를 3명에게 무료로 제공

▶ 특정 개인의 개인정보 보호나 특정 환경에 구축되어야 하는 경우 사용

 


 

Grafana와 Zabbix 연동 방법 (Zabbix Integration)

Grafana와 Zabbix를 연동하기 전, Grafana에는 Zabbix 플러그인이 내장되어 있지 않기 때문에 설치가 필요합니다. Grafana에서 아래와 같은 과정으로 플러그인 설치를 진행합니다.

 

1️⃣ Grafana-cli 플러그인 리스트 확인

[root@Zabbix-Grafana ~]# grafana-cli plugins list-remote
id: abhisant-druid-datasource version: 0.0.6
id: aceiot-svg-panel version: 0.0.11
id: ae3e-plotly-panel version: 0.5.0
(생략)

 

2️⃣ Grafana-cli 플러그인 설치

[root@Zabbix-Grafana ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
✔ Downloaded and extracted alexanderzobnin-zabbix-app v4.4.1 zip successfully to /var/lib/grafana/plugins/alexanderzobnin-zabbix-app

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary.

 

3️⃣ Grafana 서버 재가동

[root@Zabbix-Grafana ~]# systemctl restart grafana-server

 

4️⃣ Grafana web ▶ Administration ▶ Data Sources 클릭

 

5️⃣ Add new data source 클릭

 

6️⃣ Zabbix search 후 클릭

 

7️⃣ 각 항목 입력 & 테스트 수행

Name Data Source Name (임의로 지정 가능)
HTTP URL http://(Zabbix Server IP)/api_jsonrpc.php (Zabbix server Base URL)
Access Server (default)
Zabbix API details Username API 연동이 가능한 Zabbix 서버의 Username 입력
(기본적으로 Admin을 주로 사용하며, 별도 계정 생성 후 진행 권고)
Password API 연동이 가능한 Password 입력
(기본적으로 Admin을 주로 사용하며, 별도 계정 생성 후 진행 권고)

 

💡 다음과 같이 Zabbix API 버전이 표기되고, 'Next you can start to visualize data by building dashboard, or by querying data in the Explore view.' 메시지가 표기되어야 정상적으로 연동됩니다.

 


 

Grafana 대시보드와 Zabbix 대시보드 전격 비교

아래의 두 이미지는 각각 Grafana를 통하여 구성한 대시보드와 Zabbix 서버의 대시보드 기능을 통하여 구성한 대시보드입니다. 각 대시보드 별로 어떤 점이 다른지 비교해 보도록 하겠습니다.

<좌> Grafana 대시보드 <우> Zabbix 서버 대시보드

 

다음은 Grafana와 Zabbix 서버의 대시보드 기능을 비교한 표입니다.

기능 Grafana Zabbix 서버
Responsive Web
(반응형 웹)
O
Data Mixing
(데이터 혼합)
O
Data Source Mixing
(데이터 소스 혼합)
O X
Zabbix Macro Widget
(자빅스 서버 내부 Macro Widget)
O
Absolute Time Range
(데이터 조회 주기)
O

 

위의 항목에 대하여 자세히 비교해 보도록 하겠습니다.

 

Responsive Web (반응형 웹)

Grafana의 경우 반응형 웹으로 구성되어 있어 기기의 해상도 별로 UI가 재배치됩니다. 반면, Zabbix 서버의 경우 완벽한 반응형이 아니기 때문에 UI가 잘리게 됩니다.

 
<좌> 모바일 버전 Grafana 대시보드 <우> 모바일 버전 Zabbix 서버 대시보드

 

<좌> 태블릿 버전 Grafana 대시보드 <우> 태블릿 버전 Zabbix 서버 대시보드

 

Data Mixing (데이터 혼합)

Grafana의 경우 Zabbix에서 수집한 데이터 A와 데이터 B를 한 위젯 내에 혼합하여 표기가 가능합니다. 반면, Zabbix 서버의 경우 기본적으로 수집한 데이터와 위젯은 반드시 1 대 1로 매칭 됩니다. (Discovery로 생성된 Item 제외)

<좌> Grafana 대시보드 위젯 <우> Zabbix 서버 대시보드 위젯

 

Data Source Mixing (데이터 소스 혼합)

Grafana의 경우 여러 데이터 소스를 하나의 대시보드 내에서 믹싱하여 사용 가능합니다. (예시 : Zabbix + PostgreSQL) 반면, Zabbix 서버 대시보드의 경우 Zabbix 서버에서 수집하고 있는 데이터들만 대시보드에 구성이 가능합니다.

Grafana Data Source

 

Zabbix Macro Widget (Zabbix 서버 자체 마크로 위젯)

Grafana의 경우 Zabbix 자체 마이크로 위젯을 지원하지 않기 때문에 직접 Zabbix 데이터베이스에서 쿼리를 통하여 일부 데이터를 가져와 위젯으로 사용 가능합니다. 반면, Zabbix 서버 대시보드의 경우 Zabbix Server에서 자체적으로 생성한 위젯을 사용 가능합니다.

<좌> Grafana Dashboard Widget <우> Zabbix Server Dashboard Widget

 

Absolute time range (데이터 조회 주기)

Grafana의 경우 각 위젯 별로 데이터 조회 주기를 설정할 수 없어 전체 대시보드의 데이터 조회 주기를 설정하여 확인이 가능합니다. (이렇게 될 경우, Zabbix의 데이터 수집 주기에 따라 일부 아이템이 ‘No Data’로 보일 수 있습니다.) 하단에 표기되는 위젯의 경우 Zabbix 서버에서 12시간에 한 번씩 데이터를 조회하는 위젯입니다.

<좌> 데이터 조회 주기를 최근 12시간으로 설정했을 때 <우> 데이터 조회 주기를 최근 1시간으로 설정 했을 때

 

 

이렇게 Grafana와 Zabbix 서버를 연동하는 방법과 두 대시보드 간의 차이점에 대하여 알아보았습니다. Zabbix 이용 중 보다 유연한 반응형 대시보드에 대한 구성이 필요하시다면 Grafana를 이용해 보는 것을 추천드립니다.

 


 

보다 자세한 Grafana 대시보드 구성 방법이 궁금하신가요? 디무브에게 물어보세요 👀