Trong kỷ nguyên Cloud-native, việc giám sát hạ tầng (Infrastructure Monitoring) không chỉ là theo dõi uptime, mà là hiểu sâu về sức khỏe của toàn bộ hệ thống. Prometheus và Grafana đã trở thành bộ đôi tiêu chuẩn vàng (Golden Standard) giúp các kỹ sư DevOps nắm bắt mọi chỉ số quan trọng trong thời gian thc.
1. Tại sao chọn Prometheus & Grafana?
Prometheus nổi bật với mô hình Pull-based mạnh mẽ, cho phép thu thập metrics từ hàng ngàn endpoint mà không làm quá tải hệ thống. Trong khi đó, Grafana là "linh hồn" của sự hiển thị, giúp biến những con số khô khan thành những biểu đồ trực quan, sinh động và đầy ý nghĩa.
Hệ thống Monitoring tốt không chỉ báo cáo sự cố, mà còn giúp bạn dự đoán và ngăn chặn chng trước khi xảy ra.
2. Cài đặt Node Exporter (Agent thu thập)
Prometheus có thể thu thập dữ liệu, chúng ta cần một agent chạy trên các server mục tiêu. Node Exporter là lựa chọn hàng đầu cho các hệ thống Linux.
Tải và cài đặt:
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
Thiết lập Systemd Service:
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
3. Cấu hình Prometheus Server
Prometheus sử dụng file YAML để định nghĩa các mục tiêu cần thu thập (Targets). Bạn cần khai báo địa chỉ IP của các server đã cài Node Exporter.
File cấu hnh prometheus.yml:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "cloud_infrastructure"
static_configs:
- targets: ["10.0.0.5:9100", "10.0.0.10:9100"]
- job_name: "prometheus_self"
static_configs:
- targets: ["localhost:9090"]
4. Tối ưu Dashboard trên Grafana
Sau khi kết nối Data Source l Prometheus bằng URL http://localhost:9090, bạn có thể tự xây dựng dashboard hoặc sử dng các template có sẵn.
- Dashboard ID 1860: Cung cấp cái nhìn toàn diện về CPU, RAM, Disk và Network IO của Node Exporter.
- Dashboard ID 11074: Chuyên sâu cho Docker containers và Resource Usage.
- Dashboard ID 14500: Tối ưu cho giám sát Network traffic và Latency.
5. Thiết lập Alerting (Cảnh báo)
Một hệ thống monitoring hon chỉnh không thể thiếu Alerting. Bạn có thể thiết lập cảnh báo trực tiếp trên Prometheus (thông qua Alertmanager) hoặc sử dụng tính năng Alerting mạnh mẽ của Grafana để gửi thông báo qua Slack, Telegram hoặc Email.
groups:
- name: basic_alerts
rules:
- alert: HighCpuUsage
expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU detection on {{ $labels.instance }}"
Tổng kết
Việc làm chủ Prometheus và Grafana giúp bạn kiểm soát hoàn toàn hạ tầng, giảm thiểu thời gian Downtime và tối ưu hóa tài nguyên server. Hãy bắt đầu từ những cấu hình c bản và dần mở rộng sang các hệ thống phức tạp hơn như Kubernetes hay Microservices.
Chúc các bạn thành công trên con đường chinh phục DevOps!
Leave a Comment