Hướng Dẫn Giám Sát Hệ Thống Với Prometheus & Grafana

1. Giới Thiệu

Giám sát hệ thống là một phần quan trọng trong DevOps để đảm bảo hiệu suất và độ ổn định của hệ thống. Prometheus là một hệ thống giám sát mạnh mẽ, thu thập dữ liệu từ các máy chủ và ứng dụng. Grafana là một công cụ trực quan hóa dữ liệu giúp bạn tạo dashboard dễ hiểu.

Trong bài viết này, chúng ta sẽ:

  • Cài đặt Prometheus & Grafana bằng Docker.
  • Cấu hình Node Exporter để giám sát hệ thống.
  • Tạo dashboard trong Grafana để theo dõi hiệu suất máy chủ.
  • Thiết lập cảnh báo (Alerting) để phát hiện sự cố.

2. Cài Đặt Prometheus & Grafana

2.1. Cài đặt Prometheus bằng Docker

Tạo một thư mục cho Prometheus:

mkdir -p ~/monitoring/prometheus && cd ~/monitoring/prometheus

Tạo file cấu hình prometheus.yml:

global:
  scrape_interval: 15s  # Tần suất lấy dữ liệu

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
      - targets: ['node_exporter:9100']

Chạy Prometheus bằng Docker:

docker run -d --name=prometheus \
  -p 9090:9090 \
  -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

Truy cập giao diện Prometheus: http://localhost:9090

2.2. Cài đặt Grafana bằng Docker

Chạy Grafana:

docker run -d --name=grafana \
  -p 3000:3000 \
  grafana/grafana

Truy cập giao diện Grafana: http://localhost:3000 (Mặc định user/pass: admin/admin)

3. Giám Sát Hệ Thống Với Node Exporter

3.1. Cài đặt Node Exporter

Node Exporter giúp thu thập thông tin về CPU, RAM, Disk, Network của hệ thống.

Chạy Node Exporter bằng Docker:

docker run -d --name=node_exporter \
  -p 9100:9100 \
  prom/node-exporter

Thêm Node Exporter vào prometheus.yml:

  - job_name: 'node_exporter'
    static_configs:
      - targets: ['node_exporter:9100']

Reload Prometheus:

curl -X POST http://localhost:9090/-/reload

Kiểm tra dữ liệu từ Node Exporter tại http://localhost:9100/metrics

4. Tạo Dashboard Trong Grafana

4.1. Kết nối Grafana với Prometheus

  1. Truy cập Grafana http://localhost:3000
  2. Vào Configuration > Data Sources
  3. Chọn Prometheus và nhập URL: http://prometheus:9090
  4. Nhấn Save & Test

4.2. Import Dashboard Mẫu

Vào Dashboards > Import và nhập ID: 1860 để tải dashboard giám sát Linux.

5. Thiết Lập Cảnh Báo (Alerting)

5.1. Tạo Rule Cảnh Báo Trong Prometheus

Tạo file alert_rules.yml:

groups:
  - name: alert_rules
    rules:
      - alert: High CPU Usage
        expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "CPU sử dụng cao trên {{ $labels.instance }}"

Thêm vào prometheus.yml:

rule_files:
  - alert_rules.yml

Reload Prometheus:

curl -X POST http://localhost:9090/-/reload

5.2. Cấu hình AlertManager

Tạo file alertmanager.yml:

route:
  receiver: 'email'
receivers:
  - name: 'email'
    email_configs:
      - to: 'your-email@example.com'
        from: 'alert@example.com'
        smarthost: 'smtp.example.com:587'
        auth_username: 'your-email@example.com'
        auth_password: 'your-password'

Chạy AlertManager bằng Docker:

docker run -d --name=alertmanager \
  -p 9093:9093 \
  -v $(pwd)/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
  prom/alertmanager

Thêm AlertManager vào prometheus.yml:

alerting:
  alertmanagers:
    - static_configs:
        - targets:
            - 'alertmanager:9093'

6. Kết Luận

Sau bài hướng dẫn này, bạn đã có thể:

  • Cài đặt Prometheus và Grafana để giám sát hệ thống.
  • Thu thập dữ liệu từ Node Exporter.
  • Tạo dashboard trực quan với Grafana.
  • Thiết lập cảnh báo khi hệ thống gặp sự cố.

Đây là bước quan trọng để đảm bảo hệ thống của bạn luôn hoạt động ổn định và phát hiện lỗi sớm.

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận