Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Prometheus và Grafana là cặp đôi phổ biến trong giám sát hệ thống mã nguồn mở. Một bên thu thập và lưu số đo, một bên vẽ biểu đồ đẹp mắt. Với Docker Compose, bạn có thể dựng cả hai trên máy của mình trong vài phút để làm quen.
Điểm đặc trưng của Prometheus là mô hình kéo (pull): nó chủ động đi lấy số đo thay vì chờ ứng dụng đẩy lên.
Tạo thư mục có file compose.yaml:
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- '9090:9090'
node-exporter:
image: prom/node-exporter
grafana:
image: grafana/grafana
ports:
- '3000:3000'
volumes:
- grafanadata:/var/lib/grafana
volumes:
grafanadata:Và file cấu hình prometheus.yml cạnh nó:
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
- job_name: node
static_configs:
- targets: ['node-exporter:9100']Khai báo hai nơi cần thu thập: chính Prometheus và Node Exporter (gọi theo tên dịch vụ trong Compose, cổng mặc định 9100). Khởi động bằng docker compose up -d. Trong môi trường Docker, Node Exporter đo dựa trên container nên số liệu có thể chưa phản ánh đầy đủ máy chủ thật; để giám sát máy thật bạn cài nó trực tiếp trên máy đó.
Mở http://localhost:9090, vào mục Status và Targets để kiểm tra các nguồn đã ở trạng thái UP chưa. Sau đó thử vài truy vấn PromQL ở tab Graph:
up
node_memory_MemAvailable_bytes
100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)Truy vấn up cho biết nguồn nào đang sống. Truy vấn cuối tính phần trăm CPU đang dùng: rate tính tốc độ tăng trong 5 phút, lấy tỉ lệ thời gian rảnh rồi lấy 100 trừ đi.
http://localhost:3000 và đăng nhập bằng tài khoản mặc định theo tài liệu của Grafana; hệ thống sẽ yêu cầu đổi mật khẩu.http://prometheus:9090.Biểu đồ đẹp mà không ai nhìn thì vô ích. Hãy cấu hình cảnh báo cho những điều cần hành động ngay, ví dụ ổ đĩa sắp đầy hay dịch vụ ngừng phản hồi. Prometheus có luật cảnh báo, và thường kết hợp Alertmanager để gửi thông báo; Grafana cũng có hệ thống cảnh báo riêng.
Hầu hết ngôn ngữ đều có thư viện client của Prometheus để ứng dụng tự phơi bày số đo, thường ở đường dẫn /metrics. Bạn có thể đếm số yêu cầu, đo thời gian xử lý, theo dõi số tác vụ trong hàng đợi. Thêm một mục mới vào scrape_configs là Prometheus bắt đầu thu thập.
Chỉ với hai file cấu hình, bạn đã có một hệ thống giám sát hoạt động: thu thập, truy vấn, trực quan hóa. Từ đây hãy thêm số đo của ứng dụng và cảnh báo cho những chỉ số then chốt.
Để thực hành giám sát từ cơ bản đến nâng cao, bạn có thể xem các khóa học liên quan tại codebem.com.
Nguyễn Đình Cường
0 comment