Giám sát server (server monitoring) là kỹ thuật theo dõi liên tục tình trạng sức khỏe của server và website — để bạn biết có vấn đề TRƯỚC khi khách hàng, đối tác, hoặc Google phát hiện. Theo khảo sát của Datadog (2025), 65% SME phát hiện sự cố website nhờ khách hàng báo — nghĩa là website đã sập 15–60 phút trước khi team IT biết. Mỗi phút downtime không phát hiện là mỗi phút mất khách, mất tiền, và mất uy tín.
Bài viết này giải thích tại sao monitoring quan trọng, cần monitor những gì, và cách bắt đầu với chi phí 0 đồng.
Tại sao cần giám sát server?
Kịch bản 1: Không có monitoring
3:00 AM — Server hết dung lượng disk → website sập
3:00 AM → 8:00 AM — Không ai biết
8:30 AM — Nhân viên kinh doanh gọi: "Website không vào được"
8:45 AM — IT kiểm tra, phát hiện disk full
9:15 AM — Xóa log files, giải phóng disk
9:30 AM — Website hoạt động lại
→ Downtime: 6.5 giờ
→ Thiệt hại: Mất đơn hàng buổi sáng, SEO ranking giảm
Kịch bản 2: Có monitoring
3:00 AM — Monitoring alert: "Disk usage 90%"
3:01 AM — SMS + Telegram gửi đến sysadmin
3:15 AM — Sysadmin SSH vào, dọn log cũ, setup log rotation
3:30 AM — Disk usage giảm về 45%
→ Downtime: 0
→ Thiệt hại: 0 (phát hiện trước khi thành sự cố)
Chi phí downtime cho SME
| Quy mô doanh thu | Downtime 1 giờ | Downtime 1 ngày |
|---|---|---|
| 500 triệu/tháng | ~700.000 VND | ~17 triệu VND |
| 1 tỉ/tháng | ~1.4 triệu VND | ~33 triệu VND |
| 5 tỉ/tháng | ~7 triệu VND | ~167 triệu VND |
| 10 tỉ/tháng | ~14 triệu VND | ~333 triệu VND |
Chưa tính: mất khách hàng vĩnh viễn, SEO ranking giảm, uy tín thương hiệu
Cần giám sát những gì?
1. Uptime/Availability (website sống hay chết)
Đây là monitoring cơ bản nhất — kiểm tra website có truy cập được không, mỗi 1–5 phút.
| Tool | Miễn phí? | Tần suất check | Alert channels |
|---|---|---|---|
| UptimeRobot | 50 monitors free | 5 phút | Email, SMS, Telegram, Slack |
| Upptime | Mã nguồn mở | 5 phút | GitHub Issues |
| Freshping | 50 monitors free | 1 phút | Email, Slack |
| Pingdom | Trial | 1 phút | SMS, Email |
2. Server Resources (CPU, RAM, Disk)
| Metric | Ngưỡng cảnh báo | Ngưỡng nguy hiểm | Công cụ |
|---|---|---|---|
| CPU usage | > 70% sustained | > 90% | htop, Grafana |
| RAM usage | > 80% | > 95% | free -m, Grafana |
| Disk usage | > 80% | > 95% | df -h, Grafana |
| Disk I/O | > 80% capacity | > 95% | iostat, Grafana |
| Network | > 80% bandwidth | > 95% | vnstat, Grafana |
3. Application Metrics
| Metric | Ý nghĩa | Ngưỡng tốt |
|---|---|---|
| Response time | Thời gian server trả response | < 500ms |
| Error rate | % requests trả lỗi (5xx) | < 0.1% |
| Throughput | Requests xử lý/giây | Tùy capacity |
| Active connections | Số kết nối đang hoạt động | < max_connections |
4. Database Metrics
| Metric | Ý nghĩa | Cảnh báo khi |
|---|---|---|
| Connections | Số kết nối đang mở | > 80% max_connections |
| Slow queries | Query chạy > 1 giây | > 10 queries/phút |
| Replication lag | Replica chậm hơn primary | > 10 giây |
| Table locks | Bảng bị khóa | Bất kỳ lock > 5 giây |
| Buffer pool hit ratio | % đọc từ cache | < 95% |
5. SSL Certificate
| Kiểm tra | Tần suất | Alert khi |
|---|---|---|
| SSL expiry | Hàng ngày | Còn < 14 ngày |
| SSL grade | Hàng tuần | Grade < A |
| Mixed content | Hàng tuần | Có HTTP trong HTTPS |
6. Business Metrics (tùy chọn nhưng quan trọng)
| Metric | Ý nghĩa |
|---|---|
| Đơn hàng/giờ | Alert nếu đột nhiên giảm 50% |
| Đăng ký mới/giờ | Alert nếu = 0 (form có thể hỏng) |
| Payment success rate | Alert nếu < 90% (payment gateway lỗi) |
| Search queries/phút | Alert nếu = 0 (search engine down) |
Kiến trúc monitoring cơ bản cho SME
Stack khuyến nghị (miễn phí)
UptimeRobot (external uptime check)
↓
Prometheus (thu thập metrics từ server)
↓
Grafana (dashboard visualization)
↓
Alerting → Telegram / Email / SMS
Tầng 1: External monitoring (UptimeRobot)
Kiểm tra từ bên ngoài — nếu server sập hoàn toàn, vẫn nhận được alert vì UptimeRobot chạy trên cloud riêng.
Tầng 2: Internal monitoring (Prometheus + Node Exporter)
Thu thập metrics chi tiết từ server: CPU, RAM, disk, network, MySQL, Nginx.
Tầng 3: Visualization (Grafana)
Dashboard hiển thị tất cả metrics real-time, giúp nhanh chóng xác định nguyên nhân khi có sự cố.
Tầng 4: Alerting
Gửi cảnh báo qua nhiều kênh khi metrics vượt ngưỡng.
Alerting: Nghệ thuật cảnh báo đúng lúc
Alert fatigue — khi quá nhiều alert
Nếu bạn gửi 50 alerts/ngày, team sẽ bỏ qua tất cả — kể cả alert quan trọng. Đây gọi là alert fatigue.
Phân loại alert
| Mức độ | Kênh thông báo | Thời gian phản hồi | Ví dụ |
|---|---|---|---|
| Critical | SMS + Phone call + Telegram | < 5 phút | Website sập, database down |
| Warning | Telegram + Email | < 30 phút | CPU > 80%, disk > 85% |
| Info | Email (daily digest) | < 24 giờ | SSL sắp hết hạn, update available |
Quy tắc alert tốt
- Actionable: Mỗi alert phải đi kèm hành động cụ thể
- Relevant: Chỉ alert cho người có thể xử lý
- Timely: Alert đúng lúc (không quá sớm, không quá trễ)
- Non-duplicate: Không gửi cùng alert 10 lần
- Escalation: Nếu không ai xử lý sau 15 phút → escalate lên cấp cao hơn
Escalation policy
Phút 0: Alert gửi Telegram cho on-call engineer
Phút 5: Nếu chưa acknowledge → SMS
Phút 15: Nếu chưa resolve → Alert gửi team lead
Phút 30: Nếu chưa resolve → Alert gửi CTO/CEO
Dashboard mẫu cho SME
Dashboard 1: Overview
| Panel | Metric | Visualization |
|---|---|---|
| Uptime | 30 ngày uptime % | Single stat (xanh/đỏ) |
| Response time | P50, P95, P99 | Line graph |
| Error rate | 5xx errors/phút | Line graph |
| Active users | Concurrent users | Single stat |
Dashboard 2: Server Health
| Panel | Metric | Visualization |
|---|---|---|
| CPU | Usage % | Gauge (0–100%) |
| RAM | Used/Total | Gauge |
| Disk | Usage % | Gauge |
| Network | In/Out bandwidth | Area chart |
Dashboard 3: Application
| Panel | Metric | Visualization |
|---|---|---|
| Requests/sec | Throughput | Line graph |
| Response time distribution | Histogram | Heatmap |
| Top 10 slow endpoints | Avg response time | Table |
| Error log | Recent 5xx errors | Log panel |
Monitoring không chỉ là công cụ — là quy trình
Quy trình Incident Response
- Detect: Monitoring phát hiện sự cố → alert
- Acknowledge: On-call engineer xác nhận đang xử lý
- Diagnose: Xem dashboard, log để xác định root cause
- Fix: Thực hiện fix (restart service, scale up, rollback)
- Verify: Xác nhận sự cố đã được giải quyết
- Postmortem: Phân tích nguyên nhân gốc, tạo action items
On-call rotation
Nếu team > 2 người, nên có lịch trực:
- Tuần 1: Developer A on-call
- Tuần 2: Developer B on-call
- Luôn có secondary on-call (backup)
FAQ — Câu hỏi thường gặp
Chi phí monitoring bao nhiêu?
Monitoring cơ bản: 0 đồng (UptimeRobot free + Grafana + Prometheus đều open source). Chi phí chỉ là thời gian setup (~4 giờ). Managed monitoring (Datadog, New Relic): từ 500.000–5.000.000 VND/tháng. Cho SME, self-hosted stack miễn phí là đủ.
Monitoring có làm server chậm không?
Prometheus + Node Exporter sử dụng < 1% CPU và < 50MB RAM. Hoàn toàn không ảnh hưởng performance. External monitoring (UptimeRobot) không chạy trên server của bạn nên 0% impact.
Tôi chỉ có 1 website nhỏ, cần monitoring không?
Cần. UptimeRobot miễn phí, setup 5 phút, cho bạn biết ngay khi website sập. Đây là minimum monitoring mà mọi website phải có. Nếu website tạo doanh thu (dù chỉ 1 đồng), bạn cần biết khi nào nó sập.
Nên tự setup hay thuê dịch vụ?
Tự setup nếu: có developer/sysadmin trong team, muốn tiết kiệm chi phí. Thuê dịch vụ nếu: không có IT, muốn monitoring 24/7 với response team. Trinh Digital cung cấp dịch vụ monitoring 24/7 với SLA response time < 15 phút.
Monitoring khác logging như thế nào?
Monitoring: theo dõi metrics (CPU, RAM, response time) → phát hiện vấn đề. Logging: ghi lại chi tiết sự kiện (request, error, user action) → chẩn đoán nguyên nhân. Cần cả hai: monitoring để biết CÓ vấn đề, logging để biết VÌ SAO.
Kết luận
Server monitoring không phải “nice to have” — đó là bảo hiểm cho doanh nghiệp số. Chi phí setup gần 0, nhưng giá trị phòng ngừa có thể tiết kiệm hàng trăm triệu đồng. Bắt đầu với UptimeRobot (5 phút setup), sau đó mở rộng dần với Prometheus + Grafana khi cần.
Nếu bạn cần hỗ trợ setup monitoring chuyên nghiệp hoặc xây dựng hệ thống với giám sát 24/7, hãy liên hệ Trinh Digital.