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

Một phần của tài liệu 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 64)

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 WMIC với lớp là CPU.

+ + - + - + 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 với lớp Win32_OperatingSystem.

Với WMIC sử dụng với tham số WMIC OS get XXXX Một số thông tin quan trọng là Version, Status,…

Như vậy để lấy được những thông tin này, cách thực hiện cũng tương tự như các module khác.

2.2.5.Module thu thập thông tin chƣơng trình ứng dụng và dịch vụ trên máy trạm

Thu thập thông tin các chương trình ứng dụng và dịch vụ trên máy sử dụng lớp Sử dụng WMIC với tham số WMIC Process get XXXX. Khi đó kết quả trả về sẽ liên quan đến thông tin cần lấy của toàn bộ các ứng dụng đang hoạt động.

Ngoài ra để thu thập thông tin về các dịch vụ đang chạy trên hệ thống, sensor sẽ sử dụng lớp service của WMI. Ở đây tôi sử dụng ALIAS Service để lấy thông tin về các (adsbygoogle = window.adsbygoogle || []).push({});

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 LogicalDisk

dịch vụ.Sơ đồ thuật toán thực hiện việc lấy thông tin về dịch vụ cũng như tiến trình tương tự như các module khác.

2.2.6. Module thống kê dữ liệu vào ra mạng

Để lấy thông tin về dữ liệu vào ra mạng, WMI hỗ trợ lấy thông tin thông qua lớp Win32_PerfFormattedData_Tcpip_NetworkInterface

Có thể sử dụng wmic với cú pháp :

Wmic path Win32_PerfFormattedData_Tcpip_NetworkInterface get OutputQueueLength, PacketsReceivedErrors, Name, currentbandwidth để lấy các thông số liên quan đến dữ liệu vào ra máy trạm. Trong đó Name: Tên mạng, currentbandwidth: băng thông hiện tại của máy, PacketsReceivedErrors: Số gói tin nhận bị lỗi.

Trong *Nix, với việc sử dụng câu lệnh: watch -n1 "ifconfig eth0 | grep Mb"

Hệ thống sẽ trả về giá trị băng thông hiện tại của máy trạm sử dụng *Nix làm HĐH. Từ đó sensor sẽ gửi giá trị này về cho máy chủ

2.2.7. Module thu thập thông tin về các thiết bị giao tiếp mạng

Trong trường hợp máy trạm sử dụng nhiều card mạng khác nhau, việc thu thập thông tin của chúng sẽ phức tạp hơn. Trong Windows, HĐH này hỗ trợ việc thu thập thông tin các thiết bị giao tiếp mạng bằng WMI nhờ lớp Win32_NetworkAdapter hoặc với WMIC thì truy xuất đến alias NIC.

Với việc sử dụng lớp này, thông tin thu được sẽ bao gồm danh sách tất cả các thiết bị mạng hiện tại trên máy trạm đó, dù nó có kết nối ra mạng ngoài hay không.

2.2.8. Module thu thập thông tin về các dịch vụ mạng chạy trên máy trạm

Sử dụng thư viện Win32_Service hoặc Win32_Process để lấy thông tin về các dịch vụ không đảm bảo đó là các dịch vụ mạng đang chạy trên máy trạm. Chính vì thế, module này không sử dụng WMI làm cách thức tiếp cận các dịch vụ mạng như các module trên. Thay vào đó, sử dụng command có sẵn của hệ thống có thể đảm bảo được vấn đề theo dõi thông tin các dịch vụ đang kết nối với mạng ngoài. Trong HĐH Windows có hỗ trợ câu lệnh netstat (network statistics). Đây là một công cụ hữu ích được sử dụng bởi quản trị hệ thống để hiện thông tin các kết nối mạng (bao gồm cả kết nối vào và kết nối ra), các bảng định tuyến và cả số lượng các giao diện mạng (trình điều khiển giao diện mạng hoặc giao diện mạng giả lập từ phần mềm) và thống kê các

