Yêu cầu
Mã yêu cầu dùng trong roadmap và kiểm thử: FR- chức năng, NFR- phi chức năng. Giai đoạn (GĐ) là giai đoạn dự kiến hoàn thành.
Yêu cầu chức năng
Agent và enroll
| Mã | Yêu cầu | GĐ |
|---|---|---|
| FR-01 | Admin tạo License có hạn, số lần dùng, gắn công ty, tùy chọn gắn sẵn một Server | 1 |
| FR-02 | Agent enroll bằng token, nhận agent token riêng, token chỉ hiện một lần | 1 |
| FR-03 | Admin thu hồi agent, agent ngừng được chấp nhận trong tối đa 60 giây | 1 |
| FR-04 | Xoay token định kỳ tự động, có thời gian chồng lấn 24 giờ | 2 |
| FR-05 | Ghép agent với Server có sẵn theo token gắn sẵn, hoặc theo IP/hostname, hoặc tạo Server nháp (tùy cấu hình công ty, mặc định tắt) | 1 |
Thu thập và lưu trữ
| Mã | Yêu cầu | GĐ |
|---|---|---|
| FR-10 | Thu thập CPU, tải, RAM, swap, đĩa, mạng, uptime trên Linux | 1 |
| FR-11 | Thu thập tương đương trên Windows | 2 |
| FR-12 | Kiểm tra port đang lắng nghe, kết nối TCP, HTTP, hạn chứng chỉ TLS, trạng thái dịch vụ, cấu hình từ trung tâm | 2 |
| FR-13 | Agent lưu đệm khi mất kết nối và gửi bù khi có lại, có giới hạn dung lượng | 1 |
| FR-14 | Collector ghi số liệu vào TSDB theo lô, gắn nhãn company_id, server_id từ registry | 1 |
| FR-15 | Rollup 5 phút và 1 giờ, lưu dài hạn hơn số liệu thô | 2 |
| FR-16 | Agent gửi thông tin kiểm kê (OS, CPU, RAM, đĩa, IP) khi khởi động, mỗi 6 giờ, và khi thay đổi | 2 |
Trạng thái và cảnh báo
| Mã | Yêu cầu | GĐ |
|---|---|---|
| FR-20 | Phát hiện mất tín hiệu và phục hồi, phát sự kiện agent.down, agent.up | 1 |
| FR-21 | Luật ngưỡng theo công ty, theo tag, theo môi trường, theo từng máy, có thời lượng for và ngưỡng phục hồi | 2 |
| FR-22 | Chống nhiễu: trễ phục hồi, phát hiện flapping, gom cảnh báo khi cả một subnet hoặc datacenter cùng mất | 2 |
| FR-23 | Không thông báo khi máy ở trạng thái bảo trì hoặc đang có silence, vẫn ghi nhận | 2 |
| FR-24 | Sự kiện cảnh báo đi qua thông báo, webhook, chuông Reverb, audit của Access Hub | 1 |
| FR-25 | Bộ luật mặc định có sẵn cho từng công ty, bật tắt được | 2 |
Truy vấn và giao diện
| Mã | Yêu cầu | GĐ |
|---|---|---|
| FR-30 | Trang tổng quan giám sát: số máy online, offline, cảnh báo đang mở | 1 |
| FR-31 | Tab sức khỏe trong trang máy chủ: trạng thái, giá trị mới nhất, biểu đồ theo khoảng thời gian | 1 (giá trị), 2 (biểu đồ) |
| FR-32 | API v1 đầy đủ cho mọi chức năng giám sát, kèm tài liệu và mẫu chạy thật | 1 đến 2 |
| FR-33 | Danh sách agent: phiên bản, hệ điều hành, lần cuối thấy, trạng thái | 1 |
Vận hành
| Mã | Yêu cầu | GĐ |
|---|---|---|
| FR-40 | Cài agent hàng loạt: .deb, .rpm, .msi, script cài, mẫu Ansible, GPO, Intune | 1 đến 2 |
| FR-41 | Agent tự cập nhật có chữ ký, triển khai theo đợt, tự quay lui | 3 |
| FR-42 | Nhiều collector, gán và di chuyển agent giữa các collector | 3 |
| FR-43 | Xóa dữ liệu giám sát khi xóa vĩnh viễn máy chủ hoặc công ty | 2 |
| FR-44 | Tùy chọn mTLS cho agent | 3 |
Yêu cầu phi chức năng
| Mã | Yêu cầu | Số đo |
|---|---|---|
| NFR-01 | Sức chứa ingest | 10.000 agent, chu kỳ 30 giây, trên 3 node ingest 4 vCPU/8 GB: p99 độ trễ ingest không quá 250 ms, không mất mẫu đã xác nhận |
| NFR-02 | Sẵn sàng ingest | 99,9% mỗi tháng, mất một node không mất dữ liệu đã xác nhận |
| NFR-03 | Phát hiện mất tín hiệu | Không quá 3 x interval + 30 giây (2 phút với chu kỳ 30 giây) |
| NFR-04 | Độ trễ cảnh báo | Không quá 60 giây từ lúc điều kiện for thỏa đến lúc sự kiện tới Access Hub |
| NFR-05 | Độ tươi | Giá trị mới nhất hiện trên giao diện không quá 45 giây sau lúc thu thập |
| NFR-06 | Truy vấn | Chuỗi 24 giờ của một máy: p95 không quá 500 ms. 30 ngày dùng rollup: p95 không quá 1,5 giây |
| NFR-07 | Chịu mất TSDB | Đệm được ít nhất 2 giờ không mất dữ liệu (GĐ 3 với JetStream) |
| NFR-08 | Chịu mất Access Hub | Outbox giữ sự kiện ít nhất 24 giờ, ingest vẫn chạy bằng registry cache |
| NFR-09 | Agent tài nguyên | CPU trung bình không quá 1% một lõi, RSS không quá 50 MB, binary không quá 20 MB, đệm đĩa mặc định 50 MB |
| NFR-10 | Băng thông agent | Không quá 10 KB mỗi lần gửi sau nén ở cấu hình chuẩn (khoảng 70 series) |
| NFR-11 | Bảo mật truyền tải | TLS 1.2 trở lên, không có đường truyền rõ |
| NFR-12 | Cô lập tenant | Không có đường nào để một agent hay truy vấn đọc, ghi, xóa dữ liệu của công ty khác (có kiểm thử tự động) |
| NFR-13 | Khôi phục | Khởi động lại toàn bộ collector không gây mất cảnh báo đang mở (snapshot Redis) |
| NFR-14 | Tương thích | Collector hỗ trợ giao thức phiên bản N và N-1 của agent |
| NFR-15 | Quan sát được | Mọi vai trò có /metrics, /healthz, /readyz, log JSON có request_id |
Ma trận hệ điều hành hỗ trợ (agent)
| Hệ điều hành | Hỗ trợ | Ghi chú |
|---|---|---|
| Ubuntu 18.04 trở lên, Debian 10 trở lên | Chính thức | amd64, arm64 |
| RHEL, CentOS, Rocky, AlmaLinux 7 trở lên, Amazon Linux 2 trở lên | Chính thức | Binary tĩnh không phụ thuộc glibc (không CGO). CentOS 7 kernel 3.10 đủ điều kiện |
| SUSE, openSUSE | Best-effort | Dùng chung binary tĩnh và gói tar |
| Windows 10 (1809 trở lên), Windows 11, Windows Server 2016 trở lên | Chính thức | amd64, arm64 tùy chọn |
| Windows Server 2012 R2 và cũ hơn, Windows 7, 8 | Không hỗ trợ mặc định | Go từ 1.21 đã bỏ các phiên bản này. Muốn hỗ trợ phải build bằng Go 1.20 và tự chịu bảo trì |
| Container, Kubernetes | Ngoài phạm vi GĐ 1 đến 3 | Giám sát node vật lý hoặc VM, không giám sát trong container |