.17 Sơ đồ thuật toán controller xử lý thao tác quản lý nhóm

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu hệ thống quản lý mạng HP OPENVIEW và xây dựng ứng dụng quản trị hệ thống mạng (Trang 51)

Chi tiết Nhóm + Bắt đầu Tiếp nhận request Phân tích URL

Yêu cầu quản lý nhóm?

GET ? POST

Trả về trang hiển thị giao diện quản lý nhóm

Kết thúc Kết nối đến CSDL

Query danh sách nhóm

Chuyển đổi resultset sang json structure

Phân tích lệnh (add, update, delete) Kết nối đến CSDL

Thực hiện câu truy vấn tương ứng

Trả đáp ứng Thành công hoặc thất bại cho giao diện người dùng

Kiểm tra bảo mật biến đầu vào

Kiểm tra bảo mật biến đầu vào

Liệt kê danh sách hay chi tiết

nhóm?

Query chi tiết nhóm

Query danh sách nhóm cha

-

Khi có yêu cầu truy vấn danh sách nhóm (truy vấn GET), controller sẽ làm 2 nhiệm vụ  Trả về danh sách nhóm thiết bị/máy trạm

 Trả về cấu trúc phân lớp nhóm cha..

2.1.11.2. Quản lý máy trạm Chi tiết Nhóm + Bắt đầu Tiếp nhận request Phân tích URL

Yêu cầu quản lý máy trạm?

GET hay POST

Trả về trang hiển thị giao diện quản lý nhóm

Kết thúc Kết nối đến CSDL

Query danh sách các máy trạm

Chuyển đổi resultset sang json structure

Phân tích lệnh (add, update, delete)

Kết nối đến CSDL

Thực hiện câu truy vấn tương ứng

Trả đáp ứng Thành công hoặc thất bại cho giao diện người dùng

Kiểm tra bảo mật biến đầu vào

Kiểm tra bảo mật biến đầu vào

Liệt kê danh sách hay chi tiết máy

trạm?

Query thông tin máy trạm Query danh sách nhóm cha - GET POST Query danh sách các thiết bị mạng

2.1.12. Module cấu hình máy trạm từ xa

2.1.12.1. Cấu hình máy trạm thông qua websocket

Sau khi máy trạm kết nối với máy chủ bằng websocket, quản trị có thể thực hiện việc điểu khiển cũng như cấu hình máy trạm đó từ ngay trên hệ thống.

Cấu trúc gói tin máy chủ gửi cho máy trạm

message CommandRequest {

required string sessionid=1; required string param=2; optional string extra=3; }

Cấu trúc gói tin nhận từ máy trạm trả lời

message CommandResponse { required string sessionid=1; required string result=2; optional string extra=3; }

Tham số sessionid để xác định xem thông tin máy chủ gửi cho máy trạm và thông tin máy trạm gửi lại cho máy chủ có cùng một lệnh không. Hình 2.19 là sơ đồ thực hiện trên máy chủ giữa lớp View và lớp Controller

Hình 2.19 Sơ đồ thực hiện việc gửi và nhận thông tin cấu hình máy trạm từ xa

2.1.12.2.Cấu hình thiết bị thông qua telnetlib

Tương tự như phần cấu hình cho máy trạm, module cấu hình cho thiết bị cũng bao gồm 2 lớp View và Controller. Điều khác biệt duy nhất là tại lớp Controller khi mà nó sử dụng thư viện python telnetlib. Thư viện này hỗ trợ việc sử dụng telnet để kết nối đến thiết bị mạng.

+

+ Bắt đầu

Khởi tạo kết nối websocket tới máy chủ

Kết thúc

Đợi phản hồi từ máy chủ

Gửi cho máy chủ Hiển thị cho quản trị

Bắt đầu

Chờ dữ liệu từ websocket connection

Tạo phiên kết nối với lớp View - Có yêu cầu từ lớp View - - + + Đợi lệnh gửi từ lớp View

