Trong công việc quản trị hệ thống Linux và vận hành VPS, việc theo dõi các chỉ số tài nguyên (monitoring) là một phần không thể thiếu để đảm bảo dịch vụ luôn hoạt động ổn định. Thay vì phải đọc những dòng log hay số liệu khô khan, việc trực quan hóa chúng sẽ giúp bạn phát hiện vấn đề chỉ trong nháy mắt với Grafana.
Grafana là một trong những nền tảng phân tích và trực quan hóa dữ liệu mã nguồn mở tốt nhất hiện nay. Bằng cách kết nối với Prometheus, InfluxDB hay Zabbix, Grafana biến mọi dữ liệu phức tạp thành những Dashboard giám sát tuyệt đẹp và chuyên nghiệp.
Bài viết này sẽ hướng dẫn bạn chi tiết toàn bộ vòng đời triển khai Grafana trên Ubuntu 24.04 và Debian 13: từ bước cài đặt cốt lõi, cấu hình Nginx Reverse Proxy, cho đến các thao tác bảo trì, backup và khắc phục sự cố (troubleshooting) thực tế.
Điều Kiện Chuẩn Bị
Trước khi bắt tay vào cấu hình, hãy đảm bảo VPS hoặc Server của bạn đáp ứng các tiêu chuẩn sau:
- Chạy hệ điều hành Ubuntu 24.04 hoặc Debian 13.
- Cấu hình tối thiểu: 1 core CPU, 1 GB RAM (khuyến nghị 2GB trở lên).
- Một tài khoản user có quyền
sudo(hạn chế dùng trực tiếp quyền root). - Đã cài đặt sẵn [Prometheus] (nếu bạn muốn thực hành bước làm Dashboard).
- Một tên miền (Domain) đã trỏ IP về máy chủ để làm chứng chỉ SSL.
- Mở sẵn port 3000/tcp (Grafana) và 443/tcp (HTTPS) trên Firewall.
Cập nhật hệ thống và cài đặt các gói phụ trợ:
sudo apt update && sudo apt install -y apt-transport-https software-properties-common wget curl gnupg
Bước 1: Thêm Repository và Cài Đặt Grafana OSS
Grafana Labs cung cấp kho lưu trữ APT chính thức, giúp việc cài đặt và nâng cấp trên Linux cực kỳ nhàn rỗi.
Đầu tiên, tải và nhập GPG key để hệ thống xác thực gói cài đặt:
sudo mkdir -p /etc/apt/keyrings
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Thêm kho lưu trữ bản Stable (ổn định):
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
Cập nhật danh sách gói và tiến hành cài đặt bản Open Source:
sudo apt update
sudo apt install -y grafana
(Lưu ý: Nếu doanh nghiệp yêu cầu bản Enterprise, bạn dùng lệnh sudo apt install grafana-enterprise).
Bước 2: Kích Hoạt Dịch Vụ và Xử Lý Tường Lửa
Khởi động dịch vụ grafana-server và thiết lập cho phép chạy cùng hệ thống lúc khởi động:
sudo systemctl enable --now grafana-server
Kiểm tra trạng thái dịch vụ xem đã active (running) chưa:
sudo systemctl status grafana-server
Theo mặc định, Grafana lắng nghe trên cổng 3000. Nếu hệ thống của bạn bật tường lửa UFW, hãy mở cổng này:
sudo ufw allow 3000/tcp
sudo ufw reload
Bước 3: Đăng Nhập Lần Đầu Tiên
Mở trình duyệt web và truy cập theo địa chỉ: http://<IP-may-chu>:3000.
- Username mặc định: admin
- Password mặc định: admin
Hệ thống sẽ ép buộc bạn phải đổi một mật khẩu mới an toàn hơn ngay lập tức. Hãy ghi nhớ mật khẩu này cho các bước cấu hình sau.


Bước 4: Tích Hợp Data Source (Nguồn Dữ Liệu)
Grafana tự nó không sinh ra dữ liệu, nó cần một “trạm phát” như Prometheus. Để thêm Prometheus:
- Nhìn thanh menu bên trái, chọn Connections > Data sources > Add data source.

- Chọn Prometheus.

