Giao diện
Câu hỏi thường gặp (FAQ) — Audit Logs
Sử dụng
Audit log ghi những gì?
Ghi lại tất cả thao tác create, update, delete trên các collections được cấu hình. Mỗi log entry bao gồm:
- Ai thực hiện (userId, username)
- Khi nào (timestamp)
- Collection nào bị tác động
- Hành động gì (create, update, destroy)
- Dữ liệu thay đổi (giá trị cũ → giá trị mới cho từng field)
Có thể xem dữ liệu trước khi thay đổi không?
Có. Chi tiết log ghi lại giá trị trước (before) và giá trị sau (after) cho mỗi field thay đổi. Nhấn vào log entry để xem diff visual.
Hữu ích khi:
- Cần khôi phục dữ liệu bị sửa nhầm
- Điều tra ai đã thay đổi giá trị nào
- Đối chiếu dữ liệu trước/sau cho compliance
Log có ảnh hưởng hiệu năng không?
Ảnh hưởng nhẹ — mỗi thao tác CRUD thêm 1–2 lần INSERT vào bảng audit. Để giảm thiểu:
- Chỉ ghi log cho collections quan trọng (ví dụ: orders, users, payments)
- Bỏ qua collections thay đổi thường xuyên nhưng không quan trọng (ví dụ: sessions, temp_data)
- Đảm bảo bảng
auditLogsvàauditChangescó index phù hợp
Audit log hiển thị ở đâu?
Hai nơi:
- Settings → Audit Logs: Trang quản lý chính với đầy đủ bộ lọc
- Audit Logs Block: Có thể thêm vào bất kỳ trang nào qua Add Block → Audit Logs
Cấu hình
Làm sao chỉ log một số collections?
Vào Settings → Audit Logs → Configuration:
- Bỏ chọn "Tất cả collections"
- Tích chọn từng collection muốn ghi log
- Lưu cấu hình
Khuyến nghị
Chỉ ghi log cho collections chứa dữ liệu kinh doanh quan trọng: đơn hàng, khách hàng, sản phẩm, thanh toán, quyền truy cập. Bỏ qua collections hệ thống, temp, cache.
Database lớn vì audit logs?
Audit logs tích luỹ theo thời gian. Giải pháp theo mức độ ưu tiên:
| # | Giải pháp | Hiệu quả |
|---|---|---|
| 1 | Giảm retention period (30 ngày thay vì 90) | Cao — xoá log cũ tự động |
| 2 | Chỉ log collections quan trọng | Cao — giảm lượng log mới |
| 3 | Chạy cleanup job định kỳ | Trung bình — xoá log theo batch |
| 4 | Archive log cũ ra S3/external storage | Trung bình — giữ log nhưng giảm tải DB |
| 5 | Database partitioning theo tháng | Thấp — phức tạp nhưng hiệu quả lâu dài |
Có thể export audit log không?
Có thể qua API:
typescript
const logs = await agent.resource('auditLogs').list({
filter: {
createdAt: { $gte: '2024-01-01', $lte: '2024-03-31' },
collectionName: 'orders',
},
pageSize: 1000,
});Hoặc dùng chức năng export nếu plugin-export đã bật.
Lỗi thường gặp
Không thấy log cho một thao tác cụ thể?
Kiểm tra theo thứ tự:
- Collection có trong danh sách audit: Vào Configuration, kiểm tra collection được chọn
- Thao tác xảy ra sau khi bật plugin: Thao tác trước khi bật plugin không được ghi
- Thao tác qua API: Chỉ ghi log cho thao tác qua Digiforce API — SQL trực tiếp không ghi
- Bộ lọc thời gian: Đảm bảo bộ lọc thời gian bao gồm thời điểm thao tác
Log hiển thị user "system" thay vì tên user?
Một số thao tác được thực hiện bởi system (cron job, workflow trigger, migration) — không có user context. Đây là hành vi bình thường.
Audit log entry bị mất chi tiết thay đổi?
Kiểm tra:
- Bảng
auditChangescó dữ liệu choauditLogIdtương ứng - Field thay đổi không nằm trong danh sách
excludeFields - Thao tác
createchỉ ghiafter(không cóbefore),destroychỉ ghibefore