Kết thúc Có lệnh? Có kết quả trả về? Chờ phản hồi + - Máy trạm thoát khỏi hệ thống? Có dữ liệu phản hồi? Quản trị nhập lệnh? Quản trị thoát?

Phân tích, đóng gói và gửi đến máy trạm Hết thời gian chờ Gửi ra lớp view - + - + - + -

Hình 2.20 Sơ đồ thực hiện việc gửi và nhận thông tin cấu hình thiết bị từ xa

- +

+ Bắt đầu

Khởi tạo kết nối websocket tới máy chủ

Kết thúc

Đợi phản hồi từ máy chủ

Gửi cho máy chủ Hiển thị cho quản trị

Bắt đầu

Chờ dữ liệu từ websocket connection

Tạo phiên kết nối với lớp View - Có yêu cầu từ lớp View - - + + Đợi lệnh gửi từ lớp View

Kết thúc Có lệnh? Có kết quả trả về? Chờ phản hồi + - Máy trạm thoát khỏi hệ thống? Có dữ liệu phản hồi? Quản trị nhập lệnh? Quản trị thoát?

Sử dụng telnetlib gửi lệnh đến thiết bị

Hết thời gian chờ Gửi thông tin ra lớp

view

Khởi tạo kết nối telnet đến thiết bị

Kết nối đến thiết bị - + + + + - - -

2.1.13. Module cấu hình máy chủ, thiết lập sơ đồ mạng để giám sát

2.1.13.1. Module cấu hình máy chủ

Hình 2.21 Sơ đồ lưu và hiển thị thông tin cấu hình hệ thống

2.1.13.2. Module thiết lập sơ đồ mạng

* Lớp view networkmap

Do hệ thống sử dụng jquery là javascript framework nên chúng tôi lựa chọn ra thư viện javascript InfoVis Toolkit, một thư viện hỗ trợ đồ thị mã nguồn mở dựa trên jquery và đặc biệt nó có thể tùy biến tốt trong việc chuyển đổi từ dạng đồ thị qua dạng sơ đồ các nốt mạng.

Lớp view sẽ tạo 1 websocket connection đến websocket server. Và nhiệm vụ chính của nó chỉ là đợi dữ liệu truyền đến từ websocket server này.

+

-

GET POST

Bắt đầu

Tiếp nhận request

Yêu cầu cấu hình hệ thống?

GET hay POST

Trả về trang hiển thị giao diện cấu hình hệ thống

Kết thúc Kết nối đến CSDL

Query danh sách các tham số

Kết nối đến CSDL

Thực hiện câu truy vấn

Trả đáp ứng Thành công hoặc thất bại cho quản trị

Kiểm tra bảo mật biến đầu vào Kiểm tra bảo mật biến đầu vào

Hình 2.22 Sơ đồ thực hiện tiếp nhận và xử lý trên sơ đồ mạng + + + - - Bắt đầu

Khởi tạo sơ đồ mạng

Tiếp nhận yêu cầu

khởi tạo sơ đồ mạng?

Yêu cầu add?

Kết thúc Phân tích dữ liệu

nhận được Phân tích dữ liệu

nhận được

Xóa node được yêu cầu

Phân tích dữ liệu nhận được

Phân tích danh sách các node mạng

Nạp danh sách vào sơ đồ

Tạo node mới liên kết với node cha Cập nhật thông tin

node, thay đổi trạng thái node

+

- +

Kết nối đến websocket server

Yêu cầu update? +

Yêu cầu delete? -

Thoát? Đóng kết nối

* Lớp controller networkmap

Hình 2.23 Sơ đồ thực hiện controller networkmap

2.1.14. Module cảnh báo ngƣời quản trị.

Hệ thống giám sát mạng có 4 khối để hiển thị cảnh báo đến quản trị viên:  Khối Lịch sử cảnh báo,

 khối Tình trạng hệ thống  khối Sơ đồ mạng vật lý  khối Thông báo

