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
- Truy cập Grafana
http://localhost:3000
- Vào Configuration > Data Sources
- Chọn Prometheus và nhập URL:
http://prometheus:9090
- 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.