giao thức Tôi sử dụng lệnh này một phần cũng bởi vị nó sẵn sàng trên tất cả các HĐH khác nhau (Windows, *Nix,..). Quản trị hay dùng công cụ này để tìm kiếm lỗi trong mạng và xác định số lượng lưu lượng trong mạng như là công cụ đo hiệu suất mạng. Do mục đích của module này là lấy thông tin dịch vụ mạng nên chúng tôi sử dụng cú pháp netstat –a để lấy toàn bộ thông tin về các dịch vụ đang kết nối ra ngoài (bao gồm cả cổng, địa chỉ kết nối,..)

Hình 2.31 Sơ đồ thuật toán thực hiện lấy thông tin dịch vụ mạng

2.2.9. Module cho phép thực thi lệnh từ xa trên máy trạm

Module thực thi lệnh từ xa được xây dựng với yêu cầu thực tiễn của công tác quản trị là cấu hình hệ thống tập trung.Việc xây dựng module thực thi lệnh từ xa sẽ cho phép người quản trị có thể nhanh chóng cấu hình lại máy trạm cũng như xử lý, xác định sự cố từ xa thông qua giao diện quản trị.Lợi ích chính mà module thực thi lệnh từ xa là cho phép người quản trị có thể tại vị trí của mình và vẫn khắc phục cũng như điều hành được những máy trạm đặt ở xa về mặt vật lý.Tuy nhiên, để quá trình truy cập từ xa đạt hiệu quả mong muốn mà vẫn đảm bảo yếu tố bảo mật đối với máy trạm. Module được xây dựng dựa trên sự kết hợp của 1 lớp kiểm tra: danh sách trắng (White list).Đó là tập hợp các tập lệnh hợp lệ được phép thực thi trên máy trạm.

Bắt đầu

Tiếp nhận request

Phân tích tham số

Trả về giá trị Phân tích giá trị cần lấy Thực hiện câu lệnh netstat -a

Hình 2.25 Sơ đồ hoạt động module thực thi lệnh từ xa.

2.2.10. Module gửi thông tin cho máy chủ

2.2.10.1. Quản lý kết nối

Để kết nối, chúng tôi sử dụng thư viện mã nguồn mở websocketpp, một thư viện hỗ trợ websocket sử dụng C++. Agent tạo ra một thread để quản lý đường truyền. Thread này sẽ có nhiệm vụ theo dõi có sự kiện nào của websocket xẩy ra hay không. Ví dụ, khi kết nối đến máy chủ bị lỗi, sự kiện on_fail hoặc on_close sẽ được gọi từ hệ thống.Nhận biết được sự kiện này, agent sẽ thực hiện thiết lập lại kết nối mà không làm ảnh hưởng đến toàn bộ hoạt động của chương trình.

Hình 2.26 Sơ đồ thuật toán thực hiện việc quản lý kết nối (adsbygoogle = window.adsbygoogle || []).push({});

2.2.10.2. Mã hóa và đóng gói dữ liệu

-

-

-

+

Lấy thông số cấu hình Bắt đầu

Kết nối máy chủ Tồn tại?

Kết nối?

Đợi sự kiện từ máy chủ

Mất kết nối? Có yêu cầu từ máy chủ? Gửi thông tin đến

sensor tương ứng

Có yêu cầu gửi tới máy chủ?

Agent tắt?

Kết thúc Gửi kết quả đến máy

chủ + + + + + - - -

Để tương thích với máy chủ, thông tin trước khi gửi đi được đóng gói bằng protobuf.Định dạng gói tin được thống nhất chung giữa máy chủ và máy trạm, sau đó nó sẽ được biên dịch dưới dạng thư viện C++.

Dữ liệu đóng gói sẽ được mã hóa sử dụng AES (CFB Mode) với khóa được sinh ra tự động từ máy chủ khi máy trạm đăng ký hoạt động với hệ thống.Chúng tôi sử dụng thư viện mã nguồn mở Crypto++ để thực hiện việc mã hóa này. Thư viện này được cộng đồng phát triển hỗ trợ hầu hết các thuật toán mã hóa hiện đại.Ngoài ra thư viện này còn được sử dụng trong chương trình như là cách thức hữu hiệu để bảo vệ thông tin về cấu hình được lưu trên máy trạm, trong đó thông tin về clientID do máy chủ sinh ra duy nhất cho máy trạm được là thông tin quan trọng nhất.