- + - + + + - Bắt đầu

Chờ sự kiện từ browser và controller khác

Tạo danh sách thiết bị/máy trạm theo dạng node mạng

Có sự kiện cần gửi cho browser? Có yêu cầu ngắt kết nối? Chuyển về dạng json Kết thúc Có kết nối websocket?

Đăng ký kết nối vào danh sách các kết nối

Xóa kết nối khỏi danh sách các kết nối

Máy chủ tắt? Gửi cho browser

Các khối này đều được kết nối đến các controller tương ứng thông qua 4 kết nối websocket. Khi có một sự kiện diễn ra mà máy chủ thu nhận được, nó sẽ được máy chủ đẩy xuống browser mà quản trị viên đang theo dõi hệ thống.

Quy trình làm việc của các khối này sẽ như sau

Hình 2.24 Quy trình tiếp nhận và hiển thị trên trình duyệt

2.1.15. Module kiểm tra hệ thống phần mềm

Với số lượng lớn các module hoạt động gần như độc lập với nhau, để tổ chức ra được một module kiểm tra hệ thống chung xem hệ thống có hoạt động ổn định không là vấn đề không đơn giản. Chúng tôi thiết kế một module mà module này sẽ được gọi ra mỗi khi một module nào đó gặp trục trặc.Nó sẽ lưu thông tin về lỗi đó vào CSDL và cảnh báo quản trị biết.Việc xác định lỗi dựa vào cơ chế bắt lỗi của python.

+ + - - Bắt đầu Quản trị đăng nhập

Khối hiển thị được nạp

Chờ sự kiện từ máy chủ gửi về Kết nối đến máy chủ websocket? Có sự kiện của máy chủ gửi về?

Hiển thị sự kiện ra giao diện web

Try

//Các câu lệnh thực hiện except Exception,e:

checksystem(e)

Trong đó hàm checksystem sẽ lấy thông báo, lưu vào CSDL và hiển thị ra cho quản trị được biết lỗi nào đã xảy ra đối với các module trong hệ thống.

Hình 2.25 Sơ đồ lưu và hiển thị thông tin cấu hình hệ thống

2.1.16. Module quản lý các hành động cảnh báo

Module quản lý các hành động cảnh báo sẽ được hệ thống đăng ký như là một websocket server. Ở đó nó sẽ tiếp nhận các thông tin gửi đến từ trình duyệt (các module cảnh báo quản trị) thông qua kết nối websocket. Khi có kết nối đến, nó sẽ đưa kết nối đấy vào một danh sách các kết nối đã có. Điều đó có nghĩa là hai hay nhiều quản trị cùng đăng nhập vào hệ thống đều có thể nhận được các thông báo mà controller này gửi xuống trình duyệt (browser). Khi một sự kiện trên máy chủ xảy ra (có một thiết bị báo lỗi chẳng hạn), hệ thống sẽ gọi controller này ra và yêu cầu gửi dữ liệu xuống trình duyệt của các quản trị. Đây là một vòng lặp vô hạn và nó chỉ dừng khi hệ thống tắt hoặc khởi động lại. Khi đó các kết nối sẽ lại phải đăng ký lại để có thể nhận thông tin. Module này được chia thành 2 khối chức năng:

 Khối cung cấp thông tin cho khối tình trạng hệ thống và khối lịch sử cảnh báo (mục 2.1.14 – Module cảnh báo người quản trị).

 Khối cung cấp thông tin cho khối sơ đồ mạng vật lý

Điểm khác biệt giữa các khối chức năng đó chính là việc mỗi một khối sẽ cung cấp

Bắt đầu

Tiếp nhận tham số lỗi

Kết thúc Phân tích tham số lỗi

Hiển thị cho quản trị Ghi vào CSDL

2.1.17. Module quản lý báo cáo thống kê

