Quy trình sử dụng của thệ thống dưới góc nhìn của người dùng bao gồm các công đoạn chính sau:
Hình 2.2 Sơ đồ quy trình thực hiện của hệ thống.
Quy trình thực hiện của hệ thống dưới góc nhìn kỹ thuật được đặc tả thông qua sơ đồ
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.1.3 Sơ đồ module quản lý thông tin của các máy tính và thiết bị mạng.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Kiến trúc hệ quản trị mạng tích hợp Web với SNMP được thực thi trong hệ thống quản trị mạng mã nguồn mở Nagios, Cacti. Trong mục tiếp theo sẽ mô tả chi tiết hơn kiến trúc này.
2.2 Hệ quản trị mạng mã nguồn mở Nagios
Hệ quản trị mạng Nagios ra đời 2002 đến nay Nagios đã liên tục phát triển và rất được quan tâm. Cộng đồng quan tâm và sử dụng Nagios cho đến nay theo thống kê của http://nagios.org là vào khoảng 250.000 người. Từ phiên bản 1.0 đầu tiên, đến nay Nagios đã phát triển nên phiên bản 3.x và vẫn liên tục cho ra những phiên bản mới với tính năng mạnh mẽ hơn. Đặc biệt Nagios có khả năng phân tán. Vì vậy nó có thể giám sát các mạng khổng lồ, đạt cỡ 100.000 node.
Phần mềm quản trị mạng Nagios trên nguyên lý kiến trúc của hệ theo dõi máy tính sử dụng các hệ điều hành khác nhau, ví dụ máy tính với hệ điều hành Window và máy tính sử dụng hệ điều hành Linux được trình bày ở đây.
2.2.1 Giám sát máy tính cài hệ điều hành Windows
Giám sát các dịch vụ hay các thuộc tính của một hệ thống Windows yêu cầu ta phải cài một Agent trên đó. Agent này giống như là một trung gian giữa các Plugin của Nagios được dùng để giám sát các dịch vụ và thuộc tính của Windows. Ở đây ta sử dụng phần mềm NSClient++ để giám sát máy Windows và sử dụng plugin check_nt để giao tiếp với NSClient++ trong đó check_nt được cài đặt trên máy chủ Nagios như ở phần trên Ngoài NSClient++ ta có thể sử dụng NC_Net có chức năng tương tự NSClient Agent này như một proxy giữa các plugin Nagios mà không được giám sát và các dịch vụ thực tế hoặc thuộc tính của máy tính Windows. Không cài đặt một tác nhân trên các máy tính Windows, Nagios sẽ không thể theo dõi các dịch vụ tư nhân hoặc các thuộc tính của máy tính Windows.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong ví dụ này, chúng ta thấy phải cài đặt các addon NSClient + + trên các máy tính Windows và sử dụng check_nt plugin để giao tiếp với các addon NSClient + +. Các plugin check_nt nên được cài đặt trên máy chủ Nagios.
Hình 2.5 Mô hình và cơ chế làm việc của NSClient++
2.2.2 Giám sát máy tính cài hệ điều hành Linux/Unix
NRPE (Nagios remote plugin executor) là một addon cho Nagios giúp thực thi các plugin khác để monitor/check các tài nguyên (CPU load, memory usage, swap usage, disk usage, logged in users, running processes, v.v..) và các dịch vụ (http, ftp, v.v..) trên các máy Linux/Unix ở xa.
Dịch vụ được cung cấp bởi các máy chủ Linux (HTTP, FTP, SSH, SMTP, vv) có thể được giám sát dễ dàng.
Các mục cấu hình mẫu dưới đây đối tượng tham chiếu được xác định trong tập tin cấu hình mẫu (commands.cfg, templates.cfg, vv) được cài đặt.
Hình 2.6 Mô hình và cơ chế làm việc của RNPE
NRPE addon bao gồm 2 thành phần:
- Plugin check_nrpe: nằm trên máy Nagios (là monitoring server)
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Khi máy Nagios cần kiểm tra các tài nguyên và dịch vụ trên máy Linux/Unix ở xa:
- Nagios sẽ thực thi plugin check_nrpe và cho biết tài nguyên và dịch vụ nào cần kiểm tra
- Plugin check_nrpe sẽ liên lạc với daemon NRPE trên máy ở xa. Kênh liên lạc có thể được bảo vệ bằng SSL
- Daemon NRPE sẽ chạy các plugin thích hợp (như check_disk, check_load, check_http, v.v..) để kiểm tra các tài nguyên và dịch vụ được yêu cầu
- NRPE daemon truyền kết quả cho check_nrpe, sau đó plugin này trả kết quả lại cho Nagios xử lý
Lưu ý là NRPE daemon yêu cầu các Nagios plugins cần được cài đặt trên các máy Linux/Unix ở xa. Có 2 cách checking khi sử dụng addon NRPE là:
Kiểm tra trực tiếp (Direct Checks)
Hình 2.7 Kiểm tra trực tiếp
Giúp monitor các “local” / “private” resource trên remote Linux/Unix host như CPU load, memory usage, swap usage, disk usage, logged in users, running processes, v.v..
Kiểm tra gián tiếp (Indirect Checks)
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nếu vì một lý do nào đó mà Nagios host không thể liên lạc được với các dịch vụ và tài nguyên của các của các máy chủ từ xa như: HTTP, FTP nhưng máy Linux/Unix (được cài NRPE daemon và các plugin) lại có thể thì có thể sử dụng cách này để NRPE daemon đóng vai trò làm proxy.
Từ những ví dụ trên, ta thấy việc triển khai hệ quản trị mạng Nagios khá phức tạp vì phải có phẩn mềm chạy trên máy tính (Agent: NSClient + + cho Windows hay NRPE daemon cho Linux/Unix).
2.3 Hệ thống quản trị mạng mã nguồn mở Cacti
tu
. [6]
2.3.1 Cấu trúc hệ thống Cacti
Hình 2.9 Cho thấy các khối cơ sở hạ tầng Cacti:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Người dùng (người quản trị mạng) làm việc với Cacti thông qua trình duyệt web (Browser). Với trình duyệt web, người quản trị có thể khai báo các loại thiết bị trong hệ thống mạng, thiết lập các thông số về tất cả các thiết bị cần giám sát, quản lý. Các dữ liệu quản trị sẽ được lưu trữ trong các bảng dữ liệu MySQL, kết quả các dữ liệu được minh họa hiển thị dưới dạng các sơ đồ.
Những thông tin mà Cacti thu thập được của người dùng thông qua các truy vấn được lưu trữ lại trong cơ sở dữ liệu MySQL để duy trì hoạt động cho những lần sau.
Từ yêu cầu của người dùng, Cacti sẽ xử lý các dữ liệu thông qua các truy vấn từ Poller. Poller liên tục lấy dữ liệu từ các thiết bị cần được giám sát như: Server, router, HDD, Ram….Các dữ liệu thu thập được sẽ được lưu trữ bằng cơ sở dữ liệu xoay vòng RRD. Cacti sẽ sử dụng những dữ liệu RRD để tổ hợp và biểu diễn dữ liệu dưới dạng đồ thị.
Các thành phần cài đặt chính để Cacti hoạt động là các gói phần mềm: RRDtool, MySQL, Webserver, PHP, Net-snmp.
RRDtool: là một cơ sở dữ liệu xoay vòng dùng để lưu lại dữ liệu thu thập được từ các truy vấn hỗ trợ cho việc xuất dữ liệu đồ họa.
MySQL: gói này được cài đặt giống như cơ sở dữ liệu riêng của Cacti để Cacti tùy ý sử dụng. Là cơ sở dữ liệu lưu lại dữ liệu về người dùng, mật khẩu.. vào kho MySQL.
Webserver: Cacti được xây dựng trên nền web nên bất kỳ web server hỗ trợ PHP cũng phải cài đặt để Cacti giao tiếp như Httpd của Apache hay của Microsoft được khuyên dùng vì tính năng ổn định và phổ biến.
PHP: Cacti được lập trình dựa trên ngôn ngữ PHP, do vậy muốn để Cacti hoạt động được trên hệ thống bắt buộc phải cài đặt gói PHP.
Net- snmp: gói phần mềm hỗ trợ việc sử dụng giao thức SNMP có thể được hoạt động trên IPv4, IPV6..
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Hình 2.10 Các thành phần của hệ quản trị Cacti
Cacti là hệ quản trị mạng mã nguồn mở dựa trên nền Web, cung cấp các tính năng phong phú như biểu đồ nhúng, mẫu thiết bị, tích hợp và phát triển trên các phần mềm cơ bản (mysql, php, rrdtool, net-snmp). RRDtool, và net-snmp) dễ cài đặt và dễ dàng sử dụng các menu trong Cacti. Ngoài ra Cacti hỗ trợ thêm plugin sử dụng như một công cụ để nâng cao hiệu suất tổng thể của hệ thống cũng như các ứng dụng đặc thù. Điều này là không thể hoặc rất khó khăn đối với các hệ quản trị mạng thương mại.
2.3.2 Hoạt động của Cacti
Cacti là một phần mềm mã nguồn mở hỗ trợ việc giám sát các lưu lượng mạng qua các switch, router và lưu lượng các thiết bị kết nối trong mạng: nhiệt độ CPU, HDD, RAM… Hoạt động Cacti có thể được chia thành 3 nhiệm vụ chính như sau:
Hình 2.11 Hoạt động của của hệ quản trị Cacti + Thu thập dữ liệu
Nhiệm vụ đầu tiên là để lấy dữ liệu. Cacti sẽ thực hiện bằng cách sử dụng bộ quét thiết bị. Tần số quét có thể được thực hiện từ lịch của hệ điều hành.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong hệ thống mạng hiện tại, làm việc với rất nhiều thiết bị các loại khác nhau, ví dụ như máy chủ, thiết bị mạng…Để lấy dữ liệu từ mục tiêu ở xa, Cacti sẽ chủ yếu sử dụng SNMP. Do đó, tất cả các thiết bị có khả năng sử dụng giao thức SNMP đều có thể được quản trị và theo dõi bởi phần mềm Cacti.
+ Lưu trữ dữ liệu
Sau khi thu thập được dữ liệu, Để có thể tạo ra những đồ thị về trạng thái hoạt động của các thiết bị cần giám sát Cacti sử dụng RRDTool (Round Robin Database Tool) để lưu trữ dữ liệu. RRDTool là một hệ thống lưu trữ dữ liệu và hiển thị dữ liệu theo chuỗi thời gian. Nó lưu trữ các dữ liệu một cách rất nhỏ gọn mà độ lớn của tệp sẽ không thay đổi theo thời gian, dựa trên dữ liệu của RRDTool, RDDTool hỗ trợ trong hệ thống đồ họa, tạo ra các sơ đồ thể hiện dữ liệu mà nó thu thập được.
+ Trình bày dữ liệu
Một trong những tính năng được đánh giá cao nhất của RRDTool là tích hợp chức năng đồ họa. Điều này càng hữu ích khi kết hợp với máy chủ web.
Như vậy, dữ liệu được thể hiện qua các thông số của hệ thống và khoảng thời gian dữ liệu được thu thập. Hình ảnh của các dữ liệu này thường được minh họa thể hiện theo những cách rất khác nhau trên cơ sở đó người quản trị có thể đánh giá được ngưỡng của thiết bị.
RRDTool là một công cụ mạnh đóng vai trò rất quan trọng trong hệ thống quản trị mạng Cacti.
Trong cấu hình mặc định Cacti chỉ hỗ trợ 2 menu tính năng chính là Console và Graph. Trong đó, phần Console cho phép điều chỉnh các thông số như chọn thiết bị cần giám sát lưu lượng và hiển thị đồ thị lưu lượng trong phần Graph. Một đặc điểm quan trọng mà Cacti là cho phép tích hợp nhiều thành phần khác vào nó. Cacti có khả năng tích hợp thêm các chức năng của người sử
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
dụng (Plugin). Plugin là một dạng phần mềm có thể thêm các tính năng vào một ứng dụng có sẵn. Ứng dụng Plugin là khả năng tùy biến, thay đổi một cách linh hoạt sử dụng các trình duyệt web để thêm các công cụ tìm kiếm, diệt virus. Các plugin thường gặp là :Adobe Flash Player, java plugin. Đây là một đặc điềm quan trọng cho việc thực hiện ý tưởng trong luận văn này là tạo nên một hệ thống tích hợp hỗ trợ trong việc giám sát và quản lý hệ thống mạng.
2.3.3 Lƣu trữ và xử lý dữ liệu trong hệ thống quản trị mạng Cacti
Nhu cầu xây dựng hệ thống quản trị mạng cho phép giám sát theo thời gian thực cũng như phân tích tốc độ mạng cao là cần thiết. Để tăng độ chính xác của các phép đo lường, quản trị mạng thường làm tăng tần số lấy mẫu. Hậu quả của xu hướng này là hệ thống giám sát sản xuất một số lượng dữ liệu lớn cần được lưu trữ và phân tích trong thời gian rất ngắn. Cơ sở dữ liệu quan hệ không thích hợp cho việc lưu trữ và xử lý dữ liệu đo lường phục vụ quản trị mạng vì các lý do sau:
- Tại mỗi khoảng thời gian đo lường, các bảng sẽ cập nhập dữ liệu mới và như vậy làm tăng số bản ghi. Hậu quả là bảng dữ liệu cũng như các không gian thực được lưu trên đĩa tăng cùng với số phép đo.
- Ngay sau khi chỉ số bảng trở nên đủ lớn sẽ cản trở việc lưu trữ xuống RAM và việc lấy dữ liệu sẽ trở nên chậm chạp đáng kể, đặc biệt đối với các ứng dụng có dữ liệu ở phần đầu cơ sở dữ liệu. Để giải quyết những vấn đề này với cơ sở dữ liệu quan hệ, cơ sở dữ liệu chuỗi thời gian đã được tạo ra. Cơ sở dữ liệu xoay vòng (Round-Robin, Database) RRD là một bổ sung tuyệt vời để cơ sở dữ liệu quan hệ lưu trữ chuỗi thời gian. Nó thực hiện một bộ đệm quay vòng cố định dựa trên tệp tin, nơi dữ liệu được lưu trữ theo dấu thời gian của dữ liệu. Khi cơ sở dữ liệu được tạo ra, phải xác định thời gian tồn tại của dữ liệu cũng như các tần số (tên bước của RRD) dữ liệu được lưu trữ. Ví dụ, cứ 5 phút thực hiện một phép đo và lưu giá trị đo lâu nhất là 30 ngày. Hình 2.12 mô tả nguyên lý của một cơ sở dữ liệu RRD. Vì tất cả các thông tin được quy định tại thời điểm tạo cơ sở dữ liệu, các file RRD không phát triển theo thời gian, kích thước của chúng là tĩnh và bằng bộ đệm quay vòng của mỗi cơ sở dữ liệu RRD. Có thể lưu trữ nhiều chuỗi thời gian, không nhất thiết tất cả chia sẻ cùng thông số thời gian
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
và tần số. Thường cơ sở dữ liệu RRD có kích thước nhỏ (64 KB hoặc ít hơn) và được lưu trữ như các tập tin trên đĩa.
Các tập tin cơ sở dữ liệu có thể được thao tác bằng cách sử dụng công cụ dòng lệnh có tên rrdtool, (ví dụ như thông qua ngôn ngữ truy vấn) điển hình của cơ sở dữ liệu quan hệ. Từ các dữ liệu thu thập được trong RRD, người quản trị có thể thiết đặt để tính toán các giá trị AVERAGE, MIN, MAX, and LAST trong những khoảng thời gian nhất định và lưu vào cơ sở dữ liệu lưu trữ (Round Robin Archives) RRA.
Hình 2.12 Nguyên lý của cơ sở dữ liệu RRD (RRA)
Trong một hệ thống, có thể có nhiều cơ sở dữ liệu RRA, người quản trị có thể thiết đặt để tổ hợp giá trị AVERAGE, MIN, MAX, and LAST của các thông số trên mạng với các khoảng thời gian và số khoảng cho từng cơ sở dữ liệu lưu trữ RRA.
Cả hai rrdtool và thư viện librrdtool đã được thiết kế như là công cụ để có thể truy cập từ của sổ dòng lệnh do đó mọi thứ được quản lý tập trung.
Trong hệ quản trị mạng mã nguồn mở Cacti, ngoài việc sử dụng cơ sở dữ liệu RRD để lưu trữ dữ liệu thu thập và tổ hợp theo chuỗi thời gian, các nhà công nghệ còn phát triển cơ sở dữ liệu RRD để biểu diễn dữ liệu dưới dạng đồ thị. Hình 2.13 minh họa nguyên lý hiển thị kết quả các thông số mạng từ RRD.[6]
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ Hình 2.13 Biểu diễn đồ thị trong RRD.
Hệ thống giám sát mạng quy mô lớn yêu cầu lưu trữ và tổ hợp dữ liệu đo lường hiệu quả cơ sở dữ liệu quan hệ và cơ sở dữ liệu xoay vòng RRD. Có những hạn chế khi xử lý một lượng lớn số chuỗi thời gian. Thời gian truy cập dữ liệu làm tăng đáng kể khi tập số dữ liệu, số phép đo lường lớn. Chính vì vậy hệ thống quản trị và theo dõi mạng buộc phải giảm số các thông số đo lường số liệu và tần suất lấy thông số để thời gian truy cập dữ liệu giới hạn trong phạm vi chấp nhận được. Có thể khai thác giải pháp nén cơ sở dữ liệu chuỗi thời gian và cải tiến RRD để có thể lưu trữ và tổ hợp dữ liệu trong thời gian thực với mạng