- Điền URL của máy chủ Prometheus vào ô Prometheus server URL (Ví dụ:
http://localhost:9090).

- Cuộn xuống dưới, click Save & test. Nếu có thông báo xanh lá báo hiệu thành công, bạn đã cấu hình đúng.

Bước 5: Sử Dụng Dashboard Từ Cộng Đồng (Import)
Không cần phải tự vẽ từng biểu đồ, cộng đồng Grafana có sẵn hàng ngàn mẫu cực xịn. Với quản trị viên Linux, ID 1860 (Node Exporter Full) là “chân ái” để theo dõi máy chủ.
- Vào Dashboards > New > Import.

- Nhập ID
1860vào ô Import via https://www.google.com/search?q=grafana.com và chọn Load.

- Chọn Data Source là Prometheus vừa tạo ở bước 4.

- Nhấn Import. Ngay lập tức, bạn sẽ có một bảng điều khiển chi tiết về CPU, RAM, Disk I/O, Network,…

Bước 6: Tùy Biến Dashboard Với PromQL
Nếu muốn tự làm chủ các chỉ số, bạn có thể tự tạo Panel bằng ngôn ngữ truy vấn PromQL:
- Vào Dashboards > New > New dashboard, chọn Add visualization -> Prometheus.



- Chuyển sang tab Code và nhập truy vấn.

Ví dụ một số truy vấn hệ thống hữu ích:
Theo dõi RAM đã sử dụng (%):
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100Theo dõi phân vùng Root Disk (%):
100 - ((node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100)
Nếu thấy đường biểu đồ đã hiện lên với số liệu hợp lý, thao tác cuối cùng là nhấn nút Save dashboard (thường nằm ở góc trên cùng bên phải giao diện) để lưu các Panel này vào Dashboard.


Bước 7: Cấu hình Alerting
Grafana 11.x sử dụng công cụ Grafana Alerting theo mặc định. Hệ thống “cảnh báo cũ” (legacy alerting) lưu trữ các quy tắc cảnh báo bên trong các panel của dashboard đã bị loại bỏ từ bản Grafana 10. Toàn bộ tính năng cảnh báo hiện được quản lý tập trung tại mục Alerting ở thanh sidebar (thanh điều hướng bên trái).

Quy trình hoạt động của hệ thống cảnh báo bao gồm 3 phần chính:
- Contact points (Điểm liên lạc): Định nghĩa nơi các thông báo sẽ được gửi đến (như email, Slack, PagerDuty, Opsgenie, webhooks và nhiều nền tảng khác).
- Notification policies (Chính sách thông báo): Kiểm soát việc định tuyến, phân nhóm và thời gian gửi các cảnh báo.
- Alert rules (Quy tắc cảnh báo): Chứa các biểu thức thực tế bằng PromQL (hoặc các ngôn ngữ truy vấn khác) và các ngưỡng (thresholds) giới hạn.
Để tạo một cảnh báo cơ bản, hãy truy cập vào Alerting > Alert rules > New alert rule. Đặt tên cho quy tắc, ví dụ như “High CPU” (CPU cao). Thiết lập truy vấn (query) như sau:
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)Ở phần Expressions, hãy thêm một biểu thức Reduce để tính toán giá trị mới nhất (Last), sau đó thêm một biểu thức Threshold (Ngưỡng) để kích hoạt cảnh báo khi giá trị này vượt mức 90. Thiết lập khoảng thời gian đánh giá (evaluation interval) và khoảng thời gian chờ “for” (ví dụ: đánh giá 1 phút một lần và kích hoạt cảnh báo nếu chỉ số liên tục vượt ngưỡng trong 5 phút). Gán quy tắc này vào một thư mục (folder) và một nhóm đánh giá (evaluation group), sau đó lưu lại.
Trước khi cảnh báo có thể gửi đến bất kỳ ai, bạn cần cấu hình một điểm liên lạc. Hãy vào Alerting > Contact points > Add contact point. Nếu dùng Slack, hãy chọn loại tích hợp là Slack và dán URL webhook của bạn vào. Lưu lại cấu hình contact point, sau đó cập nhật chính sách thông báo mặc định (default notification policy) để sử dụng nó.

Bạn có thể kiểm tra (test) toàn bộ chuỗi quy trình bằng cách tạm thời hạ thấp mức ngưỡng cảnh báo xuống. Khi đã nhận được thông báo thành công, hãy thiết lập lại mức ngưỡng về giá trị thực tế hợp lý.
Bước 8: Bảo Mật Cấp Cao Với Nginx Proxy và SSL Let’s Encrypt
Không nên để lộ port 3000 ra ngoài Internet. Hãy dùng Nginx làm Reverse proxy kết hợp SSL.
Cài đặt Nginx và Certbot:
sudo apt install -y nginx certbot python3-certbot-nginx
Tạo cấu hình Virtual Host cho Grafana (nhớ thay grafana.yourdomain.com bằng tên miền thật):
sudo vi /etc/nginx/sites-available/grafana.confserver {
listen 80;
server_name grafana.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Cần thiết cho tính năng Live WebSockets
location /api/live/ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
Kích hoạt Nginx config:
sudo ln -sf /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Cài đặt chứng chỉ SSL tự động:
sudo certbot --nginx -d grafana.yourdomain.com
Nếu bạn gặp lỗi “Certbot failed to authenticate some domains (authenticator: nginx) hay chạy lệnh sau và kiểm tra lại lệnh cài ssl “”
sudo ufw allow 'Nginx Full'Cuối cùng, cập nhật file cấu hình chính của Grafana tại /etc/grafana/grafana.ini ở mục [server]:
[server]
domain = grafana.yourdomain.com
root_url = %(protocol)s://%(domain)s:%(http_port)s/
protocol = http
Khởi động lại dịch vụ:
sudo systemctl restart grafana-server
sudo systemctl status grafana-server
Giờ đây bạn có thể truy cập Grafana tại https://grafana.example.com. Nếu bạn muốn ngăn chặn truy cập trực tiếp trên cổng 3000, hãy chỉ liên kết Grafana với localhost bằng cách thêm http_addr = 127.0.0.1 vào phần [server] và khởi động lại.

Bước 9: Quản Lý Plugin Để Mở Rộng Tính Năng
Grafana hỗ trợ vô số Plugin (như Zabbix, Pie Chart,…). Quản lý chúng dễ dàng qua CLI.
Xem danh sách plugin:
grafana-cli plugins list-remote
Cài đặt Plugin biểu đồ tròn (Pie Chart):
sudo grafana-cli plugins install grafana-piechart-panel

(Luôn nhớ phải restart lại service grafana sau khi cài thêm Plugin).
sudo systemctl restart grafana-server
sudo systemctl status grafana-serverBước 10: Tự Động Hóa (Provisioning) Bằng YAML
Để đồng bộ cấu hình trên nhiều VPS nhanh chóng mà không cần click chuột thủ công, hãy dùng Provisioning.
Ví dụ, tạo file /etc/grafana/provisioning/datasources/prometheus.yaml:
vi /etc/grafana/provisioning/datasources/prometheus.yamlapiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
isDefault: true
editable: false
Lưu lại và restart Grafana. Data Source sẽ được tự động nhận diện.
sudo systemctl restart grafana-server
sudo systemctl status grafana-serverBước 11: Sao Lưu & Phục Hồi Dữ Liệu (Backup/Restore)
Cơ sở dữ liệu mặc định của Grafana nằm ở /var/lib/grafana/grafana.db.
Lệnh Backup:
sudo cp /var/lib/grafana/grafana.db /var/lib/grafana/grafana.db.backup_$(date +%F)
sudo cp /etc/grafana/grafana.ini /etc/grafana/grafana.ini.backup_$(date +%F)
Lệnh Restore (Khi hệ thống lỗi): Dừng dịch vụ -> Copy đè lại file .db -> Khởi động lại dịch vụ.
Bước 12: Nâng Cấp và Gỡ Cài Đặt (Upgrade/Uninstall)
Nâng cấp: Do đã cài kho lưu trữ APT ở bước 1, bạn chỉ việc chạy lệnh update thông thường của Ubuntu:
sudo apt update && sudo apt install grafanaGỡ cài đặt hoàn toàn (Cẩn thận – Xóa sạch data):
sudo systemctl stop grafana-server
sudo apt remove --autoremove grafana
sudo rm -rf /etc/grafana /var/lib/grafana /var/log/grafanaPhụ Lục: Khắc Phục Sự Cố (Troubleshooting) Hệ Thống
Là một System Admin, bạn chắc chắn sẽ đụng phải lỗi. Dưới đây là cách “bắt bệnh”:
1. Dịch vụ báo lỗi, không Start được
Check log để tìm nguyên nhân gốc:
sudo journalctl -u grafana-server -e
sudo tail -f /var/log/grafana/grafana.logNguyên nhân thường gặp: Cấu hình sai cú pháp trong grafana.ini hoặc lỗi phân quyền file.
2. Không mở được web dù service đang chạy
Check xem có bị đụng port 3000 không:
sudo ss -tulnp | grep 3000Check lại firewall đã allow port 3000 (nếu chưa cấu hình Nginx) hoặc port 443 (nếu đã dùng Nginx) chưa.
3. Lỗi “Database is locked”
Lỗi phổ biến của SQLite. Thường chỉ cần chạy sudo systemctl restart grafana-server là xong. Nếu hạ tầng của bạn lớn, hãy cân nhắc chuyển database từ SQLite sang MySQL trong grafana.ini.
4. Quên mật khẩu Admin (Locked out)
Gõ lệnh này vào Terminal để reset pass quyền cao nhất lập tức:
sudo grafana-cli admin reset-admin-password "MatKhauMoiCuaBan"Tổng Kết
Chỉ với một chút thời gian cấu hình, Grafana kết hợp cùng Prometheus đã mang lại cho bạn một hệ thống giám sát hạ tầng máy chủ vững chắc, chuẩn Enterprise. Quản lý được các thông số từ độ trễ mạng, dung lượng ổ đĩa cho đến cảnh báo CPU, bạn sẽ luôn ở thế chủ động trong việc duy trì ổn định hệ thống VPS của mình.