Việc báo cáo thống kê này được thực hiện theo 3 tiêu chí chính:  Thống kê theo thiết bị

 Thống kê theo loại hình cảnh báo  Thống kê theo tập luật

Thống kê theo thiết bị, sẽ gồm 4 loại biểu đồ:

 Thống kê số lượng lỗi gây ra bởi các tập luật khác nhau theo khoảng thời gian thống kê

 Thống kê số lượng cảnh báo gây ra bởi các tập luật khác nhau theo khoảng thời gian thống kê

 Thống kê tổng số lỗi và cảnh báo gây ra bởi các tập luật khác nhau lên thiết bị đó trong khoảng thời gian thống kê

 Thông kê chi tiết tổng số lỗi và cảnh báo theo tập luật chi tiết theo từng giờ thống kê.

Với loại thống kê theo tập luật:

 Thống kê tỉ lệ giữa các thiết bị có thông báo lỗi liên quan đến tập luật đó  Thống kê tỉ lệ giữa các thiết bị có cảnh báo liên quan đến tập luật đó  Thống kê tỉ lệ giữa các thiết bị có liên quan đến tập luật đó

 Tổng số thiết bị bị ảnh hưởng theo thời gian chi tiết đến từng giờ Với loại thống kê theo loại hình cảnh báo:

 Thống kê tỉ lệ giữa các thiết bị  Thống kê tỉ lệ giữa các tập luật

2.1.18. Module sao lƣu cơ sở dữ liệu hệ thống.

Module sao lưu cơ sở dữ liệu hệ thống được xây dựng nhằm liên tục lưu trữ toàn bộ cấu hình, cũng như cảnh báo trên hệ thống, phục vụ công tác khôi phục dữ liệu khi có sự cố xảy ra. Quá trình xây dựng module này được tiến hành thông qua việc ứng dụng chương trình:

 mysqldump: chương trình cho phép tạo các file sao lưu cơ sở dữ liệu dưới dạng SQL.

Như vậy, bản chất của quá trình xây module tự động sao lưu dữ liệu hệ thống là quá trình kết hợp hai chương trình trên một cách nhịp nhàng thông qua ngôn ngữ lập trình shell script. Nội dung thực thi trong shell script bao gồm 2 công đoạn.

 Sao lưu cơ sở dữ liệu hệ thống.

 Xóa dữ liệu đã lỗi thời (một tháng sau khi được tạo).

2.2. Xây dựng phần mềm máy trạm

2.2.1. Module thu thập log trên nền hệ điều hành Windows.

2.2.1.1. Sử dụng WMI trong thu thập thông tin

Thực tế cho thấy, công nghệ WMI được tích hợp sẵn trên hệ điều hành Windows (từ phiên bản 2000 trở đi) đáp ứng đầy đủ các yêu cầu được đề ra. Để thu thập các thông tin mong muốn trên hệ điều hành Windows, cũng như rút ngắn thời gian trong việc ứng dụng công nghệ WMI, module chương trình được xây dựng dưới dạng truy vấn trung gian qua phần mềm Wmic.

Với sự hỗ trợ của công nghệ WMI mà trực tiếp là thông qua chương trình wmic, module thu thập thông tin hệ thống trên máy trạm được xây dựng dựa trên hình 2.26:

Hình 2.26 Sơ đồ hoạt động của module thu thập thông tin trên máy trạm.

Sự kiện ứng dụng (Application Events): Các sự kiện lưu trữ trong mục này được chia làm 3 loại là: lỗi, cảnh báo và thông tin dựa trên mức độ nguy hiểm của sự kiện. Sự kiện ở dạng lỗi là những sự cố tác động đáng kể trên hệ thống như: mất dữ liệu… Sự kiện ở dạng cảnh báo không nguy hiểm như dạng lỗi nhưng có thể dẫn đến lỗi hệ thống trong tương lai. Sự kiện dạng thông tin cung cấp các thời điểm hoạt động thành công chương trình, dịch vụ hay driver.

