Hà Nội, ngày 20 tháng 9 năm 2016 Người thực hiện Trang 7 LỜI CAM ĐOAN Luận văn đề tài “Nghiên cứu, phát triển các hệ thống giám sát quản trị mạng” thực hiện dưới sự hướng dẫn của PGS.T
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 3MỤC LỤC
LỜI CẢM ƠN 4
LỜI CAM ĐOAN 5
DANH MỤC TỪ VIẾT TẮT 6
DANH MỤC HÌNH VẼ 7
MỞ ĐẦU 8
CHƯƠNG 1: TỔNG QUAN VỀ QUẢN TRỊ MẠNG 11
1.1 Quản trị mạng là gì 11
1.2 Kiến trúc của hệ thống quản trị mạng 11
1.3 Hoạt động của hệ thống quản trị mạng 13
1.3.1 Khả năng 13
1.3.2 Các vùng chức năng (FCAPS – ISO 10040) [4] 18
1.4 Các giao thức quản trị mạng 20
1.4.1 SNMP 21
1.4.2 SNMPv1 22
1.4.3 SNMPv2 23
1.4.4 SNMPv3 24
1.4.5 MIB 25
1.5 Một số vấn đề thường gặp của các hệ thống quản trị mạng 29
1.6 Quản trị mạng với chức năng cam kết 30
Trang 4CHƯƠNG 2: LỰA CHỌN CÔNG CỤ NỀN TẢNG QUẢN TRỊ MẠNG 34
2.1 Các công cụ quản trị mạng 34
2.1.1 Các tính năng chung của các công cụ quản trị mạng 34
2.1.2 Tiêu chí đánh giá so sánh các công cụ quản trị mạng 35
2.1.3 So sánh một số công cụ quản trị mạng 36
2.2 Quản trị mạng với Zabbix 38
2.2.1 Phân tích lựa chọn công cụ Zabbix 38
2.2.2 Mở rộng Zabbix: 39
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GIÁM SÁT, QUẢN TRỊ HƯỚNG CHỨC NĂNG CAM KẾT DỊCH VỤ 41
3.1 Mô tả chức năng hệ thống 41
3.2 Mô hình hệ thống 41
3.3 Thiết kế, cài đặt các thành phần của hệ thống 43
3.3.1 Lựa chọn giải pháp công nghệ 43
3.3.2 Lập trình các module mới 45
3.3.3 Cài đặt hệ thống thử nghiệm 55
3.4 Thử nghiệm hệ thống 58
3.4.1 Kịch bản thử nghiệm 58
3.4.2 Kết quả thử nghiệm theo tình huống 58
3.4.3 Nhận xét kết quả 62
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
TÀI LIỆU THAM KHẢO 65
Trang 5PHỤ LỤC 67
1 Script getNumUsers.py 67
2 Scripts getTimeResponse.py 69
3 Script getDBstatus.py 70
4 Script getDBConnect.py 72
5 Script getTraffictoDB.py 74
6 Các bước cài đặt hệ thống 76
Trang 6LỜI CẢM ƠN
Để hoàn thành luận văn này, tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS TS Hà Quốc Trung đã tận tình hướng dẫn tôi trong suốt quá trình thực hiện nghiên cứu và thử nghiệm Tôi xin chân thành cảm ơn các thầy, cô trong Viện Công Nghệ Thông Tin và Truyền Thông – Đại học Bách Khoa Hà Nội đã giảng dạy, truyền đạt cho tôi những kiến thức quý báu và tạo mọi điều kiện để tôi hoàn thành khóa học và thực hiện luận văn này
Tôi cũng xin gửi lời cảm ơn đến anh Lương Minh Tuấn – Công ty Cổ phần Truyền thông Việt Nam (VCCorp) và các đồng nghiệp của tôi ở Trung tâm Lưu ký Chứng khoán Việt Nam đã chia sẻ nhiều tài liệu và kinh nghiệm quý giá liên quan đến vấn đề nghiên cứu của luận văn
Tôi cũng xin cảm ơn gia đình, bạn bè đã chia sẻ, giúp đỡ tôi trong suốt quá trình học tập nghiên cứu thực hiện luận văn
Xin trân trọng cảm ơn!
Hà Nội, ngày 20 tháng 9 năm 2016
Người thực hiện
Hà Vĩnh Anh
Trang 7LỜI CAM ĐOAN
Luận văn đề tài “Nghiên cứu, phát triển các hệ thống giám sát quản trị mạng” thực hiện dưới sự hướng dẫn của PGS.TS Hà Quốc Trung, nghiên cứu về một mô hình quản trị mạng mới: mô hình hệ thống giám sát mạng hướng chức năng của dịch vụ Mô hình này được cài đặt và thử nghiệm, đánh giá kết quả dựa trên phần mềm mã nguồn
mở Zabbix phiên bản 3.0.4, mã nguồn phát triển thêm viết bằng ngôn ngữ lập trình Python phiên bản 2.7.2
Tôi cam kết đây là công trình nghiên cứu, phát triển của bản thân, dựa trên các công
cụ, phần mềm mã nguồn mở hợp pháp, các tài liệu tham khảo, nội dung trích dẫn được ghi rõ nguồn gốc, không sao chép, vi phạm bản quyền của bất cứ cá nhân, tổ chức nào khác
Hà Nội, ngày 20 tháng 9 năm 2016
Người thực hiện
Hà Vĩnh Anh
Trang 8DANH MỤC TỪ VIẾT TẮT
TCP/IP Transmission Control Protocol/ Internet Protocol
ISO International Organization for Standardization IPMI Interlligent Platform Management Interface
Trang 9DANH MỤC HÌNH VẼ
Hình 1.2-1 Kiến trúc của một hệ thống quản trị mạng 12
Hình 1.4-1 Mô hình trao đổi thông tin của SNMP [20] 21
Hình 1.4-2 Các phương thức hoạt động của SNMP 23
Hình 1.4-3 Cấu trúc MIB gốc 26
Hình 1.4-4 Các nhóm chuẩn của MIB-II 28
Hình 1.6-1 Quản trị mạng dựa trên tác tử người sử dụng – EUA 31
Hình 1.6-2 Tương tác kịch bản giữa client và server 32
Hình 2.1-1 Thành phần và hoạt động của hệ thống quản trị mạng 34
Hình 3.2-1 Các thành phần hệ thống giám sát dịch vụ Web 41
Hình 3.3-1: Mô hình thử nghiệm hệ thống 56
Bảng 3.4-1 Kết quả thử nghiệm tình huống 1 59
Bảng 3.4-2 Kết quả thử nghiệm tình huống 2 60
Bảng 3.4-3 Kết quả thử nghiệm tình huống 3 61
Bảng 3.4-4 Kết quả thử nghiệm tình huống 4 62
Trang 10MỞ ĐẦU a) Lý do chọn đề tài
Các hệ thống giám sát, quản trị mạng hiện nay như Nagios, Cacti (phần mềm nguồn mở), HPOpenView, CiscoWork (phần mềm thương mại) đều có các chức năng chính là: theo dõi, phát hiện, cảnh báo sớm và xử lý sự cố Các hệ thống này đều dựa trên giao thức SNMP để thu thập và phát hiện thông tin Hệ thống quản trị với SNMP giúp đơn giản hóa các quá trình quản lý các thành phần trong mạng, giảm chi phí triển khai SNMP được thiết kế để có thể mở rộng các chức năng quản lý, giám sát và có thể hoạt động độc lập với các kiến trúc và cơ chế của các thiết bị hỗ trợ SNMP Tuy nhiên, các
hệ thống này còn một số tồn tại như:
(i) Không kiểm soát, giám sát được các vùng mạng sau thiết bị không hỗ trợ SNMP (switch mù);
(ii) SNMP agent chỉ cung cấp các thông tin về thiết bị, không có cơ chế để kiểm tra các thiết bị khác;
(iii) Không giám sát được mức độ đáp ứng của các dịch vụ
Xuất phát từ những tồn tại này, kết hợp với những ý tưởng, đề xuất ở [1] và [2], học viên đã lựa chọn, nghiên cứu, triển khai một hệ thống quản trị mạng (Zabbix), từ đó phát triển một số module và script nhằm phục vụ có hiệu quả hơn công việc tại đơn vị
và đóng góp nhất định vào việc phát triển một hệ thống giám sát, quản trị mạng mã nguồn mở
b) Các kết quả nghiên cứu đã có
Đã có những nghiên cứu, đề xuất về một mô hình hệ thống giám sát mạng hướng
chức năng của dịch vụ được đưa ra trước đây, như trong bài báo: A service functionality oriented network management system model, Journal of Information and Communication Technology 5(1)(6(26)), p118–123 [1] thực hiện Bài báo đã đưa ra
Trang 11một mô hình giải quyết được vấn đề tương tác với người sử dụng và đảm bảo chức năng của các dịch vụ trên các hệ thống quản trị mạng Tuy nhiên, việc cài đặt, triển khai thử nghiệm hệ thống vẫn mang tính chất định tính, chưa được thực hiện trên các dịch vụ mạng thông dụng của người sử dụng Cần thiết phải nghiên cứu hoàn thiện mô hình để có thể triển khai với các dịch vụ cơ bản như web, webmail…
(4) Đề xuất mô hình giải pháp cho các vấn đề đã nêu ở (2): thu thập và quản lý thông tin người dùng; phát triển mô hình quản trị mạng dựa trên chức năng; (5) Triển khai thử nghiệm các giải pháp ở (4) với các công cụ ở (3)
d) Đối tượng nghiên cứu:
- Đặc tính, kiến trúc và ưu, nhược điểm của một hệ thống quản trị mạng dựa trên SNMP truyền thống;
- Nghiên cứu mô hình quản trị mạng hướng chức năng cam kết dịch vụ
e) Phạm vi nghiên cứu
Mô hình giám sát dịch vụ dựa trên chức năng: nghiên cứu mô hình sẵn có và hoàn thiện, bao gồm các phần:
- Thành quần quản lý script: cho phép thêm, bớt các scripts giám sát theo ý muốn;
- Thành phần thử nghiệm dịch vụ: cho phép thực hiện các scripts, sau đó gửi kết quả về máy chủ;
Trang 12- Phát triển các script giám sát, kiểm tra các dịch vụ cam kết của dịch vụ web
f) Tóm tắt nội dung, kết quả thu được
Luận văn trình bày những kết quả nghiên cứu, tìm hiểu và khảo sát về lý thuyết quản trị mạng, mô hình quản trị mạng truyền thống và mô hình giám sát mạng hướng chức năng của dịch vụ, luận văn này cũng bao gồm những tìm hiểu về một số công cụ quản trị mạng mã nguồn mở được sử dụng phổ biến Trên những cơ sở đó, các thành phần thu thập và quản lý thông tin người sử dụng, giám sát mạng hướng chức năng của dịch vụ đã được phát triển Sau đó được triển khai, đánh giá và so sánh với mô hình truyền thống
g) Phương pháp nghiên cứu
Quá trình nghiên cứu được chia thành các phần lý thuyết và thực nghiệm như sau:
- Tìm hiểu lý thuyết chung về quản trị mạng;
- Nghiên cứu mô hình giám sát mạng hướng chức năng của dịch vụ;
- Khảo sát và lựa chọn công cụ quản trị mạng mã nguồn mở phù hợp để phát triển các thành phần mới;
- Phát triển các thành phần giám sát mới gồm:
o Thành phần thu thập, lưu trữ và sắp xếp thông tin người sử dụng
o Thành phần giám sát dịch vụ dựa trên chức năng để giám sát hoạt động dịch vụ web
- Xây dựng môi trường, kịch bản thử nghiệm, thu thập kết quả và đánh giá hệ thống với các thành phần mới
Trang 13CHƯƠNG 1: TỔNG QUAN VỀ QUẢN TRỊ MẠNG 1.1 Quản trị mạng là gì
Một hệ thống giám sát, quản trị mạng là một tập hợp các công cụ phần cứng và phần mềm cho phép người quản trị mạng giám sát các thành phần riêng lẻ của một mạng bên trong một mạng lớn hơn Hệ thống này có thể xác định được hiệu suất mạng chậm hoặc các thiết bị mạng không làm việc Việc giám sát dựa trên sự phân tích thông năng, tỷ lệ lỗi, mất gói và độ trễ, độ sẵn sàng và thời gian đáp ứng của thiết bị định tuyến và chuyển mạch Nếu có một số lỗi xảy ra, người quản trị mạng sẽ nhận được các thông báo lỗi thông qua cảnh báo, email, điện thoại di động…
Giám sát, quản trị mạng còn thực hiện vai trò của các công cụ chiến lược trong các doanh nghiệp hiện đại Nó giúp tối ưu hóa luồng dữ liệu và phát hiện các thiết bị tin cậy Ngoài ra, nó còn giúp xác định khả năng và đặc tính của các thiết bị mạng như tốc
độ, tỷ lệ sử dụng… Giám sát, quản trị mạng giúp tối đa hóa hiệu suất mạng và làm giảm đi những lỗi tiềm ẩn của mạng Việc tối ưu hóa được hệ thống quản trị mạng giúp doanh nghiệp giảm chi phí hạ tầng, tăng năng suất lao động và giúp lưu lượng dữ liệu trao đổi nhanh chóng và tin cậy, từ đó làm tăng chất lượng của dịch vụ mạng Với vai trò to lớn như vậy, việc không ngừng nghiên cứu, cập nhật và mở rộng các mô hình, thành phần giám sát là vô cùng cần thiết để nâng cao hiệu quả
1.2 Kiến trúc của hệ thống quản trị mạng
Trang 14Hình 1.2-1 Kiến trúc của một hệ thống quản trị mạng
Hình vẽ trên là kiến trúc của một hệ thống quản trị mạng thường gặp Trong kiến trúc này, các trạm làm việc đầu cuối (End station) như máy tính, máy in mạng, các thiết bị nối mạng như Hub, switch, router, cần được theo dõi trạng thái hay điều khiển Chúng được gọi là các thiết bị được quản trị (Managed Device)
Máy tính mà trên đó ta cài phần mềm cho phép người quản trị mạng thực hiện các thao tác quản trị mạng được gọi là Trạm quản trị mạng (NMS-Network Management Station), đôi khi còn gọi là Hệ thống quản trị mạng (Network Management System) Phần mềm cài đặt trên trạm quản trị này được gọi là Thực thể quản trị mạng (Management Entity)
Mỗi thiết bị được quản trị có chạy một chương trình để cho phép chúng gởi thông báo về thực thể quản trị mạng các sự kiện bất thường xảy ra trên chúng (ví dụ như một giá trị ngưỡng nào đó bị vượt qua) cũng như nhận và thi hành các mệnh lệnh do thực
Trang 15thể quản trị mạng gởi đến Phần mềm chạy bên trong các thiết bị được quản trị này được gọi là các tác tử (agent)
Nhiệm vụ của các agent là thường xuyên theo dõi trạng thái của thiết bị mà nó đang chạy trên đó Agent sẽ thường xuyên ghi nhận lại các giá trị của các thông số phản ánh tình trạng của thiết bị mà nhà quản trị quan tâm vào một cơ sở dữ liệu nằm bên trong thiết bị Cơ sở dữ liệu này được gọi là hệ cơ sở dữ liệu quản trị (MIB-Management Information Base)
Mỗi khi người quản trị mạng muốn biết thông tin về trạng thái của một thiết bị nào
đó, người quản trị mạng sẽ gọi thực hiện một chức năng tương ứng trên phần mềm quản trị mạng Khi đó, thực thể quản trị mạng sẽ gởi một lệnh đến tác tử trên thiết bị tương ứng Tác tử sẽ dò trong cở sở thông tin quản trị thông tin mà nhà quản trị mong muốn để gởi ngược về cho thực thể quản trị mạng Phần mềm quản trị mạng sẽ hiển thị lên màn hình, thường dưới dạng đồ họa, cho người quản trị xem
1.3 Hoạt động của hệ thống quản trị mạng
1.3.1 Khả năng
a) So sánh Agent-base và Agentless
Người quản trị hệ thống phải lựa chọn giám sát, quản trị mạng với agent-base hoặc agentless Không có giải pháp nào là tối ưu cho mỗi mạng, nó phụ thuộc vào mức độ giám sát, vào loại mạng và cả chi phí Vì thế cần hiểu được sự khác biệt giữa agentbase
và agentless để lựa chọn giải pháp tốt nhất cho mạng riêng của doanh nghiệp
- Agent-base:
Giám sát dựa trên tác tử (Agent-base monitoring) bao gồm một phần của phần mềm agent Agent là một ứng dụng được cài đặt cục bộ trên các server và các thiết bị mạng
Trang 16khác Mục tiêu của nó là để giám sát hiệu năng mạng Nếu có lỗi xảy ra trên hệ thống, các cảnh báo sẽ được tạo ra Ngoài ra, agent còn có khả năng khắc phục một số lỗi Việc giám sát dựa trên tác tử (agent-base monitoring) giúp phân tích mạng sâu hơn
và chẩn đoán hiệu năng phần cứng Nó còn có khả năng cảnh báo và báo cáo cũng như
tự động khắc phục một số lỗi đơn giản Giám sát dựa trên tác tử được khuyến nghị sử dụng với các mạng lớn, có hạ tầng phức tạp Các công cụ giám sát dựa trên tác tử có khả năng cảnh báo và báo cáo cũng như tự động khắc phục một số lỗi đơn giản Công
cụ này cung cấp thông tin chi tiết về vị trí và loại lỗi Điều này giúp người quản trị mạng giảm thời gian tìm kiếm và khắc phục sự cố [23]
Tuy nhiên, việc triển khai một hệ thống agent-base monitoring là một quá trình mất nhiều thời gian, đòi hỏi đưa vào account nhiều thông tin chi tiết của mạng Ngoài ra, các agent đòi hỏi thường xuyên cập nhật và có thể đòi hỏi nhiều chi phí cho license Một số agent còn tiêu thụ nhiều tài nguyên mạng, làm ảnh hưởng đến hiệu suất sử dụng mạng [23]
- Agentless:
Agentless là giải pháp không yêu cầu cài đặt các agent Việc phân tích mạng được dựa trên các gói tin giám sát trực tiếp Nó được sử dụng để giám sát mạng đang vận hành có sẵn Tuy nhiên, agentless không cung cấp được các thông tin chi tiết về lỗi xảy
ra
Việc giám sát phi tác tử (agentless monitoring) thường dựa trên SNMP (Simple Network Monitoring Protocol) hoặc WMI (Windows Management Instrumentation)
Nó dựa trên một trạm quản lý trung tâm để theo dõi tất cả các thiết bị mạng khác [23]
Ưu điểm chính của agentless monitoring là không cần các agent Việc triển khai dễ dàng, chi phí thấp và việc cập nhật các agent thường xuyên là không cần thiết Giám sát phi tác tử thích hợp với các mạng nhỏ chỉ bao gồm vài thiết bị mạng Nhược điểm
Trang 17lớn nhất của giải pháp này là người quản trị mạng sẽ không có được các số liệu sâu hơn Ngoài ra, agentless monitoring còn không có khả năng báo cáo và tính năng phân tích [23]
Không có giải pháp nào là tốt nhất, việc lựa chọn giải pháp tùy thuộc vào kiểu mạng, độ phức tạp và khả năng tài chính
Giải pháp giám sát mạng của các công cụ như Nagios hay Zabbix có cả agentbase
và agentless Ở các phần thiết yếu của mạng, ưu tiên sự sẵn sàng và hiệu suất, nên sử dụng giám sát dựa trên tác tử Đối với những phần ít quan trọng hơn thì sử dụng giám sát phi tác tử [12] và [14]
b) Tự động phát hiện (Auto discovery)
Một trong những thách thức của người quản trị mạng là luôn cập nhật được những thay đổi mới nhất trong được hệ thống mạng Hàng ngày hoặc hàng tuần, các thiết bị mới được kết nối mạng Tính năng tự động phát hiện được sử dụng để theo dõi các thay đổi liên tục này
Tự động phát hiện là một tính năng cho phép thực hiện tìm kiếm các phần tử mạng Ngoài ra, nó sẽ tự động thêm các thiết bị mới và gỡ bỏ những thiết bị không còn thuộc
về mạng Nó cũng thực hiện việc phát hiện các card mạng, các port và các tập tin hệ thống [14]
Tự động phát hiện có thể được sử dụng để xác định tình trạng mạng, các thiết bị và dịch vụ đang sử dụng trong mạng Ngoài ra, tự động phát hiện có thể xác minh những port được sử dụng, giúp ích trong vấn đề an ninh mạng
Tự động phát hiện có thể ping hoặc truy vấn mỗi thiết bị mạng Nếu mạng có hệ thống phát hiện xâm nhập (Intrusion Detection System – IDS), tự động phát hiện có thể kích hoạt báo động xâm nhập vì tính năng này cũng có thể được sử dụng để hack Kẻ tấn công có thể nhận được toàn bộ hình ảnh của mạng với tất cả các thiết bị và dịch vụ
Trang 18Mặc dù phát hiện tự động có vai trong quan trọng trong giám sát mạng, trên thực tế một số công cụ trên thị trường lại không cung cấp tính năng này Do đó người quản trị mạng nên chú ý điều này khi lựa chọn công cụ giám sát mạng
c) Phát hiện mức độ thấp (Low-level discovery)
Phát hiện ở mức thấp (Low-Level Discovery – LLD) được sử dụng để giám sát các tập tin hệ thống và các giao diện mạng mà không cần tạo và thêm thủ công các thành phần LLD là một tính năng động cho phép tự động thêm và gỡ bỏ các thành phần Nó cũng tự động tạo ra các bộ khởi động và đồ thị cho các tập tin hệ thống, giao diện mạng và bảng SNMP [14]
Trước khi LLD được sử dụng rộng rãi, các template được sử dụng Tuy nhiên, việc tạo ra một template là quá trình tốn nhiều thời gian Mỗi template tạo ra một kích hoạt cho mỗi port hoặc ổ đĩa logic và phải xác định xem kích hoạt hay ghi nhận cái gì
Ví dụ, một mạng có một switch 24 port Để giám sát trạng thái, phải tạo ra template bằng cách sử dụng SNMPv2 và IF-MIB trigger Tùy thuộc vào chính sách mạng mà có thể tạo ra đến 14 yếu tố Sau đó,mỗi template được sao chép 23 lần cho mỗi port Ngoài ra, nó còn được đưa vào mạng có nhiều switch và các thiết bị khác Điều đó đòi hỏi mất nhiều thời gian để truyền đến tất cả các thiết bị mạng Đây là một thủ tục khiến người quản trị mạng tốn nhiều thời gian
Thay vì tạo ra các template cho mỗi port, LLD cho phép tạo ra một lần nguyên mẫu của các thành phần dữ liệu và nguyên mẫu bộ kích hoạt Sau đó, LLD tự động phát hiện ra các port, tập tin hệ thống và bảng SNMP Một số trigger khác nhau có thể được tạo ra đáp ứng các nhu cầu khác nhau
Ngoài ra, LLD còn được sử dụng để theo dõi khối lượng công việc của các lỗi CPU
và ổ đĩa vật lý Hơn nữa, LLD có thể thực hiện giám sát RAID và thậm chí đếm được
số người dùng đang sử dụng dịch vụ mail Tuy nhiên, để sử dụng các tính năng này,
Trang 19người quản trị mạng phải cấu hình thủ công một mẫu thử nghiệm hoặc tải chúng từ cộng đồng người sử dụng công cụ mã nguồn mở Nhìn chung, LLD giúp tối ưu hóa việc giám sát mạng và cung cấp các cảnh báo và đồ họa của trạng thái các port, ổ đĩa logic và bảng SNMP
d) Dự đoán xu hướng(Trend Prediction)
Một số công cụ giám sát mạng có một tính năng gọi là dự đoán xu hướng Nó được
sử dụng để phát hiện lỗi ngay trước khi lỗi đó xảy ra Điều này được thực hiện bằng cách thu thập dữ liệu băng thông mạng và trạng thái của các thiết bị theo khối lượng công việc bình thường Tất cả các thông tin được lưu trữ trong cơ sở dữ liệu Kết quả giám sát tiếp tục được so sánh với các thông tin lưu trữ Nếu tìm thấy thay đổi giữa các
dữ liệu này thì cảnh báo sẽ được đưa ra
Dự đoán xu hướng cho phép phát hiện các vấn đề trước khi nó xảy ra, giúp người quản trị mạng có thể giải quyết trước khi người sử dụng nhận ra nó Mặc dù tính năng này đem lại nhiều lợi ích cho người quản trị hệ thống và đưa việc giám sát mạng lên một mức độ mới, nhưng hầu hết các công cụ quản trị mạng hiện này không hỗ trợ tính năng này
e) Nhóm logic (Logical grouping)
Các mạng lớn bao gồm nhiều thiết bị, gây khó khăn trong việc giám sát và khắc phục sự cố Nhóm logic cho phép kết hợp các thiết bị cùng loại, giúp giám sát mạng doanh nghiệp dễ dàng hơn đáng kể
Nhóm logic cho phép kết hợp cấc thiết bị mạng cùng loại thành các nhóm Với mỗi nhóm cần xác định cần giám sát những gì và những hành động cần thực hiện trong trường hợp xảy ra lỗi Việc nhóm logic hợp lý có thể cấu hình thiết lập thống nhất cho tất cả các thành phần của nhóm Nếu một hay nhiều thành viên của nhóm bị tắt, một cảnh báo sẽ được hiển thị
Trang 20Có thể tạo ra các nhóm lồng nhau cho các mạng lớn Điều này có nghĩa là có thể tạo
ra nhóm này bên trong một nhóm khác Nhóm logic giúp việc quản lý các thiết bị mạng trong một mạng lớn trở nên dễ dàng hơn Hầu hết các công cụ giám sát quản trị mạng hiện nay đều cung cấp lựa chọn nhóm logic
Ngay từ khi có mạng máy tính đầu tiên, quản trị mạng đã xuất hiện và đóng vai trò quan trọng Bất cứ khi nào hai hay nhiều hơn các máy tính, thiết bị được liên kết với nhau đều cần phải có một hệ thống quản trị mạng để quản lý, giám sát và phân tích các thông tin trao đổi giữa chúng Tổ chức tiêu chuẩn thế giới (ISO) định nghĩa mô hình quản trị mạng gồm năm vùng chức năng sau:
- Vùng quản lý lỗi (Fault management)
- Vùng quản lý cấu hình (Configuration management)
- Vùng quản lý tài khoản (Accounting management)
- Vùng quản lý hiệu năng (Performance management)
- Vùng quản lý bảo mật (Security Management)
Định nghĩa, chức năng của từng vùng như sau:
a) Vùng quản lý lỗi
Mục đích của quản lý lỗi là phát hiện, phân vùng, sửa và ghi nhật ký lỗi xuất hiện trong mạng Không chỉ dừng lại ở mức ghi nhận thông tin, bằng cách thu thập và phân tích các thông tin này, nó có thể dự đoán trước được lỗi, giúp hạn chế tối đa hậu quả gặp phải
Các thiết bị mạng gửi thông tin lỗi hoặc thông tin hiệu năng cho trung tâm mạng (network operator) bằng các giao thức giám sát, phổ biến nhất là SNMP Ở phía trung tâm mạng, có một máy chủ cài phần mềm giám sát để tiếp nhận, phân tích và lưu trữ thông tin, nếu có dấu hiệu bất thường, nó sẽ gửi cảnh báo đến quản trị viên dưới nhiều
Trang 21hình thức (trực tiếp trên giao diện quản trị, email, sms hoặc các ứng dụng cho điện thoại thông minh) và còn có thể thực hiện một vài tác vụ tự động để xử lý hoặc cô lập lỗi
b) Vùng quản lý cấu hình
Các chức năng của vùng này bao gồm:
- Thu thập và lưu trữ cấu hình của thiết bị mạng
- Đơn giản hóa cấu hình thiết bị
- Theo dõi các thay đổi trên cấu hình
Vùng này đặc biệt quan trọng, vì mỗi thay đổi trong cấu hình, dù là nhỏ nhất đều có thể ảnh hưởng rất lớn đến hệ thống Theo dõi, ghi nhận những thông tin này sẽ giúp quản trị viên nhanh chóng phát hiện lỗi, khôi phục lại cấu hình ban đầu, hoặc đưa ra được các kế hoạch nâng cấp, mở rộng trong tương lai
c) Vùng quản lý tài khoản
Vùng này có chức năng theo dõi quá trình sử dụng dịch vụ của mỗi người dùng hoặc nhóm người dùng, từ đó xuất ra hóa đơn tính tiền (đối với những hệ thống có tính chất kinh doanh tính phí) hoặc phục vụ cho việc giám sát, phân quyền (đối với những
hệ thống không có tính chất kinh doanh) RADIUS, TACACS và Diameter là một vài
ví dụ cho những giao thức được sử dụng cho việc quản lý tài khoản
d) Vùng quản lý hiệu năng
Vùng này tập trung vào việc đảm bảo hiệu năng mạng duy trì ở mức chấp nhận được Nó cho phép quản trị viên lên kế hoạch cho những thay đổi trong tương lai, cũng như xác định hiệu quả của hệ thống ở thời điểm hiện tại Hiệu năng mạng được đánh giá thông qua thông lượng, thời gian phản hồi, tốc độ mất gói tin, và các thông số khác tùy theo đặc điểm mạng Các thông tin này thường được thu thập thông qua một hệ
Trang 22quản trị SNMP, hệ quản trị này vừa có chức năng giám sát chủ động, vừa có chức năng cảnh báo quản trị viên khi hiệu năng vượt quá hoặc xuống dưới ngưỡng đặt trước Giám sát chủ động hiệu năng mạng là một bước quan trọng để xác định sự cố trước khi
nó xảy ra
e) Vùng quản lý bảo mật
Quản lý bảo mật là quá trình kiểm soát quyền truy cập vào tất cả các vùng, thiết bị trong mạng Quản lý bảo mật không chỉ để đảm bảo cho môi trường mạng được an toàn, nó còn có chức năng thu thập các thông tin để phân tích định kỳ Các chức năng của vùng này gồm: quản lý đăng nhập hệ thống mạng, phân quyền và xác thực
Tuy được định nghĩa như vậy, nhưng có một chú ý rằng, mô hình và các vùng chức năng này thực tế rất ít khi được triển khai đầy đủ trong một hệ thống quản trị mạng của một tổ chức, doanh nghiệp Chỉ những thành phần cụ thể, tùy theo yêu cầu, quy mô của doanh nghiệp mới được triển khai
1.4 Các giao thức quản trị mạng
Để thu thập các thông tin về trạng thái, hiệu năng hoạt động của mạng, có một vài giao thức được sử dụng như: SNMPv1,2,3 (Simple Network Management Protocol – giao thức quản trị mạng cơ bản), NetFlow, J-Flow,… tuy nhiên, chỉ có một giao thức được sử dụng rộng rãi, đã được triển khai sẵn trên hầu hết các thiết bị mạng, hệ điều hành và là giao thức chuẩn (Internet-standard) để quản trị các thiết bị trên mạng IP, đó
là giao thức SNMP Nói đến quản trị mạng bắt buộc phải nói đến SNMP Phần này sẽ tập trung nghiên cứu về đặc điểm, tính chất của các phiên bản SNMP và đề cập đến một khái niệm khác, có liên quan chặt chẽ với SNMP là MIB
SNMP có các phiên bản 1, 2 và 3, các phiên bản sau là phiên bản mở rộng của phiên bản trước SNMP không tự định nghĩa danh sách các thông số một hệ quản trị mạng cần thu thập và theo dõi, mà nó sử dụng danh sách định nghĩa trong MIB
Trang 231.4.1 SNMP
Giao thức SNMP và mô hình triển khai SNMP hiện nay đã trở thành chuẩn cho quản trị mạng SNMP là một giải pháp đơn giản, rất dễ triển khai thực tế, vì vậy, mỗi nhà sản xuất thiết bị mạng có thể dễ dàng tự phát triển riêng cho mình những tác tử SNMP (SNMP Agent) phù hợp với đặc điểm thiết bị [20] SNMP định nghĩa cách trao đổi thông tin giữa ứng dụng quản trị mạng và tác tử quản trị mạng Hình 1.4.1 là mô hình trao đổi thông tin của SNMP:
Hình 1.4-1 Mô hình trao đổi thông tin của SNMP [20]
Mô hình này gồm có:
- Máy chủ quản trị (Manager): máy chủ quản trị, được cài đặt một ứng dụng quản trị mạng, định kỳ lấy thông tin từ các tác tử SNMP trên thiết bị, sau đó hiển thị thông tin lên giao diện đồ họa Một nhược điểm của việc định kỳ lấy thông tin
Trang 24như vậy là có thể có độ sai khác giữa thời gian thực xảy ra một sự kiện và thời gian hệ thống quản trị nhận ra sự kiện đó
- Giao thức (Protocol): SNMP là một giao thức trao đổi thông điệp Nó sử dụng cơ chế trao đổi của UDP để gửi và nhận dữ liệu
- Thiết bị được quản lý (Managed device): thiết bị được quản lý bởi máy chủ quản trị
- Tác tử quản trị (Management Agents): tác tử SNMP cài đặt trên thiết bị để thu thập và lưu trữ thông tin hoạt động của thiết bị Tác tử SNMP sẽ trả lời khi có yêu cầu truy cập thông tin từ máy chủ quản trị, và có thể tạo ra các “bẫy” (trap) để báo cho máy chủ quản trị về những sự kiện đặc biệt xảy ra Bằng cách cấu hình các “bẫy” này, ta có thể giảm thiểu tài nguyên mạng và tài nguyên hệ thống dùng cho việc chạy tác tử vì khi đó, chỉ những sự kiện cần quan tâm xảy ra thì tác tử mới gửi thông tin về
- MIB: Tác tử SNMP thu thập dữ liệu và lưu trữ theo danh sách định nghĩa bởi MIB, có thể coi MIB như là một cơ sở dữ liệu các thuộc tính của thiết bị Để điều khiển, phân quyền truy cập đến MIB, SNMP sử dụng các chuỗi định danh (Community strings) Người dùng bắt buộc phải chỉ định chuỗi định danh nào được quyền đọc hay quyền ghi, nếu không chỉ định, mọi truy cập đều bị từ chối
1.4.2 SNMPv1
Phiên bản đầu tiên của SNMP, SNMPv1 được định nghĩa trong RFC 1157,
“Simple Network Management Protocol (SNMP)” [20] Nhìn vào tập các phương thức hoạt động của giao thức, ta có thể thấy rõ sự đơn giản của nó Hình 1.4-2 mô tả những thông điệp cơ bản của SNMP, máy chủ quản trị sẽ sử dụng các thông điệp này để trao đổi dữ liệu với tác tử trên thiết bị Những thông điệp này được diễn giải như sau:
Trang 25Hình 1.4-2 Các phương thức hoạt động của SNMP
- Yêu cầu lấy thông tin - Get Request: Sử dụng bởi máy chủ quản trị, để yêu cầu lấy giá trị của một biến MIB nào đó từ tác tử
- Yêu cầu lấy thông tin tiếp theo - Get Next Request: Sử dụng sau thông điệp “get request” đầu tiên, dùng để truy cập đối tượng tiếp theo từ một bảng hay một danh sách có trước
- Yêu cầu thiết lập thông tin - Set request: Sử dụng để thiết lập một biến MIB trên tác tử
- Phản hồi yêu cầu lấy thông tin - Get Response: Sử dụng bởi tác tử, dùng để phản hồi thông điệp “Get Request” hoặc “Get Next Request”
- Bẫy - Trap: Sử dụng bởi tác tử, để gửi cảnh báo cho máy chủ quản trị về những vấn đề không mong muốn
1.4.3 SNMPv2
SNMPv2 là một giao thức cải tiến so với SNMP về hiệu năng và cách thức giao tiếp giữa các máy chủ quản trị với nhau (manager-to-manager) SNMPv2 được giới thiệu trong RFC 1441, “Introduction to version 2 of the Internet-standard Network Management Framework”, tuy nhiên khi đó, các thành viên của tiểu ban IETF không
Trang 26đồng ý về một vài đặc tính của SNMPv2 (chủ yếu là các đặc tính về bảo mật và quản trị) Để được chấp nhận, đã có một vài giao thức khác được đưa ra, loại bỏ các thành phần còn tranh cãi này như SNMPv2*, SNMPv2, SNMPv2u, SNMPv1+ và SNMPv1.5 [20]
SNMPv2 “cộng đồng” (Community-based SNMPv2) (hay SNMPv2c), được định nghĩa trong RFC 1901, “Introduction to Community-based SNMPv2”, là phiên bản được triển khai thông dụng nhất, vì vậy, khi nhắc đến SNMPv2, ta ngầm hiểu nó chính
là SNMPv2c [20] Ký tự “c” viết tắt cho cụm từ “community-based security” (tính bảo mật cộng đồng) do SNMPv2c cũng sử dụng hệ thống chuỗi định danh (community string) như SNMPv1 để phân quyền đọc, ghi So với SNMPv1, SNMPv2c có những dạng thông điệp mới sau:
- Kiểu thông điệp truy cập dữ liệu lớn (GetBulk message type): Sử dụng để truy cập một dữ liệu lớn (như các bảng dữ liệu) Sử dụng thông điệp này giúp giảm thiểu việc lặp đi lặp lại các yêu cầu và phản hồi giữa máy chủ quản trị và tác tử, nhờ đó cải thiện được hiệu năng hoạt động
- Yêu cầu thông báo (InformRequest): Sử dụng để cánh báo cho máy chủ quản trị SNMP khi có một điều kiện đặc biệt thỏa mãn Khác với thông điệp “trap” không được báo nhận, khi máy chủ quản trị nhận được một “InformRequest”, nó sẽ phản hồi cho tác tử một thông điệp báo nhận (acknowledge)
Một cải tiến khác của SNMPv2 so với SNMPv1 là những dạng dữ liệu mới sử dụng
bộ đếm 64-bit thay vì bộ đếm 32-bit vốn đã bị tràn khi dùng với những giao diện mạng tốc độ cao
1.4.4 SNMPv3
SNMPv3 là phiên bản SNMP mới nhất và đã được công bố ở dạng một chuẩn đầy
đủ SNMPv3 được mô tả trong RFCs 3410 đến 3415, so với các phiên bản trước, nó có
Trang 27thêm các phương thức để bảo đảm truyền dẫn bảo mật giữa thiết bị và máy chủ quản trị [20]
SNMPv3 có ba mức độ bảo mật như sau:
- NoAuthNoPriv: không xác thực và không có phân quyền (nhưng vẫn có mã hóa)
- AuthNoPriv: có xác thực nhưng không có phân quyền Xác thực dựa trên các hàm băm
- AuthPriv: có xác thực như mục trên và có phân quyền sử dụng các thuật toán mã hóa đặc biệt
Các mức độ bảo mật có thể được thiết lập trên từng người dùng hoặc từng nhóm người dùng thông qua việc tương tác trực tiếp với thiết bị hoặc thông qua các phương thức của SNMP Nhờ có các cơ chế bảo mật này, ta có thể phân quyền cho từng đối tượng SNMP, quyết định xem đối tượng nào người dùng có thể đọc, ghi hay tạo và liệt
kê các cảnh báo liên quan
1.4.5 MIB
Một MIB là một tập các đối tượng được quản trị, nó lưu trữ các thông tin mà tác tử quản trị thu thập được ngay trên thiết bị, và cung cấp cho máy chủ khi có yêu cầu, theo một giao thức nhất định [20]
Mỗi đối tượng trong một MIB có một định danh riêng, nhờ có định danh này, các ứng dụng quản trị mạng mới có thể xác định và truy cập giá trị mà nó mong muốn MIB có cấu trúc dạng cây, mỗi nhánh của nó là một tập các đối tượng có tính chất tương tự nhau Ví dụ, nhánh giao diện (interface) là tập các bộ đếm sử dụng cho giao diện kết nối (interface counter)
a) Cấu trúc Internet MIB
Trang 28Hình 1.4-3 Cấu trúc MIB gốc
Hình 1.4.3 là cấu trúc của MIB gốc, như ta thấy, MIB được biểu diễn phân cấp dạng cây, gốc là đối tượng không xác định (unamed), tiếp đó là ba nhóm chính: CCITT (Consultative Committee for International Telegraph and Telephone), ISO và joint ISO/CCITT
Những nhánh này chia tiếp thành các nhánh con xác định bởi một chuỗi ký tự ngắn
và một số nguyên Chuỗi ký tự là tên của đối tượng, còn số nguyên là định danh dùng
để xây dựng đường dẫn truy cập nhanh đến đối tượng Định danh của một đối tượng trong cây MIB là đường dẫn tính từ gốc đến đối tượng đó Ví dụ: định danh của
Trang 29Internet MIB là: 1.3.5.1.2.1, hoặc, biểu diễn dưới dạng các chuỗi ký tự: iso.org.dod.internet.mgmt.mib
Các MIB chuẩn được định nghĩa trong các tài liệu RFC khác nhau Ví dụ, RFC
1213, “Management Information Base for Network Management of TCP/IP-based internets: MIB-II” định nghĩa TCP/IP MIB [20]
Bên cạnh các MIB chuẩn, mỗi nhà sản xuất thiết bị mạng có thể phát triển riêng cho mình một MIB con và tạo ra các đối tượng quản trị đặc trưng dưới nhánh MIB đó Thường thì MIB của mỗi nhà sản xuất chứa cả các đối tượng chuẩn và các đối tượng đặc trưng Ví dụ, cây MIB của thiết bị định tuyến của hãng Cisco chứa các nhóm đối tượng chuẩn sau:
+ Nhóm giao diện kết nối (interface group), nhóm này bao gồm thông tin mô tả giao diện (interface description), kiểu giao diện, địa chỉ vật lý, các bộ đếm gói tin đến
và đi,…
+ Nhóm IP, bao gồm thông tin dùng để xác định xem thiết bị có đang hoạt động ở dạng cổng truy cập IP (IP gateway) hay không, số gói tin vào, số gói tin bị hủy do lỗi,…
+ Nhóm ICMP, gồm số bản tin ICMP nhận được, số bản tin lỗi,…
và các nhóm đối tượng đặc trưng của hãng như:
Trang 30MIB-II là một mở rộng của MIB (hay còn gọi là MIB-I), được định nghĩa trong RFC 1213, MIB-II hỗ trợ một số giao thức mới và cung cấp thông tin chi tiết hơn, có cấu trúc hơn MIB-II là một trong những MIB được hỗ trợ rộng rãi nhất [20]
Hình 1.4-4 Các nhóm chuẩn của MIB-II
Các đối tượng của MIB-II nằm dưới nhánh iso.org.dod.internet.mgmt, và được chia thành mười nhóm con, các nhóm con này được định nghĩa trong RFC 1213 như sau:
- System (1.3.6.1.2.1.1): Định nghĩa một danh sách các đối tượng gắn liền với
hoạt động của hệ thống như: thời gian hoạt động của hệ thống tính từ lúc khởi động gần nhất tới thời điểm hiện tại, thông tin liên lạc của hệ thống và tên của hệ thống
- Interfaces (1.3.6.1.2.1.2): Lưu giữ trạng thái của các giao diện kết nối trên thiết
bị được quản lý Theo dõi xem trạng thái của giao diện là “up” hay “down”, lưu lại các octet gửi và nhận, octet lỗi hay bị hủy bỏ
-at (1.3.6.1.2.1.3): Nhóm at (address translation) chỉ cung cấp khả năng tương thích ngược Nhóm này được bỏ từ MIB-III trở đi
- ip (1.3.6.1.2.1.4): Lưu giữ nhiều thông tin liên quan tới IP, trong đó có phần
định tuyến IP
- icmp (1.3.6.1.2.1.5): Lưu các thông tin như gói ICMP lỗi, hủy
- tcp (1.3.6.1.2.1.6): Lưu các thông tin dành riêng cho trạng thái kết nối TCP như:
đóng, lắng nghe, báo gửi…
- udp (1.3.6.1.2.1.7): Tập hợp các thông tin thống kê cho UDP, các datagram vào
và ra, …
Trang 31- egp (1.3.6.1.2.1.8) Lưu các tham số về EGP và bảng EGP lân cận
- Transmission (1.3.6.1.2.1.10): Không có đối tượng nào trong nhóm này, nhưng
nó định nghĩa các môi trường đặc biệt của MIB
- snmp (1.3.6.1.2.1.11): các thông số hoạt động của SNMP trên các tác tử quản
trị và số các gói SNMP nhận và gửi
Ngoài các giao thức chuẩn như đã trình bày, còn có rất nhiều các giao thức khác, được triển khai trên thiết bị của từng hãng như CISCO NetFlow, Juniper JFlow,… các giao thức này chỉ đặc trưng cho từng thiết bị, về cơ bản vẫn phát triển dựa trên các giao thức trên nên không được trình bày ở đây
1.5 Một số vấn đề thường gặp của các hệ thống quản trị mạng
Mặc dù được sử dụng rộng rãi và không ngừng phát triển, mô hình sử dụng SNMP truyền thống ở trên vẫn gặp phải những vấn đề rất khó để khắc phục trong thực tế, có thể chỉ ra như sau:
- Khi một thiết bị mạng không hỗ trợ giao thức SNMP, cả vùng mạng quản lý bởi thiết bị sẽ trở thành một vùng đen không kiểm soát được;
- SNMP agent chỉ cung cấp các thông tin về thiết bị, không có cơ chế để kiểm tra các thiết bị khác;
- Hệ thống mạng vẫn hoạt động, nhưng có lỗi ở phần dịch vụ mà hệ thống giám sát mạng không phát hiện ra Nguyên nhân của hiện tượng này là SNMP chỉ quan tâm đến hoạt động của các giao thức mạng, không quan tâm đến các dịch vụ người sử dụng Do đó xuất hiện tình trạng quản trị mạng luôn luôn là người sau cùng phát hiện ra các sự cố mạng
Trang 32Để giải quyết các vấn đề này, luận văn sẽ nghiên cứu, triển khai mô hình quản trị mạng hướng chức năng của dịch vụ, và áp dụng mô hình này để giám sát dựa trên chức năng một dịch vụ mạng cụ thể
1.6 Quản trị mạng với chức năng cam kết
a) Mô hình tác tử người sử dụng đầu cuối End User Agent (EUA)
Các thiết bị không hỗ trợ SNMP không cho phép các thiết bị khác có thể giám sát các thiết bị thông qua thiết bị này Các thiết bị này sẽ tạo ra một vùng đen không thể giám sát được Mặt khác, việc khai thác và sử dụng các thiết bị hỗ trợ SNMP các phiên bản khác nhau, của các nhà sản xuất khác nhau cũng gặp rất nhiều khó khăn Để giải quyết vấn đề này, trong [2] đã đưa ra một mô hình quản trị mạng dựa trên tác tử người
sử dụng đầu cuối, cho phép có thể xác định được chất lượng của hạ tầng mạng tại vị trí của người sử dụng Trong [2] đã giải quyết được vấn đề liên kết giữa địa chỉ IP, ID của tác tử người sử dụng với vị trí và vai trò của người sử dụng Hoạt động của của hệ thống quản trị mạng EUA được mô tả trong Hình 1.6-1: Quản trị mạng dựa trên tác tử người sử dụng – EUA Hệ thống này cho phép khắc phục ảnh hưởng của các thiết bị không hỗ trợ SNMP, cho phép có thể xác định được lỗi hạ tầng mạng đến máy của người sử dụng Ngoài ra, khi theo dõi một tập hợp các máy tính cùng kết nối và có thông tin về vị trí địa lý của các máy tính, có thể có các chẩn đoán chính xác hơn về các sự cố của hạ tầng mạng
Tuy nhiên, tác tử người sử dụng chỉ cho phép phát hiện sự cố mạng tự động, không cho phép phát hiện tình trạng các dịch vụ mạng (mail, web, webmail, ) có đảm bảo được các chức năng dịch vụ hay không [11,12,13] Nếu các tác tử người sử dụng có thể kiểm tra được các chức năng của các dịch vụ, quản trị mạng sẽ có khả năng phát hiện được các lỗi liên quan đến chức năng của các dịch vụ trước người sử dụng, có thể khắc phục trước khi người sử dụng phát hiện ra lỗi này Đứng trên quan điểm người sử dụng, mức độ sẵn sàng và tin cậy của hệ thống sẽ tăng lên
Trang 33SNMP-Server User Machines
SNMP-Server SNMP-Agent
Request for download
Hình 1.6-1 Quản trị mạng dựa trên tác tử người sử dụng – EUA
b) Các mô đun phần mềm giám sát chức năng dịch vụ
Để có thể kiểm chứng một dịch vụ có đang được cung cấp một cách bình thường hay không, cần có các yếu tố sau:
- Qui trình sử dụng dịch vụ
- Mô đun phần mềm mô phỏng qui trình dịch vụ
- Tài khoản (account/profile) của người sử dụng
- Mô đun ghi nhận kết quả thử nghiệm dịch vụ với account và profile nói trên Tuy nhiên, với nhu cầu của người sử dụng, cần xây dựng các kịch bản để có thể giám sát các dịch vụ có chức năng phức tạp hơn (Webmail, Single Sing On ) Như vậy với mỗi một dịch vụ cần cung cấp cho người sử dụng, cần xây dựng:
- Qui trình sử dụng dịch vụ bao gồm các tương tác giữa phần mềm client và server với sự tham gia của người sử dụng
- Kịch bản thử nghiệm dịch vụ
- Các mô đun phần mềm thử nghiệm dịch vụ
Kịch bản sau đây đã được thử nghiệm trên server: web(login/error/success) Các quá trình thử nghiệm được thực hiện trên phần mềm Zabbix và được lưu trữ bằng các kịch bản trên server Việc thực hiện các kịch bản này định kỳ cho phép kiểm tra định
kỳ các dịch vụ có được cung cấp đúng theo đặc tả và qui trình hay không Tuy nhiên,
Trang 34việc kiểm tra các dịch vụ được thực hiện từ phía máy chủ quản trị dịch vụ, nên vẫn chưa phản ánh thực sự khung cảnh sử dụng dịch vụ của người sử dụng, nên vẫn chưa bao trùm được một số kịch bản sự cố Cần thiết có một cách thức cho phép thực hiện các kịch bản nói trên tại máy tính của người sử dụng Mô hình tác tử người sử dụng đã trình bày ở trên có thể được thay đổi để thực hiện được các kịch bản, tuy nhiên cần bổ sung một cơ chế cho phép cập nhật các kịch bản theo kịch bản sử dụng của các dịch vụ Phần tiếp theo sẽ trình bày giải pháp cho vấn đề này
c) Tích hợp các kịch bản thử nghiệm chức năng dịch vụ vào tác tử người sử dụng
Tương tự như với server, tại các máy tính của người sử dụng, cần thực hiện các thao tác
- Kiểm thử dịch vụ
- Gửi các kết quả kiểm thử cho Server
Để có thể thực hiện các thao tác này, tác tử người sử dụng cần có khả năng tải các kịch bản cần thiết, thực hiện định kỳ và gửi kết quả về máy chủ Mô hình của hệ thống trong Hình 1.6-1: Quản trị mạng dựa trên tác tử người sử dụng – EUA được bổ sung thêm các chức này này và được mô tả trong Hình 1.6-2: Tương tác kịch bản giữa client
và server
Hình 1.6-2 Tương tác kịch bản giữa client và server
Trong mô hình này, khi có một kịch bản được tạo mới hoặc thay đổi trên server, server sẽ thực hiện thao tác PUSH để cập nhật kịch bản này trên các client đã được
Trang 35đăng ký [2] Tại tác tử người sử dụng,bộ lập lịch sẽ định kỳ thực hiện các kịch bản này
và gửi kết quả về cho server Bản thân bộ lập lịch cũng là một kịch bản có thể thay đổi
Trang 36CHƯƠNG 2: LỰA CHỌN CÔNG CỤ NỀN TẢNG QUẢN TRỊ MẠNG
Chương 2 nghiên cứu và so sánh một số công cụ giám sát, quản trị mạng, từ đó phân tích lựa chọn công cụ, tiến hành tìm hiểu chi tiết Sau đó thiết kế và cài đặt mô hình quản trị mạng hướng chức năng của dịch vụ dưới hình thức mở rộng công cụ nền tảng này
2.1 Các công cụ quản trị mạng
2.1.1 Các tính năng chung của các công cụ quản trị mạng
Các công cụ quản trị mạng đều hoạt động với sự tham gia của hai thực thể quản lý
là trình quản lý (manager) hoặc tác tử (agent) và có ba tính năng chung là truy vấn, thiết lập và báo cáo
Hình 2.1-1 Thành phần và hoạt động của hệ thống quản trị mạng
- Truy vấn (query operation): trình quản lý truy vấn các tác tử để thu thập thông tin về các phần tử mạng như tình trạng, trạng thái hoặc thống kê
- Thiết lập (set operation): trình quản lý yêu cầu tác tử thay đổi thông tin trong MIB của tác tử phù hợp với các thay đổi thuộc tính của các phần tử mạng
- Báo cáo sự kiện (reporting events): các tác tử báo cáo một sự kiện bất thường xảy ra ở phía mình cho trình quản lý
Trang 372.1.2 Tiêu chí đánh giá so sánh các công cụ quản trị mạng
Duy trì hiệu suất mạng tối ưu đang ngày càng quan trọng trong môi trường kinh doanh ngày nay, với sự hội tụ của tất cả các ứng dụng thương mại và truyền thông trên cùng một hạ tầng mạng Người quản trị mạng phải đối diện với một môi trường phức tạp, đa người dùng và thay đổi liên tục Việc lựa chọn một công cụ giám sát quản trị mạng phù hợp với tổ chức, đảm bảo hiệu quả và đảm bảo các mức độ dịch vụ là một công việc khó khăn Sau đây là một số yếu tố quan trọng mà các tổ chức cần xem xét khi lựa chọn một giải pháp giám sát quản trị mạng
- Quy mô hệ thống mạng: Giải pháp quản trị mạng phải đáp ứng nhu cầu thu thập dữ liệu và các chức năng báo cáo của các mạng ngày càng tăng về quy
mô và tốc độ
- Dễ triển khai: Để triển khai thành công NMS, người quản trị mạng phải hoàn thành một quá trình phức tạp với các hệ điều hành, xây dựng cơ sở dữ liệu, lưu trữ dự phòng, triển khai tác tử… và sau đó liên tục quản lý các thành phần của hệ thống này Vì thế cần lưu ý lựa chọn giải pháp cho phép triển khai và duy trì đơn giản, ít tốn kém
- Dễ sử dụng: Giải pháp quản trị mạng cần dễ sử dụng nhưng vẫn đảm bảo tốc
độ và tính chính xác của các báo cáo Giao diện điều khiển giúp việc khởi động và sử dụng trở nên đơn giản, dễ dàng tích hợp các cổng thông tin hiện
có đồng thời giảm thời gian trung bình để cô lập và đưa ra vấn đề bằng cách cung cấp truy cập trực tiếp cho các người dùng khác nhau
- Thời gian thực: NMS phải cung cấp cái nhìn hệ thống hoàn chỉnh, bao gồm việc hiển thị thời gian thực của các cấp độ hiệu suất của tất cả các thiết bị mạng quan trọng, mà không có sự thỏa hiệp, trên toàn bộ mạng, máy chủ, cơ
sở hạ tầng và ứng dụng
Trang 38- Đường cơ sở tự động (Automated Baselines): Công cụ quản trị mạng không chỉ theo dõi hiệu suất mà còn có khả năng tự động thiết lập một thước đo cơ bản về “hành vi bình thường” cho thời gian trong ngày và trong tuần, tự động thiết lập cảnh báo và các ngưỡng quan trọng là độ lệch chuẩn so với đường cơ sở
- Chi phí: Các sản phẩm thương mại như HPOpenView, CiscoWorks rất đắt tiền (từ vài ngàn USD đến vài chục ngàn USD tùy theo quy mô sử dụng) Ngoài ra sau khi triển khai thì chi phí hỗ trợ dịch vụ, như phí nâng cấp phần mềm và bổ sung license thường phải trả là rất tốn kém Trong khi đó, hiện nay, có nhiều giải pháp mã nguồn mở tự do cho phép triển khai giám sát mạng hiệu quả với nhiều chức năng mạnh mẽ như Nagios, Cacti, Zabbix
- Khả năng mở rộng: Các giải pháp nguồn mở không chỉ miễn phí mà còn có hiệu năng rất cao, có sẵn nhiều mẫu Template được viết sẵn cho các loại thiết bị mạng, máy chủ và các hệ điều hành khác nhau, đồng thời dễ dàng tạo các Templates cho các thiết bị Phần mềm Zabbix cho phép bổ sung nhiều chương trình plugin tiện ích, cung cấp các công cụ mạnh để có thể tùy biến
hệ thống, phát triển các mở rộng phù hợp với mô hình giám sát theo dịch vụ cam kết
2.1.3 So sánh một số công cụ quản trị mạng
Trong thực tế, mạng máy tính hiện nay thường gồm rất nhiều các thiết bị có cấu tạo phức tạp, chủng loại khác nhau, do đó, để thực hiện quản trị mạng một cách hiệu quả, không thể sử dụng các công cụ thủ công được mà cần phải có một ứng dụng quản trị mạng tập trung, một giao thức quản trị mạng chuẩn cho tất cả các thiết bị Phần này sẽ trình bày một số công cụ quản trị mạng được sử dụng rộng rãi hiện nay, đa số các công
cụ này đều có các tính năng thu thập, thống kê và cảnh báo khi có thông tin vượt ngưỡng Giao thức giám sát chuẩn được sử dụng là SNMP, có thể có giao thức riêng
Trang 39(như Zabbix) nhưng yêu cầu phải cài tác tử đặc biệt lên hệ thống thì mới có thể thực hiện giám sát được Một vài công cụ được giới thiệu gồm: Cacti, Nagios, OpManager, ngoài ra còn rất nhiều công cụ khác nữa
a) Công cụ Cacti
Cacti là một giải pháp đồ thị hóa hoạt động mạng, sử dụng RRDTools để lưu trữ thông tin và vẽ đồ thị mô tả [11] Cacti là công cụ mã nguồn mở, có phương thức thu thập dữ liệu giám sát hoạt động nhanh, ổn định Ưu điểm của Cacti là có rất nhiều các kiểu mẫu (template) đồ thị mạng đơn giản nhưng rất đầy đủ và trực quan, nhiều phương thức thu thập dữ liệu khác nhau, ngoài ra còn có các tính năng quản trị người dùng đặc biệt khác Để mở rộng tính năng cho Cacti, cần phải viết các thành phần mở rộng (plugin) cho nó Bản thân Cacti không có tính năng cảnh báo và đặt ngưỡng cảnh báo cho các thông số mà nó quản lý, nhưng có rất nhiều các phần mở rộng đã được phát triển để bổ sung khiếm khuyết này Cacti có cộng đồng người sử dụng rộng lớn và
đã được sử dụng rộng rãi trong một thời gian dài, hiện nay, nó có thể giám sát được hầu hết các thiết bị mạng của mọi hãng sản xuất
b) Công cụ Nagios
Nagios là một phần mềm quản trị mạng mã nguồn mở, dùng để theo dõi toàn bộ hạ tầng mạng gồm: máy chủ, thiết bị mạng, các hoạt động khác trong mạng Nagios cũng như Cacti, có một cộng đồng phát triển và sử dụng cực kỳ rộng lớn [12]
Nagios có năm cách thức lấy thông tin giám sát khác nhau
- Chạy trực tiếp các plugins được tích hợp trong lõi để lấy các kết quả trả về
- Dùng Secure Shell (SSH) để chạy các plugins từ xa
- Dùng Nagios Remote PluginExecutor (NRPE) để chạy các plugins
- Giám sát thông qua SNMP
- Dùng Nagios ServiceCheck Acceptor (NSCA) để chạy các plugins
c) Công cụ OpManager
Trang 40Khác với hai công cụ ở trên, OpManager là một phần mềm thương mại, được phát triển bởi hãng ManageEngine OpManager cung cấp rất nhiều tính năng giám sát rất mạnh như: tạo báo cáo định kỳ dạng PDF, giám sát nhiều thiết bị, dịch vụ khác nhau, tích hợp nhiều giao thức quản trị như SNMP, NetFlow, Jflow,… [13] OpManager là một trong số những phần mềm giám sát mạng thương mại hàng đầu hiện nay
2.2 Quản trị mạng với Zabbix
2.2.1 Phân tích lựa chọn công cụ Zabbix
Zabbix là một giải pháp giám sát thiết bị, ứng dụng mạng dành cho doanh nghiệp phát triển bởi bởi Alexei Vladishev [10] Ra đời từ năm 1998, đến nay nó đã có một cộng đồng sử dụng và phát triển rộng lớn Phần lõi của Zabbix được phát triển bằng ngôn ngữ C, giao diện web viết bằng PHP (phiên bản mới nhất sử dụng PHP 5.6 cho hiệu năng hoạt động cao hơn so với các phiên bản trước viết bằng PHP 5.3) Zabbix là một công cụ nguồn mở có cấu trúc client – server và một giao diện web trực quan Zabbix server định kỳ kết nối tới agent được cài đặt tại máy cần quản trị, thu thập thông tin (tải CPU, tiến trình, bộ nhớ trống….) và lưu chúng vào cơ sở dữ liệu Các cơ
sở dữ liệu có thể sử dụng với Zabbix là: MySQL, PostgreSQL, Oracle, IBM DB2 [14] Giao diện Web của Zabbix rất trực quan, giúp quản lý hệ thống đơn giản và dễ dàng Về mã nguồn, Zabbix bao gồm các thành phần độc lập: thành phần quản trị (server), tác tử (agent) và giao diện (frontend), trong đó phần quản trị và tác tử được viết bằng ngôn ngữ C, giao diện được viết bằng PHP và Javascript
Dưới đây là một số tính năng của Zabbix:
- Quản lý tập trung, dễ dàng sử dụng giao diện web
- Agent có thể cài đặt được trên hầu hết các hệ điều hành
- Có khả năng giám sát trực tiếp thông qua SNMP (v1, 2, 3) và thiết bị IPMI
- Khả năng dựng biểu đồ và các khả năng hiển thị khác
- Khả năng cảnh báo sự cố dưới nhiều dạng