Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và hạ tầng đám mây lai (Hybrid Cloud), sự ổn định và liên tục của hệ thống mạng đóng vai trò sống còn đối với mọi tổ chức và doanh nghiệp. Theo các khảo sát công nghệ thông tin quốc tế, thời gian ngừng hoạt động ngoài kế hoạch (unplanned downtime) có thể gây thiệt hại trung bình lên đến 5.600 USD mỗi phút đối với các doanh nghiệp vừa và lớn. Việc quản trị thủ công hạ tầng gồm hàng trăm router, switch, máy chủ Linux, Windows và máy ảo phân tán không chỉ làm chậm trễ khả năng ứng cứu sự cố mà còn tiềm ẩn nguy cơ bảo mật nghiêm trọng như rò rỉ dữ liệu, mã độc (trojan/virus) lây lan hoặc tấn công từ chối dịch vụ (DoS/DDoS).

Dự án "Nghiên cứu và triển khai hệ thống giám sát mạng bằng phần mềm mã nguồn mở Zabbix" được thực hiện bởi sinh viên Phạm Văn Tính (Khoa Công nghệ Thông tin, Học viện Kỹ thuật Mật mã) dưới sự hướng dẫn của TS. Nguyễn Đào Trường. Đề tài tập trung giải quyết triệt để bài toán giám sát tập trung, tối ưu hóa tài nguyên mạng và cảnh báo sự cố theo thời gian thực dựa trên nền tảng mã nguồn mở Zabbix Enterprise-grade.

Mục tiêu cụ thể của dự án

  1. Nghiên cứu lý thuyết chuyên sâu: Phân tích toàn diện kiến trúc quản lý mạng, cơ chế hoạt động của giao thức SNMP (Simple Network Management Protocol v1/v2c/v3), cấu trúc MIB (Management Information Base) và OID (Object Identifier).
  2. Thiết kế mô hình giám sát phân tán: Xây dựng kiến trúc giám sát tích hợp đa nền tảng gồm Zabbix Server, Zabbix Agent (Active/Passive), và SNMP Agent.
  3. Triển khai thực nghiệm toàn diện: Cài đặt, tối ưu hóa Zabbix Server trên Linux Ubuntu Server và cấu hình giám sát song song các máy chủ dịch vụ Web (Linux) cùng Windows Server 2016.
  4. Xây dựng cơ chế cảnh báo và trực quan hóa: Thiết lập hệ thống Dashboard thời gian thực, xây dựng các biểu thức Trigger logic thông minh và tích hợp thông báo đa kênh (Email, SMS, Telegram).

Phạm vi và giới hạn của đề tài

  • Phạm vi triển khai: Mô hình mạng thử nghiệm gồm 01 Zabbix Server (Ubuntu 22.04 LTS), 01 Web Server (Ubuntu 22.04 LTS) cài đặt Zabbix Agent, và 01 Windows Server 2016 giám sát thông qua dịch vụ SNMP Service chuẩn.
  • Giới hạn kỹ thuật: Tập trung vào giám sát hiệu năng phần cứng (CPU, RAM, Disk I/O, Network Traffic), giám sát dịch vụ mạng cơ bản (HTTP, ICMP Ping), chưa mở rộng trên quy mô Multi-datacenter có tích hợp Zabbix Proxy phân tán.
+-------------------------------------------------------------------------+
|                           Zabbix Central Server                         |
|   [Web UI (Apache2 + PHP 8.1)] <---> [Zabbix Server Engine (C/C++)]     |
|                                                     ^                   |
|                                                     | (SQL Data Store)  |
|                                                     v                   |
|                                            [MariaDB Database]           |
+-------------------------------------------------------------------------+
                    |                                        |
       (TCP 10050/10051 - Agent)               (UDP 161/162 - SNMP)
                    |                                        |
                    v                                        v
+---------------------------------------+  +------------------------------+
|        Target 1: Linux Web Host       |  |  Target 2: Windows Server    |
| - Ubuntu Server 22.04 LTS             |  | - Windows Server 2016        |
| - Zabbix Agent (Active / Passive)     |  | - SNMP Service & Trap Engine |
| - Custom UserParameter Scripts        |  | - MIB / OID Telemetry        |
+---------------------------------------+  +------------------------------+

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi lựa chọn Zabbix, các giải pháp giám sát mạng phổ biến trên thị trường được phân tích và so sánh đa chiều:

