
Giám sát Hệ thống và Quan sát Hạ tầng (Monitoring & Observability)
Khi hệ thống phát triển và vận hành thực tế, việc giám sát (monitoring) và quan sát sâu (observability) trở thành yếu tố bắt buộc để đảm bảo tính sẵn sàng, hiệu suất và khả năng phản ứng nhanh với lỗi. Khóa học này giúp học viên làm chủ các công cụ phổ biến như Prometheus, Grafana, ELK, Loki, đồng thời hiểu rõ các chỉ số hệ thống, log tập trung, tracing và xây dựng alert phù hợp với yêu cầu vận hành.
Thời lượng: 15h

Bạn đạt được gì sau khi hoàn thành khóa học

Hiểu rõ sự khác biệt giữa Giám sát (Monitoring) và Quan sát (Observability)
Bạn sẽ không chỉ trả lời được câu hỏi “hệ thống có đang chạy không?”, mà còn có khả năng tìm ra “tại sao nó không chạy đúng?” thông qua ba trụ cột: Metrics, Logs, và Traces.

Làm chủ Prometheus để thu thập và truy vấn các chỉ số (metrics) của hệ thống
Tự tin cài đặt, cấu hình các Exporter để lấy dữ liệu từ máy chủ, container, và sử dụng ngôn ngữ truy vấn PromQL mạnh mẽ để phân tích các chỉ số đó

Xây dựng các dashboard trực quan, chuyên nghiệp bằng Grafana
Biến những con số khô khan thành các biểu đồ có ý nghĩa, giúp bạn và cả đội nhóm có một cái nhìn tổng quan về sức khỏe của toàn bộ hệ thống theo thời gian thực.

Thiết lập hệ thống quản lý log tập trung với ELK Stack hoặc Loki
Thu thập log từ nhiều máy chủ và ứng dụng về một nơi duy nhất, giúp bạn tìm kiếm, phân tích và truy vết lỗi một cách nhanh chóng thay vì phải đăng nhập vào từng máy chủ.
Thiết kế và cấu hình hệ thống cảnh báo (alerting) thông minh
Sử dụng Alertmanager để tạo ra các cảnh báo thực sự có giá trị, gửi đến đúng người qua Slack/Email, và tránh tình trạng “bão” cảnh báo không cần thiết.
Áp dụng Distributed Tracing để theo dõi luồng xử lý trong kiến trúc microservices
Sử dụng các công cụ như Jaeger hoặc OpenTelemetry để “vẽ” lại hành trình của một yêu cầu khi nó đi qua nhiều dịch vụ khác nhau, giúp xác định chính xác các nút thắt cổ chai về hiệu năng.

Đối tượng tham gia

Kỹ sư DevOps và Kỹ sư SRE (Site Reliability Engineer) chịu trách nhiệm đảm bảo độ tin cậy, hiệu suất và tính sẵn sàng của hệ thống production.

Lập trình viên Backend và Kiến trúc sư (Architect) muốn xây dựng các ứng dụng có khả năng quan sát được (observable) để chủ động phát hiện và gỡ lỗi.

Quản trị viên hệ thống và Kỹ sư hạ tầng cần các công cụ mạnh mẽ để theo dõi sức khỏe của máy chủ, mạng và các tài nguyên quan trọng khác.

Kỹ sư An ninh (Security Engineer) cần thu thập và phân tích log, metric để phát hiện các hoạt động bất thường và điều tra sự cố bảo mật.

