Hình 3.1: Mô hình các lớp hệ thống Virtual Lab
Mô hình các lớp hệ thống trên cho ta thấy các thành phần của hệ thống. Việc phân ra các lớp này giúp người phát triển có thể tách biệt rõ ràng vai trò và chức năng của từng thành phần.
40
Hình 3.2: Mô hình tương tác tronghệ thống Virtual Lab
Mỗi thành phần đều có những nhiệm vụ riêng nhưng nó cũng cần phải tương tác với các thành phần khác. Dựa trên sơ đồ chung này ta có thể thấy sự giao tiếp giữa các thành phần trong trong hệ thống.
Hình 3.3: Mô hình thành phần giám sát
Trên đây là sơ đồ của hệ thống giám sát chúng tôi. Hệ thống giám sát chính sẽ tương tác với hệ thống Virtual Lab bằng các phương thức gọi hàm từ xa. Bất kì yêu cầu gì từ
41
phía Virtual Lab như yêu cầu giám sát máy vật lý hay máy ảo, lấy thông tin giám sát… đều được chuyển thành các lời gọi hàm truyền tới hệ thống chính. Ngoài ra hệ thống giám sát còn phải tương tác với công cụ giám sát Zenoss. Nó sẽ có những yêu cầu như thêm, xóa thiết bị, lấy dữ liệu từ Zenoss thông qua các Json/Rest API của Zenoss. Những dữ liệu lấy được này sẽ được lưu trữ xuống các cơ sở dữ liệu của chúng tôi.
Đối với Zenoss thì nhiệm vụ nó sẽ giám sát các thiết bị trong hệ thống. Với mỗi thiết bị cần phải cài đặt một số plugin lên nó để giúp Zenoss thu thập được các thông tin. Những plugin này sẽ giúp chúng ta có thể lấy được các thông tin cấu hình thiết bị và thông tin tài nguyên thiết bị. Nhờ những plugin này mà Zenoss có thể dùng phương thức SSH/SNMP để có thể giao tiếp và tương tác với các thiết bị.
Nhiêm vụ thực hiện các chức năng chính trong Zenoss sẽ được giao cho ba thành phần là Device Class, Modeler Plugins, Monitoring Template như đã nói ở phần Zenoss. Cụ thể Device Class có nhiệm vụ tạo ra thành phần Component mới đối với những thiết bị nằm trong lớp thiết bị này. Modeler Plugins sẽ lấy các thông tin về cấu hình gồm hệ điều hành, hệ thống file, các máy ảo trên máy vật l{… Còn Monitoring Template sẽ có nhiệm vụ lấy thông tin về tài nguyên thiết bị gồm CPU, RAM, băng thông, kích thước vùng nhớ, số lượng người dùng login, kiểm tra một ứng dụng đang chạy hay không…