Tiêu chí Zabbix (Được chọn) Nagios Core PRTG Network Monitor
Mô hình bản quyền Mã nguồn mở hoàn toàn (GPLv2), miễn phí Mã nguồn mở (Core) / Trả phí (XI) Thương mại (giới hạn 100 cảm biến miễn phí)
Kiến trúc dữ liệu RDBMS tập trung (MariaDB, PostgreSQL) File-based / Cần plugin mở rộng Cơ sở dữ liệu độc quyền tích hợp
Giao diện người dùng Web UI hiện đại, Dashboard động, tích hợp sẵn Graph Web UI cơ bản, khó tùy biến sâu Giao diện đồ họa phong phú, trực quan
Khả năng tự động phát hiện Hỗ trợ Network Auto Discovery & LLD mạnh mẽ Rất hạn chế, cấu hình thủ công Tự động quét tốt nhưng tiêu tốn tài nguyên
Khả năng mở rộng (Scale) Hỗ trợ Zabbix Proxy quản lý > 100.000 thiết bị Phức tạp khi scale đa chi nhánh Chi phí giấy phép tăng theo số lượng sensor

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc có): Thu thập metric CPU, RAM, Disk, Network I/O qua Zabbix Agent và SNMP; hệ thống Trigger tự động đổi trạng thái sang PROBLEM; Dashboard hiển thị biểu đồ thời gian thực; thông báo sự cố qua Email.
  • Should Have (Nên có): Tự động phát hiện thiết bị (Auto Discovery) qua dải IP và cổng dịch vụ; cấu hình UserParameter mở rộng lệnh giám sát; phân quyền tài khoản người dùng theo nhóm.
  • Could Have (Có thể có): Giám sát cơ sở dữ liệu qua ODBC; tích hợp cảnh báo qua Telegram/SMS Gateway; báo cáo SLA dịch vụ.
  • Won't Have (Chưa triển khai kỳ này): Cấu hình mã hóa chứng chỉ TLS PSK toàn diện trên hàng loạt node mạng; triển khai cụm Zabbix High Availability (HA) Cluster.

Thiết kế hệ thống

Kiến trúc hệ thống Zabbix phân lớp rõ ràng nhằm đảm bảo hiệu năng xử lý luồng dữ liệu lớn:

  1. Zabbix Server Core: Đóng vai trò trung tâm xử lý dữ liệu, kiểm tra trạng thái trigger, quản lý cache bộ nhớ, điều phối pollers và trappers.
  2. Database Engine: Lưu trữ toàn bộ dữ liệu cấu hình, lịch sử (History data) và dữ liệu tổng hợp (Trends data). Hệ thống sử dụng MariaDB với chuẩn lưu trữ InnoDB nhằm tối ưu hóa các truy vấn ghi liên tục.
  3. Zabbix Frontend (Web UI): Được xây dựng trên nền PHP 8.1 và máy chủ web Apache2, giao tiếp trực tiếp với cơ sở dữ liệu để hiển thị báo cáo, sơ đồ topology và cấu hình hệ thống.
  4. Zabbix Agent & Polling Collectors:
    • Active Agent: Agent chủ động kết nối tới Server/Proxy qua cổng TCP 10051 để lấy danh sách Item kiểm tra, sau đó gửi dữ liệu thu thập về định kỳ. Giúp giảm tải tối đa cho Server.
    • Passive Agent: Server chủ động gửi yêu cầu (poll) tới Agent qua cổng TCP 10050 và chờ phản hồi.
    • SNMP Manager/Agent: Sử dụng các bản tin UDP (cổng 161 cho truy vấn Get/Set và cổng 162 cho nhận Trap đột biến từ Windows Server).
+-----------------------------------------------------------------------+
|                           LOGICAL DATA FLOW                           |
+-----------------------------------------------------------------------+
 [ Target Host / Agent ] 
         |
         | (1. Push Data / SNMP Trap or 2. Pull Response)
         v
 [ Zabbix Server Core ] ---> [ Pre-processing & Expression Engine ]
         |                                    |
         +--> [ Write to MariaDB ]            +--> [ Trigger Evaluation ]
         |                                                |
         v                                                v
 [ Web Dashboard Display ]                    [ Problem Alert Engine ]
                                                          |
                                           (Email / SMS / Telegram API)

Implementation và kết quả

Quá trình cài đặt và cấu hình hệ thống

Hệ thống được thiết lập trên môi trường Linux Ubuntu Server 22.04 LTS với các bước chuẩn hóa mã nguồn mở:

1. Cài đặt các thành phần nền tảng (Apache, MariaDB, PHP-FPM)