Yêu cầu tiên quyết
- Đã học Docker, CI/CD, có kiến thức hệ điều hành & mạng
- Biết YAML, file cấu hình cơ bản
- Biết thao tác Linux, port, process, systemd
Nội dung khóa học
1. Tổng quan về Monitoring & Observability
- Khác biệt giữa: Monitoring, Logging, Tracing
- 3 trụ cột của Observability:
- Metrics (số liệu: CPU, memory, request)
- Logs (nhật ký: lỗi, hoạt động, audit)
- Traces (vết truy cập, call chain giữa service)
- Mô hình RED, USE, SRE monitoring golden signals
- Push vs Pull model, Agent vs Exporter vs Sidecar
2. Thu thập và phân tích Metrics với Prometheus
- Kiến trúc Prometheus: scrape → store → alert → UI
- Cài đặt Prometheus từ binary/Docker
- Node Exporter:
- Thu thập metrics Linux
- Cấu hình port, label
- PromQL cơ bản:
- rate(), sum(), avg(), count(), topk(), increase()
- Cấu hình scrape job, target discovery, relabel
- Retention, TSDB, remote write (giới thiệu)
3. Quan sát hệ thống với Grafana
- Kết nối Prometheus datasource
- Tạo dashboard:
- System: CPU, RAM, disk, load, network
- App: request count, error rate
- Container: số lượng container, trạng thái, port
- Tạo alert rule: threshold + notification channel (Slack, Telegram, Email)
- Alert grouping, silence alert, delay alert, throttle
4. Log tập trung với ELK / Loki / Fluentbit
- ELK Stack:
- Log shipper: Filebeat, Fluentbit
- Elasticsearch: index, mapping, search DSL
- Kibana: dashboard, filter, timezone
- Loki + Promtail:
- Lightweight log aggregation
- Label log theo service, instance, container
- Truy vấn với LogQL
- Quản lý dung lượng log, rotation, parsing log JSON
5. Quan sát Container, Docker và Application
- Cài cAdvisor + Docker metrics
- Monitor container resource: CPU/RAM per container
- Exporter trong app:
- Python Flask/Node.js metrics endpoint
- Instrument bằng Prometheus client lib
- Logging Docker:
- Docker log driver
- Fluentbit → Loki/ELK pipeline
- Healthcheck container + auto restart
6. Alerting nâng cao và quản lý sự cố
- Alertmanager:
- Grouping, Inhibition, Routing
- Tạo rule file alerts.yml
- Quản lý sự cố:
- Incident severity, escalation
- Dashboard lỗi, trace chain
- Runbook, checklists
- Xây dựng bản tin cảnh báo hiệu quả
7. Tracing và Distributed Observability
- Tracing là gì? So sánh với log/metric
- Kiến trúc OpenTelemetry
- Jaeger: Cài đặt, collect trace từ microservice
- Thực hành trace call từ A → B → DB
- Liên hệ thực tế: tracing trong cloud, Istio, envoy
8. Tích hợp CI/CD và triển khai Observability chuẩn
- Monitor Jenkins Runner
- Kết hợp Prometheus exporter với CI pipeline
- Tự động deploy node_exporter, promtail bằng Ansible
- Template hóa dashboard (JSON, YAML)
- Clean code: git version config Prometheus, Loki, Grafana
- Bonus:
- Dashboard team-specific
- Tích hợp LDAP/SSO cho Grafana
- Quản lý quyền theo team
9. Bài thực hành tổng hợp
Dự án: Quan sát hệ thống 3 lớp ứng dụng nội bộ
Mô hình hệ thống:
- Load Balancer (nginx)
- Web App (Flask hoặc Node.js)
- DB (PostgreSQL hoặc MySQL)
- Tất cả chạy container hoặc VM
Học viên thực hiện:
- Cài đặt full stack:
- Prometheus + Alertmanager
- Grafana (dashboard các tầng)
- Loki hoặc ELK để thu log toàn hệ thống
- Viết dashboard:
- Resource monitoring (tất cả server/container)
- App monitoring (HTTP status, error, latency)
- Tạo alert rule:
- Cảnh báo Slack nếu lỗi 500 tăng quá 10 lần/phút
- Cảnh báo Email nếu host offline, disk > 90%
- Bonus:
- Jaeger trace call từ API → DB
-
- Ansible deploy tự động toàn bộ hệ thống monitor
- Ansible deploy tự động toàn bộ hệ thống monitor

Bài viết liên quan