2.2.11. Module tự động cập nhật phiên bản mới.

Module tự động cập nhật phiên bản mới được xây dựng dựa trên công nghệ chia sẻ tệp tin trên giao thức FTP.Quá trình tự động cập nhật phiên bản mới về bản chất là quá trình tải tệp tin và cài đặt vào đúng vị trí đã định. Để thực hiện được điều này, chương trình dựa vào 2 tệp tin hỗ trợ sau:

conf.ini: chứa thông tin phiên bản đang chạy tại máy trạm, ip của máy chủ và

tên tệp tin chứa danh sách file cần nâng cấp.

winlist.ini: Tệp tin chứa danh sách các file cần nâng cấp đối với hệ điều hành Windows.

linuxlist.ini: Tệp tin chứa danh sách các file cần nâng cấp đối với hệ điều hành Linux.

Quy trình thực hiện của module tự động cập nhận phiên bản mới được mô tả theo hình 2.32:

Hình 2.32 Sơ đồ thực thi module tự động cập nhật phiên bản mới.

Nội dung chương này đã mô tả chi tiết thiết kế cơ sở dữ liệu, thuật toán, giải thuật các module của chương trình. Hiện tại chương trình này được triển khai tại phòng Thông tin Quân Sự tại cơ quan Viện khoa học và công nghệ Quân Sự - Bộ Quốc Phòng – 17 Hoàng Sâm. Phần sau tôi xin trình bày kết quả đạt được khi triển khai chương trình này.

CHƢƠNG 3. KẾT QUẢ VÀ HƢỚNG PHÁT TRIỂN

Chương trình “Giám sát mạng” là một giải pháp công nghệ thông tin, được xây dựng nhằm hỗ trợ người quản trị trong công tác quản lý thiết bị trong mạng nội bộ một cách tập trung, chuyên nghiệp. Đồng thời với đó là khả năng cảnh báo sự cố nhằm hỗ trợ người quản trị xử lý sự cố, khoanh vùng thiết bị và tìm nguyên nhân khắc phục. Chương trình “Giám sát mạng” đã tận dụng tốt công nghệ sẵn có trên nhiều nền tảng hệ điều hành nhằm tăng tính tương thích của hệ thống. Khả năng mô hình hóa của chương trình tạo ra giao diện trực quan đối với người quản trị trong công tác quản lý.

Các kết quả đạt được khi triển khai phần mềm tại phòng Thông tin Quân Sự tại cơ quan Viện khoa học và công nghệ Quân Sự - Bộ Quốc Phòng – 17 Hoàng Sâm