Sự kiện liên quan tới bảo mật (Security-related Events): Sự kiện dạng này chia làm 2 loại là thành công hoặc thất bại, mô tả các thao tác vận hành hệ điều hành của người dùng. Ví dụ: thao tác đăng nhập hệ thống.

Sự kiện cài đặt ứng dụng (Setup events): Sự kiện này dành riêng cho các máy tính được cấu hình để trở thành một Domain Controller.

Sự kiện hệ thống (System events): Các sự kiện hệ thống được tổ chức tương tự với các sự kiện ứng dụng, điểm khác biệt nằm ở đối tượng phản ánh của sự kiện. Sự kiện dạng này phản ánh các sự cố đến từ các dịch vụ, driver thay vì các chương trình ứng dụng.

Sự kiện chuyển tiếp (Forwarded events): là các sự kiện được gửi tới từ những máy tính khác.

Với việc sử dụng WMI, Windows hỗ trợ lớp NTLogEvent để truy cấp đến Event log của hệ thống. Với việc ứng dụng wmic, việc truy xuất thông tin nhật ký hệ thống trên nền hệ điều hành Windows từ server được thực hiện thông qua hình 2.27:

Quy trình thực hiện của sensor thu thập log hệ thống sẽ được mô tả qua hình 2.28:

Hình 2.28 Sơ đồ thực hiện quy trình lấy log hệ thống rồi gửi trả về máy chủ

2.2.2. Module thu thập thông tin CPU trên máy trạm

Với mô hình client đã nói, sensor đảm nhận việc thu thập thông tin CPU thực hiện thông qua việc sử dụng WMI. Chúng tôi đã đề xuất 2 phương án để lấy thông tin này dựa trên WMI. Một là sử dụng WMI với lớp Win32_Processor.Hai là sử dụng

+ + - + - + Bắt đầu Tiếp nhận request

Yêu cầu log về application

Yêu cầu log về system

Trả kết quả

Kết thúc

Truy vấn WMIC đến NTEvent

Trích số bản ghi theo yêu cầu Lấy log system

Lấy log khác Lấy log Security Lấy log Application

Yêu cầu log về security

Yêu cầu log khác -

Sơ đồ thuật toán thực hiện việc lấy thông tin CPU của sensor

Hình 2.29 Sơ đồ thực hiện CPU Sensor

Trên *Nix, chúng tôi sử dụng câu lệnh iostat. Nó sẽ trả về giá trị %CPU đang sử dụng trong hệ thống.

2.2.3. Module thu thập thông tin thiết bị lƣu trữ

Vẫn sử dụng WMI làm công cụ thu thập thông tin trên máy trạm, để thu thập thông tin về thiết bị lưu trữ, chúng tôi sử dụng lớp Win32_LogicalDisk. Việc thực hiện cũng tương tự như đối với việc lấy thông tin CPU.

Một số tham số cần chú ý: Name; Tên thiết bị lấy thông tin, FreeSpace: Giá trị ổ lưu trữ còn trống trên ổ cứng đó.

Bắt đầu

Tiếp nhận request

Phân tích tham số

Truy vấn đến tham số cần lấy

Trả về giá trị Phân tích giá trị cần lấy Truy vấn WMI đến CPU

Hình 2.30 Sơ đồ thực hiện việc lấy thông tin thiết bị lưu trữ

Đối với *nix, không có một hệ thống chung để lấy thông tin về ổ cứng. Chương trình sử dụng câu lệnh :du –sh. Kết quả trả về sẽ là dung lượng ổ cứng đã được sử dụng.

2.2.4. Module thu thập thông tin hệ thống

Thông tin hệ thống là các thông tin về hệ điều hành.Điều này sẽ thực hiện được

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu hệ thống quản lý mạng HP OPENVIEW và xây dựng ứng dụng quản trị hệ thống mạng (Trang 51)

Tải bản đầy đủ (PDF)

(83 trang)