# Cập nhật repository và cài đặt Apache HTTP Server
sudo apt update && sudo apt install -y apache2
sudo systemctl enable apache2 && sudo systemctl restart apache2

# Cài đặt và bảo mật hệ quản trị cơ sở dữ liệu MariaDB
sudo apt install -y mariadb-server
sudo systemctl enable mariadb && sudo systemctl restart mariadb
sudo mysql_secure_installation

# Cài đặt PHP-FPM và kích hoạt module FastCGI trên Apache
sudo apt install -y php8.1-fpm libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart php8.1-fpm apache2

2. Cấu hình Zabbix Agent mở rộng (Extending Agent)

Để giám sát các thông số chuyên biệt không có sẵn trong template chuẩn, tham số UserParameter được thiết lập trực tiếp trong tệp cấu hình /etc/zabbix/zabbix_agentd.conf:

# Chỉ định Zabbix Server thu thập dữ liệu chủ động và thụ động
Server=192.168.1.100
ServerActive=192.168.1.100
Hostname=Linux-WebServer-01

# Chu kỳ làm mới danh sách kiểm tra từ Server (giây)
RefreshActiveChecks=120

# Bộ nhớ đệm lưu trữ dữ liệu cục bộ trước khi gửi (giây)
BufferSend=5

# Định nghĩa tham số mở rộng thu thập số lượng tiến trình Apache2
UserParameter=custom.apache.proc_count,ps aux | grep apache2 | grep -v grep | wc -l

3. Cấu hình giám sát Windows Server 2016 qua SNMP

  • Kích hoạt tính năng SNMP ServiceSNMP WMI Provider trong Windows Server Roles & Features.
  • Cấu hình thẻ Security: Thêm Community Name public với quyền READ ONLY; giới hạn quyền truy vấn chỉ cho phép duy nhất địa chỉ IP của Zabbix Server (192.168.1.100).
  • Cấu hình thẻ Traps: Thiết lập Host nhận Trap về địa chỉ IP của Zabbix Server qua cổng UDP 162.
+-----------------------------------------------------------------------+
|              Windows Server 2016 - SNMP Configuration                 |
+-----------------------------------------------------------------------+
|  [x] Accepted community names:                                        |
|      - Community: "public"    |  Rights: READ ONLY                    |
|                                                                       |
|  [x] Accept SNMP packets from these hosts:                            |
|      - 192.168.1.100 (Zabbix Server IP)                               |
|                                                                       |
|  [x] Trap Destinations:                                               |
|      - Community Name: public -> Destination: 192.168.1.100           |
+-----------------------------------------------------------------------+

Kiểm thử và đánh giá hiệu năng

Hệ thống được thử nghiệm trong điều kiện tải liên tục suốt 72 giờ:

  • Khả năng tự động phát hiện (Auto Discovery): Quét dải IP 192.168.1.0/24, tự động phân loại và thêm host thành công trong vòng 45 giây.
  • Độ trễ thu thập dữ liệu (Polling Latency): Thời gian phản hồi trung bình qua Zabbix Agent đạt < 15ms, qua SNMPv2c đạt < 35ms.
  • Thời gian phản ứng sự cố (Incident Response):
    • Thời gian phát hiện sự cố trung bình (MTTD - Mean Time To Detect): Giảm từ ~15 phút (kiểm tra thủ công) xuống còn 10 - 30 giây ngay khi trigger vượt ngưỡng.
    • Thời gian khắc phục sự cố trung bình (MTTR - Mean Time To Resolve): Giảm 45% nhờ thông tin nguyên nhân gốc rễ và biểu đồ tải chi tiết.
  • Tải tài nguyên trên Target Host: Zabbix Agent chỉ chiếm trung bình 0.2% CPU12MB RAM, hoàn toàn không ảnh hưởng đến hiệu năng phục vụ của Web Server.
+--------------------------------------------------------------------------+
|                        BENCHMARK METRICS SUMMARY                         |
+--------------------------------------------------------------------------+
|  Metric                          |  Manual/Old Method |  Zabbix System   |
+----------------------------------+--------------------+------------------+
|  Mean Time to Detect (MTTD)      |  ~900 seconds      |  10-30 seconds   |
|  Mean Time to Resolve (MTTR)     |  ~120 minutes      |  ~65 minutes     |
|  Agent CPU Overhead              |  N/A               |  < 0.2%          |
|  Agent Memory Footprint          |  N/A               |  ~12 MB          |
|  Network Discovery Scan Time     |  ~30 minutes       |  45 seconds      |
+--------------------------------------------------------------------------+

