Bài 1

Tổng quan & Kiến trúc Grafana

Grafana là nền tảng mã nguồn mở để trực quan hoá và giám sát dữ liệu vận hành. Bài này làm rõ Grafana giải quyết vấn đề gì, ba trụ cột observability (metrics, logs, traces), các khái niệm nền tảng (Data source, Dashboard, Panel...) và luồng dữ liệu từ giao diện xuống nguồn.

Grafana là gì & dùng để làm gì
Lớp trực quan hoá cho observability

Grafana là công cụ trực quan hoá & giám sát: bạn kết nối tới một hay nhiều data source (Prometheus, Loki, MySQL, PostgreSQL, Elasticsearch...), viết truy vấn, rồi dựng dashboard gồm nhiều panel để theo dõi hệ thống theo thời gian thực và nhận cảnh báo khi có bất thường.

Điểm mấu chốt: Grafana không lưu trữ dữ liệu của bạn. Nó chỉ truy vấn nguồn mỗi lần render và vẽ kết quả. Vì vậy Grafana là lớp "mặt tiền" đứng trên các hệ thống lưu trữ metrics/logs khác nhau, gom tất cả về một giao diện. Các trường hợp dùng điển hình:

Cốt lõi: Grafana trực quan hoá, còn lưu trữ & tính toán là việc của data source. Chọn đúng và cấu hình đúng data source quan trọng hơn nhiều so với việc chỉnh màu sắc panel.
Ba trụ cột Observability
Metrics · Logs · Traces

Grafana thường được nhắc trong bối cảnh observability — khả năng hiểu trạng thái bên trong hệ thống qua dữ liệu nó phát ra. Có ba loại tín hiệu (signals):

Trụ cộtLà gìNguồn thường dùng với Grafana
MetricsCon số đo theo thời gian (time series): CPU %, request/s, độ trễ. Nhẹ, tổng hợp tốt, hợp để cảnh báo.Prometheus, Graphite, InfluxDB
LogsBản ghi sự kiện dạng text kèm thời điểm — chi tiết, hợp để điều tra "chuyện gì đã xảy ra".Loki, Elasticsearch
TracesVết đi của một request xuyên qua nhiều service — thấy nút thắt latency nằm ở đâu.Tempo, Jaeger
Mẹo ghi nhớ: Metrics cho biết có gì đó sai, Logs cho biết chuyện gì đã xảy ra, Traces cho biết ở đâu chậm. Grafana + Prometheus + Loki + Tempo là bộ "LGTM stack" của Grafana Labs.
Các khái niệm nền tảng
Từ vựng bắt buộc phải nắm
Khái niệmÝ nghĩa
Data sourceKết nối tới một hệ thống chứa dữ liệu (Prometheus, MySQL, Loki...). Mỗi data source có query editor riêng. Là gốc của mọi panel.
DashboardMột trang gồm nhiều panel được sắp xếp theo lưới. Có time range chung và có thể chứa template variables. Lưu dưới dạng một JSON model.
PanelĐơn vị hiển thị nhỏ nhất — gắn với một hoặc nhiều query và một kiểu vẽ (Time series, Stat, Gauge, Table...).
QueryCâu truy vấn gửi tới data source: PromQL cho Prometheus, SQL cho DB, LogQL cho Loki. Trả về dữ liệu để panel vẽ.
Time rangeKhoảng thời gian đang xem (vd "Last 6 hours"). Áp cho toàn dashboard; có thể auto-refresh 5s/30s...
VariableBiến template (vd $instance) hiện thành dropdown ở đầu dashboard, cho phép lọc động mà không sửa query tay.
Alert ruleQuy tắc đánh giá truy vấn theo chu kỳ; khi vượt ngưỡng sẽ chuyển sang trạng thái Firing và gửi thông báo (xem Bài 4).
Organization / FolderCách nhóm và phân quyền dashboard. Folder chứa dashboard; Org tách biệt hoàn toàn dữ liệu giữa các nhóm người dùng.
Kiến trúc & luồng dữ liệu
Từ trình duyệt xuống data source

Một cài đặt Grafana khá gọn: một tiến trình Grafana Server phục vụ giao diện web và làm cầu nối tới các data source. Bản thân Grafana chỉ cần một CSDL nhỏ (mặc định SQLite, production dùng MySQL/Postgres) để lưu cấu hình của chính nó — dashboard, user, alert rule — chứ không lưu metrics.

Thành phầnVai trò
Grafana ServerTiến trình chính (cổng 3000): phục vụ UI, nhận query từ trình duyệt, chuyển tiếp tới data source rồi trả kết quả về vẽ.
Config DBSQLite/MySQL/Postgres lưu dashboard, users, org, data source, alert rule. Là "nguồn sự thật" về cấu hình Grafana.
Data source(s)Hệ thống ngoài chứa dữ liệu thật (Prometheus, Loki, DB...). Grafana query trực tiếp mỗi lần render panel.
PluginsMở rộng Grafana: data source plugin (thêm nguồn mới), panel plugin (kiểu vẽ mới), app plugin.

Luồng khi bạn mở một dashboard:

Lưu ý: vì Grafana query trực tiếp nguồn mỗi lần render, một dashboard nặng với nhiều panel + refresh 5s có thể tạo tải lớn lên Prometheus/DB. Cân nhắc time range hợp lý, refresh vừa phải và tận dụng recording rule ở phía Prometheus.
Grafana khác gì Prometheus / Power BI
Phân vai cho rõ
Công cụVai trò chínhKhác biệt
PrometheusThu thập & lưu trữ metrics, tính toán bằng PromQL.nguồn dữ liệu; UI của nó rất sơ sài. Grafana thường đứng trên để vẽ đẹp.
GrafanaTrực quan hoá real-time nhiều nguồn, cảnh báo vận hành.Mạnh về time series & monitoring, refresh liên tục, kéo từ nhiều nguồn cùng lúc.
Power BIBI & phân tích nghiệp vụ, mô hình dữ liệu, báo cáo.Mạnh về data modeling, DAX, drill-down nghiệp vụ; thiên về báo cáo định kỳ hơn là monitoring real-time.
Chọn thế nào: cần theo dõi hệ thống/hạ tầng real-time và cảnh báo → Grafana. Cần phân tích nghiệp vụ sâu, mô hình hoá và báo cáo cho lãnh đạo → Power BI. Nhiều tổ chức dùng cả hai cho hai mục đích khác nhau.
← Quay lại
Tổng quan Grafana