Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

Bài 38. Logging, cảnh báo và kiểm soát lỗi

ICT

1. Vì sao backup thường “chết trong im lặng”?

Rất nhiều hệ thống gặp tình trạng:

  • Backup script vẫn tồn tại

  • Cron / timer vẫn chạy

  • Nhưng backup đã lỗi từ nhiều ngày, nhiều tuần

Lý do phổ biến nhất:

Không có logging đủ chi tiết,
không có cảnh báo,
và không ai chịu trách nhiệm theo dõi lỗi.

📌 Backup thất bại hiếm khi gây lỗi ngay, mà gây thảm họa khi cần restore.


2. Logging trong backup là gì và để làm gì?

Logging trong backup nhằm trả lời 3 câu hỏi cơ bản:

  1. Backup có chạy hay không?

  2. Backup có thành công hay không?

  3. Backup đã tạo ra cái gì?

📌 Nếu log không trả lời được 3 câu hỏi này, log đó không có giá trị vận hành.


3. Nguyên tắc thiết kế log cho backup

Một hệ thống log backup tốt phải:

  • Ghi rõ thời gian bắt đầu – kết thúc

  • Ghi rõ đối tượng backup

  • Ghi rõ kết quả (success / failure)

  • Ghi rõ lỗi cụ thể nếu có

  • Có thể truy vết lại theo thời gian

📌 Log phải phục vụ con người, không chỉ phục vụ máy.


4. Những gì BẮT BUỘC phải log trong backup

4.1. Thông tin chung

  • Thời điểm chạy

  • Server / hostname

  • Loại backup (daily, weekly…)


4.2. Kết quả thực thi

  • Exit code

  • Trạng thái thành công / thất bại

  • Thời gian chạy


4.3. Kết quả dữ liệu

  • File backup tạo ra

  • Dung lượng

  • Vị trí lưu trữ

📌 File backup dung lượng 0 hoặc quá nhỏ là dấu hiệu nguy hiểm.


5. Cảnh báo (Alerting) – phần không thể thiếu

Logging giúp biết lại,
cảnh báo giúp biết ngay.

Backup lỗi mà không cảnh báo = không có backup.


6. Khi nào cần cảnh báo?

Cần cảnh báo khi:

  • Backup không chạy

  • Backup chạy nhưng lỗi

  • Backup tạo file bất thường

  • Backup vượt thời gian cho phép

  • Không có backup mới trong khoảng thời gian định nghĩa

📌 Cảnh báo phải dựa trên kỳ vọng vận hành, không chỉ dựa trên exit code.


7. Nguyên tắc thiết kế cảnh báo hiệu quả

Một cảnh báo tốt phải:

  • Đến đúng người

  • Đến đúng thời điểm

  • Nội dung đủ để xử lý

  • Không spam

📌 Cảnh báo bị bỏ qua nhiều lần = cảnh báo vô nghĩa.


8. Kiểm soát lỗi trong backup

8.1. Phân loại lỗi

  • Lỗi tạm thời (network, timeout)

  • Lỗi cấu hình

  • Lỗi dữ liệu

  • Lỗi quyền truy cập

  • Lỗi dung lượng

📌 Không phải lỗi nào cũng cần xử lý giống nhau.


8.2. Retry có kiểm soát

  • Retry có giới hạn

  • Không retry vô hạn

  • Ghi log rõ retry

📌 Retry không kiểm soát có thể che giấu lỗi thật.


9. Kiểm soát lỗi ngầm (Silent Failure)

Một số lỗi nguy hiểm nhất:

  • Backup chạy “thành công” nhưng file rỗng

  • Backup chỉ sao chép một phần

  • Backup bỏ qua file do permission

Giải pháp:

  • Kiểm tra dung lượng tối thiểu

  • Kiểm tra số lượng file

  • So sánh với kỳ trước

📌 Silent failure nguy hiểm hơn failure rõ ràng.


10. Gắn logging và alert với trách nhiệm

Backup phải:

  • Có người chịu trách nhiệm

  • Có người nhận cảnh báo

  • Có quy trình xử lý lỗi

📌 Backup không có owner = backup không ai bảo vệ.


11. Sai lầm phổ biến

  • Chỉ log stdout

  • Không log lỗi chi tiết

  • Có log nhưng không ai đọc

  • Có cảnh báo nhưng không ai nhận


12. Checklist logging và cảnh báo backup

BẮT BUỘC

  • Log chi tiết

  • Exit code rõ

  • Cảnh báo khi lỗi

  • Kiểm tra backup mới nhất

RẤT NÊN

  • So sánh dung lượng

  • Theo dõi thời gian chạy

  • Tổng hợp báo cáo định kỳ


13. Liên hệ với vận hành thực tế

Trong hệ thống:

  • Nhiều server

  • Nhiều job backup

  • Nhiều loại dữ liệu

Không có logging và alert:

  • Không biết server nào đã mất backup

  • Không biết lỗi xảy ra từ khi nào

  • Không thể audit


 

Backup không thất bại khi gặp lỗi,
mà thất bại khi lỗi xảy ra nhưng không ai biết.

Logging giúp nhìn lại,
cảnh báo giúp phản ứng kịp thời,
kiểm soát lỗi giúp backup đáng tin cậy theo thời gian.