Đổi mới và đóng góp

  1. Tối ưu hóa kiến trúc thu thập dữ liệu lai (Hybrid Gathering): Kết hợp linh hoạt giữa Active Agent (giảm tải CPU/network cho server trung tâm) và giao thức chuẩn SNMP (giám sát thiết bị đóng kín, thiết bị mạng không cho phép cài đặt agent ngoài).
  2. Khả năng mở rộng không giới hạn với Custom Parameter & ODBC: Thay vì chỉ dựa vào các template tĩnh, đề tài chứng minh khả năng mở rộng hệ thống thông qua UserParameterunixODBC, cho phép giám sát sâu các truy vấn cơ sở dữ liệu và chỉ số ứng dụng nội bộ.
  3. Giải pháp giám sát hiệu quả chi phí cho tổ chức: Cung cấp một bộ hướng dẫn triển khai hoàn chỉnh chuẩn doanh nghiệp trên nền tảng mã nguồn mở, loại bỏ 100% chi phí bản quyền phần mềm (tiết kiệm hàng nghìn USD chi phí license định kỳ cho doanh nghiệp).

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng trong doanh nghiệp

  • Trung tâm dữ liệu và Nhà cung cấp dịch vụ (ISP/Data Center): Theo dõi lưu lượng băng thông cổng mạng, phát hiện nghẽn cổ chai (bottleneck), cảnh báo sớm tình trạng phân vùng ổ đĩa đầy trên cụm máy chủ cơ sở dữ liệu.
  • Doanh nghiệp vừa và nhỏ (SMEs): Giám sát toàn bộ hạ tầng IT văn phòng (máy in, router Wi-Fi, switch mạng, máy chấm công, server lưu trữ NAS) trên một màn hình tập trung duy nhất.
  • Cơ quan chính phủ và Tổ chức tài chính: Đáp ứng các yêu cầu tuân thủ an toàn thông tin (IT Compliance), lưu vết lịch sử vận hành, hỗ trợ điều tra pháp y số (Forensic Analysis) khi xảy ra tấn công mạng.

Yêu cầu cấu hình phần cứng khuyến nghị

Dựa trên kết quả nghiên cứu, cấu hình phần cứng khuyến nghị theo quy mô hệ thống như sau:

Quy mô hệ thống Số lượng Host CPU / RAM khuyến nghị Hệ quản trị CSDL
Nhỏ (Small) < 100 hosts 2 Cores CPU / 4GB RAM MariaDB (MyISAM/InnoDB)
Vừa (Medium) 100 - 500 hosts 4 Cores CPU / 8GB RAM MariaDB InnoDB
Lớn (Large) 500 - 2.000 hosts 8 Cores CPU / 16GB RAM / SSD RAID10 MariaDB / PostgreSQL
Rất lớn (Enterprise) > 10.000 hosts Multi-Server + Zabbix Proxies phân tán PostgreSQL + TimescaleDB Partitioning

Hạn chế và hướng phát triển

Hạn chế hiện tại

  • Môi trường thử nghiệm dừng lại ở mô hình mạng đơn lẻ, chưa kiểm thử qua nhiều lớp tường lửa NAT phức tạp hoặc mạng WAN liên tỉnh.
  • Chưa áp dụng cơ chế phân vùng bảng dữ liệu (Database Partitioning) của TimescaleDB để tăng tốc độ truy vấn khi dữ liệu lịch sử đạt ngưỡng hàng chục triệu bản ghi.
  • Chưa tích hợp các thuật toán học máy nâng cao (UEBA) để phát hiện bất thường hành vi người dùng một cách chủ động mà chủ yếu dựa trên các ngưỡng Trigger quy tắc cố định.

Hướng nghiên cứu tiếp theo

  1. Triển khai Zabbix Proxy Cluster: Phân tán tải thu thập dữ liệu cho các chi nhánh từ xa, nén và mã hóa luồng dữ liệu trước khi gửi về Zabbix Server trung tâm.
  2. Tự động hóa triển khai (Infrastructure as Code): Viết các playbook Ansible để tự động cài đặt và cấu hình Zabbix Agent hàng loạt trên môi trường Cloud/Kubernetes.
  3. Ứng dụng Machine Learning vào phân tích xu hướng: Xây dựng mô hình dự báo dung lượng ổ đĩa cạn kiệt hoặc khả năng quá tải CPU dựa trên lịch sử dữ liệu thu thập.

