Mục lục bài viết

Monitoring

Hướng Dẫn Toàn Tập Cài Đặt và Quản Trị Grafana Trên Ubuntu 24.04 / Debian 13 (Kèm Nginx & SSL)

phongdh
phongdh
Chia sẻ:
Zalo
Hướng Dẫn Toàn Tập Cài Đặt và Quản Trị Grafana Trên Ubuntu 24.04 / Debian 13 (Kèm Nginx & SSL)

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.04Debian 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.
  • 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)) * 100

Theo 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.conf
server {
    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-server

Bướ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.yaml
apiVersion: 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-server

Bướ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 grafana

Gỡ 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/grafana

Phụ 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.log

Nguyê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 3000

Check 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.

Chia sẻ:
Zalo
phongdh

phongdh

Content Creator

Chào mọi người, mình là Phong - hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Email/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau.

Kết nối:

Bài viết liên quan

Những bài viết bạn có thể quan tâm

Thảo luận

0 bình luận cho bài viết này

* Địa chỉ email của bạn sẽ được bảo mật và không hiển thị công khai.

Chưa có bình luận nào

Hãy là người đầu tiên chia sẻ góc nhìn của bạn về bài viết này nhé!

Zalo

Nhập từ khóa để tìm kiếm...

0 kết quả

CHUYÊN MỤC LIÊN QUAN