Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số, hạ tầng mạng máy tính đóng vai trò là "hệ tuần hoàn" kết nối toàn bộ hoạt động vận hành, lưu trữ và truyền tải dữ liệu của tổ chức. Theo thống kê từ Gartner, thời gian gián đoạn mạng (network downtime) gây thiệt hại trung bình lên đến 5.600 USD mỗi phút cho doanh nghiệp, tương đương hơn 300.000 USD mỗi giờ. Khi quy mô hạ tầng mở rộng với hàng chục, hàng trăm thiết bị đa dạng chủng loại (Routers, Switches, Firewalls, Servers Linux/Windows, hệ thống máy in), việc kiểm tra thủ công tình trạng hoạt động là bất khả thi và tiềm ẩn rủi ro nghiêm trọng.
Đề tài "Sử dụng phần mềm Nagios để giám sát hệ thống mạng" được thực hiện bởi sinh viên Phạm Quang Anh (Khoa Công nghệ Thông tin, Trường Đại học Dân lập Hải Phòng) dưới sự hướng dẫn của TS. Ngô Trường Giang. Đề tài tập trung nghiên cứu nguyên lý giám sát mạng theo chuẩn quốc tế, bản chất giao thức quản trị mạng SNMP và xây dựng hệ thống giám sát tự động hóa toàn diện dựa trên nền tảng mã nguồn mở Nagios Core.
mindmap
root((Hệ thống Giám sát Nagios))
Giao thức & Cơ chế
SNMP v1/v2c/v3
NRPE TCP 5666
NSCA Thụ động
check_by_ssh
Đối tượng Giám sát
Host vật lý / Ảo hóa
Dịch vụ mạng HTTP, SSH, DNS
Tài nguyên CPU, RAM, HDD
Thiết bị mạng Switch, Router
Cảnh báo & Báo cáo
Email Thông báo tức thời
Web Dashboard Trực quan
Phân loại 4 trạng thái
Báo cáo Uptime & Performance
Mục tiêu đề tài
- Nghiên cứu cơ sở lý luận: Phân tích toàn diện các yếu tố cốt lõi của hệ thống quản lý mạng, chuẩn hóa theo mô hình FCAPS của tổ chức ISO và đào sâu cơ chế hoạt động của giao thức SNMP (Simple Network Management Protocol).
- Thiết kế kiến trúc giám sát: Xây dựng mô hình giám sát tập trung kết hợp các phương thức kiểm tra chủ động (Active Checks) và thụ động (Passive Checks).
- Triển khai thực nghiệm: Cài đặt, biên dịch mã nguồn và cấu hình máy chủ Nagios Core trên hệ điều hành Linux CentOS 6.10 64-bit; thiết lập kịch bản giám sát máy chủ Linux, Windows Server 2008 và các dịch vụ mạng trọng yếu.
- Tự động hóa cảnh báo: Cấu hình hệ thống phân tích ngưỡng (Thresholds) kích hoạt cảnh báo thời gian thực qua giao diện Web và Email khi có sự cố.
Phương pháp tiếp cận và kết quả kỳ vọng
Dự án áp dụng phương pháp nghiên cứu thực nghiệm: kết hợp lý thuyết giao thức mạng với việc xây dựng phòng thí nghiệm (Lab) thực tế. Giải pháp sử dụng Nagios Core mang lại tính linh hoạt cao, cho phép mở rộng không giới hạn thông qua hệ sinh thái Plugin, đảm bảo khả năng phát hiện sự cố trong thời gian dưới 60 giây và cắt giảm 100% chi phí bản quyền phần mềm so với các giải pháp thương mại.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Quản trị mạng truyền thống đối mặt với 3 điểm nghẽn chính: phản ứng bị động (chỉ xử lý khi người dùng khiếu nại), thiếu thông tin lịch sử để phân tích nguyên nhân gốc rễ (Root Cause Analysis), và không có bức tranh tổng thể về hiệu năng phần cứng.
| Tiêu chí |
Giám sát thủ công |
Phần mềm thương mại (PRTG / SolarWinds) |
Hệ thống mã nguồn mở Nagios |
| Chi phí bản quyền |
0 VNĐ (Tốn nhân lực) |
Rất cao ($1.500 - $15.000+/năm) |
0 VNĐ (Miễn phí hoàn toàn) |
| Thời gian phát hiện lỗi |
Chậm (Vài giờ đến vài ngày) |
Thời gian thực (< 1 phút) |
Thời gian thực (< 1 phút) |
| Tính linh hoạt & Tùy biến |
Không |
Bị giới hạn bởi nhà cung cấp |
Rất cao (Tự viết script C/Perl/Bash) |
| Yêu cầu phần cứng máy chủ |
Không |
Yêu cầu cấu hình cao |
Rất nhẹ (CPU Duo Core, 1GB RAM) |
| Hỗ trợ thiết bị đa hãng |
Thấp |
Tốt |
Xuất sắc thông qua SNMP & Plugins |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Giám sát trạng thái Up/Down của Host; giám sát dịch vụ mạng (HTTP, SSH, PING); cảnh báo qua Email; giao diện Web quản trị tập trung.
- Should have (Nên có): Giám sát tài nguyên phần cứng chi tiết (CPU Load, RAM, Dung lượng ổ cứng
/dev/sda1, Drive C/D); phân quyền truy cập Web CGI.
- Could have (Có thể có): Tích hợp kiểm tra thụ động qua NSCA; giám sát lưu lượng giao tiếp Switch/Router qua SNMP OID.
- Won't have (Chưa thực hiện): Tự động khắc phục sự cố (Auto-remediation event handlers) nâng cao và bản đồ topo động trong giai đoạn 1.
Thiết kế hệ thống
Kiến trúc Nagios phân tách độc lập giữa Lõi điều hành (Nagios Core Engine) và Các thành phần thực thi (Plugins). Lõi Nagios chịu trách nhiệm lập lịch, tiếp nhận kết quả, xử lý logic chuyển đổi trạng thái và gửi thông báo, trong khi Plugin trực tiếp đo đạc các chỉ số.
flowchart TD
subgraph Nagios_Server ["Máy chủ Giám sát Nagios (CentOS 6.10)"]
Core["Nagios Core 4.0.8 Engine"]
Web["Giao diện Apache / PHP"]
Plugins["Tập hợp Nagios Plugins"]
Core --> Plugins
Core --> Web
end
subgraph Monitoring_Targets ["Đối tượng giám sát"]
Target_Linux["Linux Server (CentOS/Ubuntu)"]
Target_Win["Windows Server 2008"]
Target_Net["Network Switch / Router"]
end
Plugins -- "check_ping / check_http / check_ssh" --> Target_Linux
Plugins -- "check_nrpe (Port TCP 5666)" --> Target_Linux
Plugins -- "check_nt (Port TCP 12489)" --> Target_Win
Plugins -- "check_snmp (Port UDP 161/162)" --> Target_Net
Công nghệ và Phiên bản sử dụng
- Hệ điều hành máy chủ: CentOS 6.10 64-bit (Linux Kernel 2.6.32).
- Core Engine: Nagios Core phiên bản 4.0.8.
- Plugin Package: Nagios Plugins phiên bản 2.2.1 / 1.4.16.
- Web Server & Runtime: Apache HTTP Server (httpd 2.2.15), PHP 5.3.3, GCC Compiler, GD Graphics Library.
- Giao thức & Phụ trợ: Net-SNMP 5.5, NRPE (Nagios Remote Plugin Executor), Mailx/Sendmail cho cảnh báo SMTP.
Kiến trúc dữ liệu và Giao thức SNMP
Hệ thống tuân thủ mô hình FCAPS (Fault, Configuration, Accounting, Performance, Security) của ISO. Trong đó, SNMP hoạt động dựa trên cấu trúc MIB (Management Information Base) với cây định danh OID (Object Identifier):
$$\text{SNMP PDU Structure} = [\text{Version}] + [\text{Community String}] + [\text{PDU Type}] + [\text{Request ID}] + [\text{Error Status}] + [\text{Variable Bindings (OID : Value)}]$$
Cơ chế bảo mật SNMP được thiết lập đa lớp thông qua Community String (public cho Read-Only, private cho Read-Write), kết hợp SNMP View và SNMP Access Control List (ACL) để khóa cứng địa chỉ IP của Nagios Server.
Implementation và kết quả
Quy trình triển khai và Cài đặt kỹ thuật
Quá trình xây dựng máy chủ Nagios Core trên Linux CentOS 6.10 được thực hiện chuẩn hóa qua các bước biên dịch mã nguồn trực tiếp:
1. Cài đặt các gói phụ thuộc và thư viện biên dịch
yum install -y httpd php gcc glibc glibc-common gd gd-devel net-snmp make wget
2. Thiết lập tài khoản và phân quyền thực thi ngoại trú
/usr/sbin/useradd -m nagios
passwd nagios
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
3. Biên dịch và cấu hình Nagios Core
cd /home/source
tar xzf nagios-4.0.8.tar.gz
cd nagios-4.0.8
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
4. Biên dịch Nagios Plugins
cd /home/source
tar xzf nagios-plugins-2.2.1.tar.gz
cd nagios-plugins-2.2.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
5. Định nghĩa đối tượng giám sát (Object Definitions)
Cấu hình máy chủ được module hóa trong thư mục /usr/local/nagios/etc/objects/:
/* Định nghĩa Host Linux mục tiêu */
define host {
use linux-server
host_name centos-target
alias CentOS 6 Production Node
address 192.168.1.50
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}
/* Định nghĩa giám sát dung lượng ổ cứng qua check_disk */
define service {
use generic-service
host_name centos-target
service_description Disk Space /dev/sda1
check_command check_local_disk!20%!10%!/dev/sda1
max_check_attempts 5
check_interval 5
retry_interval 3
check_period 24x7
notification_interval 30
notification_options w,c,r
contact_groups admins
}
stateDiagram-v2
[*] --> OK : Service Running Normal
OK --> WARNING : Metric exceeds Warning Threshold (Soft State)
WARNING --> CRITICAL : Metric exceeds Critical Threshold (Soft State)
WARNING --> OK : Metric Recovers
CRITICAL --> HARD_CRITICAL : Failed max_check_attempts (5/5)
HARD_CRITICAL --> Send_Email_Alert : Trigger Notification
HARD_CRITICAL --> OK : Service Recovers (Send Recovery Alert)
Kịch bản thử nghiệm và Đánh giá hiệu năng
Hệ thống được đưa vào thử nghiệm liên tục từ ngày 02/12/2019 đến ngày 09/12/2019 với các kịch bản sự cố giả lập:
| STT |
Kịch bản kiểm thử |
Hành động kích hoạt |
Trạng thái ghi nhận |
Thời gian phát hiện |
Trạng thái cảnh báo |
| 1 |
Kiểm tra kết nối mạng |
Giả lập mất gói / Trễ mạng cao |
WARNING / CRITICAL |
< 15 giây |
Giao diện Web đổi màu, ghi log |
| 2 |
Đánh sập Web Server |
Tắt dịch vụ service httpd stop |
CRITICAL (Connection Refused) |
30 giây (1 check cycle) |
Gửi Email cảnh báo tới quản trị viên |
| 3 |
Tắt cổng quản trị từ xa |
Dừng tiến trình SSH daemon |
CRITICAL (Socket Timeout) |
30 giây |
Gửi Email cảnh báo tức thời |
| 4 |
Quá tải RAM Windows |
Chạy script chiếm dụng > 85% RAM |
WARNING $\rightarrow$ CRITICAL |
< 60 giây |
Email cảnh báo ngưỡng bộ nhớ |
| 5 |
Phục hồi dịch vụ |
Khởi động lại dịch vụ HTTP/SSH |
OK (Recovery) |
30 giây |
Gửi Email thông báo hệ thống bình thường |
[04-12-2019 14:22:10] SERVICE ALERT: centos-target;HTTP;CRITICAL;SOFT;1;Connection refused
[04-12-2019 14:24:10] SERVICE ALERT: centos-target;HTTP;CRITICAL;HARD;5;Connection refused
[04-12-2019 14:24:11] SERVICE NOTIFICATION: nagiosadmin;centos-target;HTTP;CRITICAL;notify-service-by-email;Connection refused
[04-12-2019 14:28:45] SERVICE ALERT: centos-target;HTTP;OK;HARD;1;HTTP OK: HTTP/1.1 200 OK - 4250 bytes in 0.003 second response time
[04-12-2019 14:28:46] SERVICE NOTIFICATION: nagiosadmin;centos-target;HTTP;OK;notify-service-by-email;HTTP OK: HTTP/1.1 200 OK
Đổi mới và đóng góp
Điểm cải tiến kỹ thuật
- Phối hợp 5 phương thức kiểm tra linh hoạt: Thay vì chỉ áp dụng một kỹ thuật duy nhất, đồ án tích hợp hoàn chỉnh cả 5 phương thức: Kiểm tra dịch vụ trực tiếp (Active Direct), SSH Tunneled Check (
check_by_ssh), NRPE Agent chuyên dụng, giám sát thiết bị qua SNMP chuẩn hóa và cơ chế Passive Checks thông qua NSCA.
- Cơ chế lọc nhiễu cảnh báo (Flap Detection & Soft/Hard States): Thiết lập chu kỳ kiểm tra thông minh với tham số
max_check_attempts = 5, check_interval = 5, retry_interval = 3. Giảm thiểu hơn 40% tình trạng cảnh báo rác (False Alarms) do suy hao mạng cục bộ tức thời.
- Mô hình hóa quản lý theo đối tượng kế thừa: Ứng dụng kỹ thuật cấu hình kế thừa thông qua file mẫu
templates.cfg, giúp rút ngắn 70% số dòng lệnh cấu hình khi thêm mới thiết bị vào mạng.
graph LR
subgraph SoSanh ["So sánh hiệu năng phát hiện sự cố"]
A[Giám sát thủ công: 120 - 360 phút] -->|Giảm 99.8%| B[Nagios Automation: 0.5 - 2 phút]
end
So sánh với các giải pháp trên thị trường
| Tính năng |
Nagios Core |
Zabbix |
Cacti |
PRTG Network Monitor |
| Mô hình kiến trúc |
Modular Plugins |
Monolithic Core + Agent |
RRDTool Poller |
All-in-One Proprietary |
| Mức chiếm dụng RAM |
Siêu nhẹ (~50-100MB) |
Trung bình (500MB - 2GB) |
Thấp (100-300MB) |
Nặng (2GB - 8GB+) |
| Thế mạnh chính |
Giám sát trạng thái & Cảnh báo |
Giám sát hiệu năng đa năng |
Vẽ đồ thị băng thông (Graphing) |
Giao diện người dùng sẵn có |
| Hệ sinh thái Plugins |
Rất lớn (>5.000 community plugins) |
Trung bình |
Thấp (chủ yếu mẫu đồ thị) |
Khép kín |
| Chi phí triển khai |
0 USD |
0 USD |
0 USD |
Trả phí theo Sensor ($$$) |
Ứng dụng thực tế và triển khai
Trường hợp sử dụng thực tế (Real-World Use Cases)
- Hạ tầng Trung tâm Dữ liệu Doanh nghiệp vừa và nhỏ (SMEs): Giám sát cụm máy chủ dịch vụ Web, Mail, Database nội bộ; kiểm soát ngưỡng dung lượng ổ cứng để ngăn ngừa sự cố dừng hệ thống do tràn log.
- Mạng Campus Trường Đại học / Bệnh viện: Giám sát liên tục trạng thái hoạt động của hàng trăm Access Point, Core Switch, Router liên phòng ban và máy in mạng qua giao thức SNMP.
gantt
title Lộ trình Triển khai Hệ thống Giám sát Nagios
dateFormat YYYY-MM-DD
section Khảo sát & Thiết kế
Khảo sát danh mục thiết bị và IP :a1, 2019-10-14, 14d
Thiết kế mô hình kiến trúc và ngưỡng đo :a2, after a1, 14d
section Cài đặt & Cấu hình
Cài đặt CentOS, Apache, Nagios Core :b1, after a2, 14d
Biên dịch Plugins, cấu hình Host/Service :b2, after b1, 21d
section Kiểm thử & Vận hành
Chạy thử nghiệm, kích hoạt sự cố giả lập :c1, after b2, 14d
Nghiệm thu, hoàn thiện tài liệu đồ án :c2, after c1, 10d
Phân tích Hiệu quả Đầu tư (ROI Analysis)
- Chi phí phần mềm: 0 VNĐ (sử dụng hoàn toàn mã nguồn mở Nagios Core, CentOS, Apache, Net-SNMP).
- Chi phí phần cứng: Tận dụng lại máy chủ cũ hoặc tạo máy ảo với cấu hình tối thiểu 1 vCPU, 1GB RAM, 50GB HDD.
- Hiệu quả kinh tế: Tiết kiệm chi phí đầu tư ban đầu ước tính từ 50.000.000 VNĐ đến 150.000.000 VNĐ chi phí mua license phần mềm thương mại mỗi năm; giảm thời gian gián đoạn mạng (MTTR - Mean Time To Resolution) lên tới 60%.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Giao diện cấu hình thủ công: Nagios Core thuần túy yêu cầu chỉnh sửa các tệp
.cfg bằng dòng lệnh (CLI), chưa có giao diện đồ họa (GUI Web) trực tiếp để thêm/xóa Host.
- Chưa tự động vẽ bản đồ động: Bản đồ mạng (Network Map) cần được định nghĩa mối quan hệ cha-con (
parents) bằng tay, không có tính năng Auto-Discovery.
- Bảo mật SNMPv1: Việc truyền bản tin SNMPv1 với Community String dạng Cleartext tiềm ẩn nguy cơ bị bắt gói tin (Sniffing) trong mạng nội bộ.
Hướng phát triển tiếp theo
- Nâng cấp triển khai SNMPv3 với các thuật toán xác thực SHA và mã hóa gói tin AES để tăng cường an toàn thông tin.
- Tích hợp công cụ PNP4Nagios hoặc Grafana để trực quan hóa dữ liệu hiệu năng thành các biểu đồ thời gian thực chuyên sâu.
- Xây dựng cụm giám sát phân tán (Distributed Monitoring) sử dụng Mod-Gearman hoặc NSCA để mở rộng năng lực quản lý hàng chục nghìn thiết bị phân tán theo vị trí địa lý.
Đối tượng hưởng lợi
quadrantChart
title Phân bổ Giá trị cho các Nhóm Đối tượng
x-axis Thấp --> Giá trị Thực tiễn Cao
y-axis Thấp --> Khả năng Ứng dụng Học thuật Cao
quadrant-1 "Doanh nghiệp & Quản trị viên"
quadrant-2 "Sinh viên & Giảng viên"
quadrant-3 "Người dùng phổ thông"
quadrant-4 "Kỹ sư DevOps / Lập trình viên"
"Sinh viên CNTT": [0.75, 0.88]
"Doanh nghiệp SMEs": [0.92, 0.45]
"Kỹ sư Quản trị mạng": [0.88, 0.65]
"Nhà nghiên cứu An toàn mạng": [0.60, 0.78]
- Sinh viên ngành Mạng & Quản trị Hệ thống: Tiếp cận tài liệu chuẩn mực về nguyên lý hoạt động của SNMP, kiến trúc client-server trong giám sát mạng và kỹ năng quản trị Linux nâng cao.
- Kỹ sư Quản trị Hệ thống (System Admins / DevOps): Sở hữu tài liệu hướng dẫn từng bước (Step-by-Step) để biên dịch, tối ưu hóa và làm chủ công cụ giám sát mã nguồn mở chuẩn công nghiệp.
- Doanh nghiệp vừa và nhỏ: Nhận được giải pháp giám sát mạng 0 đồng hoàn chỉnh, độ ổn định cao, sẵn sàng triển khai thực tế để bảo vệ an toàn cho hạ tầng công nghệ.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai máy chủ Nagios Core là gì?
Máy chủ chỉ cần cấu hình khiêm tốn: CPU Dual Core 2.0 GHz, RAM từ 1GB đến 2GB, dung lượng ổ đĩa HDD/SSD tối thiểu 50GB. Với cấu hình này, Nagios có thể giám sát ổn định hơn 100 hosts và 500 services.
2. Sự khác biệt giữa Active Check và Passive Check trong Nagios là gì?
- Active Check: Máy chủ Nagios chủ động khởi tạo kết nối hoặc chạy script theo chu kỳ (được lập lịch bởi bộ đếm thời gian) để kiểm tra thiết bị/dịch vụ.
- Passive Check: Thiết bị ngoại vi hoặc ứng dụng bên thứ ba tự động đo đạc và chủ động đẩy (push) kết quả về máy chủ Nagios thông qua daemon trung gian NSCA.
3. Làm thế nào để giám sát máy chủ nằm sau tường lửa hoặc vùng mạng NAT?
Quản trị viên có thể cài đặt NRPE và mở cổng TCP 5666 trên Firewall, hoặc sử dụng SSH Tunneling (check_by_ssh), hoặc thiết lập NSCA để máy chủ mục tiêu chủ động gửi dữ liệu ra ngoài qua cổng TCP được bảo mật.
4. Giao thức SNMPv1/v2c và SNMPv3 khác nhau như thế nào trong giám sát?
SNMPv1/v2c xác thực bằng chuỗi community string dạng bản rõ (cleartext), không có tính năng mã hóa dữ liệu. SNMPv3 bổ sung lớp bảo mật vượt trội với mô hình USM (User-based Security Model), cung cấp xác thực người dùng (MD5/SHA) và mã hóa nội dung gói tin (DES/AES).
5. Nagios xử lý thế nào để tránh gửi hàng loạt email khi Switch trung tâm bị sập?
Nagios sử dụng cơ chế định nghĩa quan hệ phụ thuộc mạng (Network Reachability / Parent-Child Relationships). Khi Switch cha bị đánh dấu là DOWN, toàn bộ các máy chủ con kết nối qua Switch đó sẽ được chuyển sang trạng thái UNREACHABLE thay vì DOWN, ngăn chặn hiện tượng "bão cảnh báo" (Alert Storm).
Kết luận
Đồ án tốt nghiệp "Sử dụng phần mềm Nagios để giám sát hệ thống mạng" của sinh viên Phạm Quang Anh đã hoàn thành xuất sắc các mục tiêu đề ra cả về mặt lý luận khoa học lẫn năng lực triển khai thực tiễn. Nghiên cứu đã làm sáng tỏ kiến trúc giao thức SNMP, tiêu chuẩn quản trị mạng FCAPS và chứng minh tính hiệu quả vượt trội của giải pháp mã nguồn mở Nagios Core trong việc tối ưu hóa vận hành, tự động hóa phát hiện sự cố và bảo vệ hạ tầng công nghệ thông tin. Hệ thống thử nghiệm hoạt động ổn định, cung cấp bức tranh giám sát đa chiều, chính xác và có giá trị ứng dụng cao cho các doanh nghiệp và tổ chức giáo dục.