Đối tượng hưởng lợi

  • Sinh viên chuyên ngành An toàn thông tin / Mạng máy tính: Tài liệu tham khảo chuẩn mực với đầy đủ cơ sở lý thuyết giao thức mạng (SNMP, MIB/OID), quy trình cài đặt từng bước và phương pháp phân tích sự cố thực tế.
  • Kỹ sư Quản trị hệ thống (System Administrators / DevOps): Bản thiết kế thực tiễn có thể áp dụng ngay để triển khai hệ thống giám sát hạ tầng doanh nghiệp với chi phí 0 đồng bản quyền.
  • Các nhà nghiên cứu và quản lý IT: Cung cấp bức tranh toàn cảnh về việc chuyển đổi từ giám sát thụ động sang giám sát chủ động, nâng cao chỉ số SLA và tính sẵn sàng của hệ sinh thái công nghệ thông tin.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để triển khai Zabbix Server là gì?

Hệ thống thử nghiệm cơ bản (< 20 host) chỉ yêu cầu phần cứng tối thiểu: CPU 1 lõi (1.5GHz trở lên), RAM 1GB - 2GB, dung lượng đĩa trống từ 10GB trở lên, chạy trên nền tảng Linux (Ubuntu Server, RHEL, Rocky Linux, Debian) cài đặt sẵn Apache/Nginx, PHP (từ 7.4/8.x trở lên) và MariaDB/PostgreSQL.

2. Sự khác biệt cơ bản giữa Zabbix Active Agent và Passive Agent là gì?

Ở chế độ Passive Agent, Zabbix Server sẽ chủ động gửi truy vấn đến cổng 10050 của Agent để lấy dữ liệu (phù hợp với máy chủ nội bộ, ít thiết bị). Ở chế độ Active Agent, Agent sẽ chủ động kết nối đến cổng 10051 của Zabbix Server để gửi dữ liệu định kỳ (phù hợp khi máy chủ nằm sau tường lửa/NAT hoặc khi cần giảm tải xử lý kết nối cho Zabbix Server).

3. Làm thế nào để giám sát các thiết bị mạng không cài đặt được Zabbix Agent (Switch, Router)?

Với các thiết bị mạng đóng gói chuyên dụng (Cisco, Juniper, MikroTik, HP), hệ thống sử dụng giao thức SNMP (Simple Network Management Protocol) hoặc ICMP Ping. Quản trị viên chỉ cần bật dịch vụ SNMP trên thiết bị, khai báo chuỗi cộng đồng (Community String) và gán Template SNMP tương ứng trên giao diện Zabbix Server.

4. Zabbix có khả năng mở rộng để giám sát hàng chục nghìn thiết bị không?

Hoàn toàn có thể. Zabbix hỗ trợ kiến trúc phân tán sử dụng Zabbix Proxy. Các Proxy thu thập dữ liệu cục bộ tại từng chi nhánh/vùng mạng, lưu tạm vào bộ nhớ đệm, sau đó nén và đồng bộ về Zabbix Server trung tâm, giúp hệ thống mở rộng quản lý dễ dàng lên đến trên 100.000 thiết bị.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) của hệ thống Zabbix như thế nào?

Do Zabbix là phần mềm mã nguồn mở theo giấy phép GPLv2, tổ chức không phải trả bất kỳ chi phí bản quyền phần mềm nào. Toàn bộ chi phí chỉ bao gồm hạ tầng phần cứng/máy ảo và nhân sự triển khai. Thời gian hoàn vốn (ROI) thường đạt được ngay trong vòng 1 - 3 tháng đầu tiên nhờ việc ngăn chặn kịp thời các sự cố gián đoạn dịch vụ tốn kém.


Kết luận

Đồ án chuyên đề "Nghiên cứu và triển khai hệ thống giám sát mạng bằng phần mềm mã nguồn mở Zabbix" đã hoàn thành xuất sắc các mục tiêu đề ra: từ việc chuẩn hóa cơ sở lý thuyết về giám sát mạng, làm chủ giao thức SNMP, đến việc xây dựng thành công mô hình giám sát thực nghiệm tích hợp đa nền tảng Linux và Windows. Kết quả nghiên cứu chứng minh Zabbix là một giải pháp giám sát tập trung toàn diện, mạnh mẽ, linh hoạt và tối ưu chi phí, hoàn toàn đáp ứng được các tiêu chuẩn khắt khe về độ ổn định và an toàn thông tin trong môi trường doanh nghiệp hiện đại.