3.1 Quản lý nút mạng (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.1 Giao diện chính của chương trình

Phần mềm hiển thị các thiết bị trong cơ sở dữ liệu dưới dạng sơ đồ nhằm hỗ trợ việc theo dõi hệ thống mạng một cách trực quan nhất. Bên cạnh đó, việc cấu hình các thiết bị cũng như điều hành thiết bị từ xa, theo dõi thông tin sơ bộ của thiết bị cũng diễn ra tại menu này. Theo cấu hình mặc đinh, sau khi đăng nhập vào chương trình, nội dung được trình bày trên web quản trị chính là sơ đồ mạng với các thông tin được cập nhật gần nhất.

Bên cạnh đó, menu hiển thị thông tin tức thời giúp người quản trị nắm được thông tin tức thời của các máy tính, thiết bị mạng, thông tin này được chia làm 2 loại:

 Thông tin trạng thái, có hình dạng dấu chấm than mầu xanh.  Thông tin cảnh báo, có hình dạng dấu chấm than mầu đỏ.

Hình 3.2 Thông tin tức thời của hệ thống

Quản lý thiết bị mạng

 Vùng thông tin thiết bị: vùng này liệt kê chi tiết thông tin các thiết bị trong mạng.

 Vùng cập nhật thiết bị: vùng thao tác này cho phép người quản trị thêm, sửa, xóa thiết bị

 Vùng cấu hình thiết bị: cho phép người quản trị cấu hình thông số kết nối, tập luật của thiết bị.

Hình 3.3 Giao diện quản trị thiết bị mạng

Quản trị máy tính

 Vùng thông tin máy tính: vùng này liệt kê chi tiết thông tin các máy tính trong mạng.

 Vùng cập nhật máy tính: vùng thao tác này cho phép người quản trị thêm, sửa, xóa các máy tính trong mạng.

 Vùng cấu hình máy tính: cho phép người quản trị cấu hình thông số kết nối, tập luật của máy tính.

Hình 3.4 Cửa sổ quản trị máy tính.

3.2. Theo dõi log hệ thống.

Chức năng log hệ thống của chương trình giúp người quản trị quản lý các loại log liên quan tới hoạt động của hệ thống, các thông báo lỗi từ đó mà có kế hoạch chủ động trong việc bảo trì, bảo dưỡng, sửa chữa các lỗi, hỏng hóc kịp thời. Quản lý log bao gồm:

 Nhật ký hệ thống,

 Nhật ký lỗi nghiêm trọng  Nhật ký lỗi nguy hiểm  Dọn dẹp nhật ký lỗi.

Hình 3.5 Menu log hệ thống

Hình 3.6 Danh sách nhật ký hệ thống

3.3. Theo dõi thông tin thiết bị

Chương trình có chức năng thiết lập các tập luật trên từng thiết bị nhằm lấy ra những thông tin về thiết bị trong một khoảng thời gian nào đó mà người quản trị có thể thiết lập, từ các thông số đó, người quản trị sẽ có thêm thông tin để xử lý lỗi cũng như theo dõi hệ thống.

Hình 3.7 Cài đặt tập luật cho thiết bị

Và đây là một ví dụ theo dõi % CPU trên thiết bị

3.4. Thống kê báo cáo

Người quản trị hệ thống có thể thống kê các sự kiện, cảnh báo về các thiết bị trong hệ thống mạng theo thiết bị, tập luật hay loại hình cảnh báo bằng sử dụng chức năng thống kê này của chương trình.

Hình 3.9 Menu thống kê

Ví dụ: chọn thống kê thiết bị switch, ngày bắt đầu là 01/04/2013 lúc 0h00 và kết thúc ngày 9/05/2013 lúc 0h00 như sau:

Kết quả là hiện ra như hình 3.10: (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ: chọn thống kê theo tất cả các tập luật, ngày bắt đầu là 01/04/2013 lúc 0h00 và kết thúc ngày 9/05/2013 lúc 0h00 như sau:

Kết quả là hiện ra như hình 3.11:

Hình 3.11 Kết quả thống kê lỗi theo tập luật

Ví dụ: chọn thống kê theo tất cả các loại lỗi, ngày bắt đầu là 01/04/2013 lúc 0h00 và kết thúc ngày 9/05/2013 lúc 0h00 như sau:

Kết quả là hiện ra như sau:

KẾT LUẬN

Chương trình “Giám sát mạng” là một giải pháp công nghệ thông tin, được xây dựng nhằm hỗ trợ người quản trị trong công tác quản lý thiết bị trong mạng nội bộ một cách tập trung, chuyên nghiệp. Đồng thời với đó là khả năng cảnh báo sự cố nhằm hỗ trợ người quản trị xử lý sự cố, khoanh vùng thiết bị và tìm nguyên nhân khắc phục. Chương trình “Giám sát mạng” đã tận dụng tốt công nghệ sẵn có trên nhiều nền tảng hệ điều hành nhằm tăng tính tương thích của hệ thống. Khả năng mô hình hóa của chương trình tạo ra giao diện trực quan đối với người quản trị trong công tác quản lý.

Hiện nay phần mềm đã có những kết quả nhất định trong quá trình triển khai, nó đã giúp cho người quản trị có cái nhìn toàn cảnh hơn về hệ thống mạng của mình, và giúp giảm nhân lực trong công tác quản trị mạng do đây là hệ thống quản trị tập trung. Người quản trị có thể theo dõi thông tin về kết nối mạng, thiết bị mạng, máy tính tham gia mạng, đồng thời có thể trích rút ra các báo cáo phục vụ cho nhu cầu quản

Một phần của tài liệu 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 64)