Tải bản đầy đủ - 0 (trang)
CHƯƠNG 4 – PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG GIÁM SÁT

CHƯƠNG 4 – PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG GIÁM SÁT

Tải bản đầy đủ - 0trang

một ví dụ về cách sử dụng khá thủ cơng và phức tạp của Nagios khi

cấu hình sử dụng các đoạn script lấy thông tin hệ thống.

command[check_users]=/usr/lib/nagios/plugins/check_users -w

'$ARG1$' -c '$ARG2$'

command[check_load]=/usr/lib/nagios/plugins/check_load -w

$ARG1$ -c $ARG2$

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w

$ARG1$ -c $ARG2$ -p $ARG3$

command[check_procs]=/usr/lib/nagios/plugins/check_procs -w

$ARG1$ -c $ARG2$



 Cacti: Chủ yếu được sử dụng để giám sát tài ngun băng thơng

mạng, sản phẩm này còn thiếu nhiều các tính năng như kiểm tra trạng

thái thiết bị, cũng như thông tin của chúng.

 Munin: Hoạt động theo mô hình client-server. Tồn bộ thơng tin của

các Client sẽ được Server kết nối tới và lấy về một cách lần lượt. Do

vậy nhược điểm của Munin là thơng tin có thể bị trễ và yêu cầu điểm

đầu cuối (client) phải mở port.

Vì Munin được tối giản cho khả năng cài đặt-sử dụng nên sản phẩm

này còn thiếu hụt nhiều tính năng về cảnh báo lỗi hay xem lịch sử

trạng thái đối tượng được giám sát.

 Các sản phẩm thương mại: Các sản phẩm này thường có giá khá cao, được bán

trọn gói và áp dụng cho từng mơi trường cụ thể. Người dùng cũng khơng có khả

năng hoặc quyền can thiệp vào nội dung mã nguồn của sản phẩm.

 Các sản phẩm dạng “hosted”: Đây cũng là một dạng sản phẩm thương mại chỉ

khác là nó ở dạng Web. Một trong các sản phẩm tiểu biểu ở dạng này là

Pingdom. Sản phẩm này có ưu điểm là giao diện trực quan, server thực hiện

công việc giám sát được đặt ở nhiều nơi trên thế giới, khả năng thông báo lỗi

qua SMS hiệu quả. Tuy nhiên, sản phẩm này chỉ hỗ trợ giám sát Website qua

giao thức http hoặc https. Không hỗ trợ về giám sát máy chủ, thiết bị mạng hay

52



những



dịch



vụ



mạng



khác.



Hình 4.1: Giao diện Dashboard liệt kê các website được giám sát bởi Pingdom

Tại Việt Nam hiện nay, chưa có một đơn vị nào tự xây dựng được hoàn chỉnh

một hệ thống giám sát mạng và cung cấp cho cộng đồng. Đại đa số đều sử dụng các

giải pháp đã có ở trên về áp đặt cho hệ thống của mình. Điều này có thể khiến

chúng ta phụ thuộc q nhiều vào các sản phẩm đó cũng như khơng đáp ứng đầy đủ

nhu cầu sử dụng.

4.1.2. TÍNH NĂNG CẢI TIẾN DỰ CÓ CHO HỆ THỐNG GIÁM SÁT

MỚI

Nhằm tạo ra một ứng dụng theo dõi hệ thống thuần Việt và phù hợp hơn với

các dịch vụ cũng như hạ tầng mạng tại Việt Nam. Nhóm thực hiện luận văn đã cố

gắn khắc phục những điểm chưa phù hợp, chưa thực sự hoạt động tốt của các sản

phẩm giám sát hệ thống khác đồng thời tìm kiếm những ý tưởng mới mẻ hơn cho

sản phẩm của mình.

Những điểm mới có thể kể qua như:

 Hỗ trợ tiếng Việt: Hầu hết các sản phẩm giám sát hệ thống mạng có trên

thị trường hiện nay đều hỗ trợ một ngôn ngữ là tiếng Anh. Điều này cũng

sẽ gây khó khăn với một số người Việt nếu không rành ngôn ngữ này. Với

lợi thế ứng dụng thuần Việt. Nhóm tác giả đã cố gắn tích hợp song song



53



cả hai ngôn ngữ tiếng Anh và tiếng Việt trong ứng dụng website của

mình.

 Giao diện website hỗ trợ tính “responsive”: Như đã giới thiệu ở mục

3.1.4, website hỗ trợ tính đáp ứng (reponsive) sẽ thân thiện hơn với người

dùng, chúng ta có thể truy cập và thao tác trên website một cách dễ dàng

với nhiều loại thiết bị khác nhau như laptop, tablet, cellphone,... cùng

nhiều độ phân giải màn hình khác nhau full-HD, mini-HD, SVGA,

VGA,...mà khơng cần phải có một ứng dụng thứ ba chuyên biệt cho từng

loại thiết bị.

 Biểu đồ trực quan và sinh động hơn: Biểu đồ được thiết kế theo chuẩn

HTML5, sử dụng jQuery để tạo ra sự trực quan cũng như tính ưa nhìn

cho con mắt người dùng.

 Hỗ trợ nhiều phương thức giám sát: Sản phẩm hỗ trợ bốn phương thức

giám sát chính đó là: SNMP, Agent, SSH và API.

 Hỗ trợ phương thức giám sát qua tài khoản SSH: Với chỉ một tài khoản

người dùng thường trên máy chủ, người dùng có thể sử dụng để giám sát

hệ thống mà khơng cần phải thực hiện thêm bất kì thao tác cài đặt, cấu

hình nào.

 Hỗ trợ giám sát nhiều đối tượng khác nhau: Sản phẩm có thể hỗ trợ giám

sát dịch vụ trên các dòng máy chủ Windows, Linux; các Router, Switch

của Cisco và cả ảo hóa VMware vSphere. Trong đó, đối với loại hình

giám sát hệ thống ảo hóa, người quản trị chỉ cần cung cấp thông tin người

dùng có đủ quyền nhất định thì hệ thống sẽ tự động thu thập thông tin từ

vCenter cho tới những ESXi host được quản lý bởi nó.

 Khơng u cầu mở port đối với Agent: Đối với kiểu giám sát theo mơ

hình Client-Server, sản phẩm của luận văn khơng u cầu điểm đầu cuối

mở port kết nối. Thay vì đó, nội dung thông tin theo dõi sẽ được cập nhật

theo đường từ Client gửi tới Server thông qua một RESTful webservice.

Điều này giảm đáng kể thời gian cấu hình cho người quản trị khi phải cài

đặt hệ thống theo dõi cho rất nhiều máy chủ, đồng thời giảm khả năng rủi

ro về an toàn mạng cũng như xung đột giữa các port được NAT.

54



 Tự động deploy Agent xuống máy chủ: Đối với các đối tượng giám sát là

các dòng máy chủ Linux, hệ thống website hỗ trợ công cụ cho người

quản trị deploy các Agent xuống máy chủ một cách tự động đồng thời

thiết lập thông số kết nối nới API.

4.2.



THIẾT KẾ HỆ THỐNG GIÁM SÁT MỚI



4.2.1. CẤU TRÚC VÀ CÁCH THỨC HOẠT ĐỘNG

4.2.1.1. Sơ đồ tổng quát của hệ thống

Sơ đồ tổng quát của hệ thống giám sát được mơ tả như hình dưới đây. Bao

gồm:

 Đối



tượng



con



người:



System



Administrator,



Network



Administrator,...

 Đối tượng giám sát: Router (Cisco), Switch (Cisco), Windows server,

Linux server, Virtualization (VMware)

 Thành phần hệ thống: PHP Webserver, Database server, Master server,

API server.



Hình 4.2: Sơ đồ tổng quát của hệ thống giám sát



55



Về vai trò, các thành phần trong hệ thống giám sát có những chức năng chính

như sau:

 PHP Webserver: Chạy ứng dụng website giúp người quản trị tương

tác với hệ thống giám sát.

 Master Server: Hoạt động như một máy chủ giám sát các thiết bị,

máy chủ khác. Master Server sẽ đảm nhiệm các kiểu giám sát như:

SNMP, SSH và API.

 API Server: Hoạt động như một RESTful webservice tiếp nhận các

HTTP POST và GET từ client là các Agent. API Server hoạt động

trong mơ hình giám sát Client-Server.

Chi tiết hơn về vai trò cũng như cấu trúc hoạt động của các thành phần trên

sẽ được đề cập trong các mục tiếp theo sau đây.

4.2.1.2. Admin Web Interface

Đây là thành phần hỗ trợ giao tiếp giữa người quản trị với các đối tượng

được giám sát. Website sẽ giúp người quản trị thực hiện các thao tác về mặt quản lý,

cũng như theo dõi thông tin cập nhật của hệ thống mình. Đồng thời đưa ra các cảnh

báo khi hệ thống gặp sự cố. Cụ thể như sau:

Về mặt quản lý:















Thêm / xóa / sửa thiết bị (đối tượng giám sát)

Quản lý nhóm thiết bị

Quản lý sự kiện

Quản lý các Rules / Trigger (điều kiện giám sát)

Quản lý thông tin người dùng

Quản lý thông tin nhận thông báo trạng thái thiết bị



Về mặt giám sát:

 Xem thông tin trạng thái của thiết bị thái của thiết bị được cập nhật

một cách chi tiết.

 Xem lịch sử của thiết bị

Website được viết bằng ngôn ngữ PHP, sử dụng framework Laravel. Giao

diện website được thiết kế theo chuẩn HTML5 và CSS3 để tạo giao diện trực quan,



56



đẹp mắt hơn. Bên cạnh đó, giao diện có tính “reponsive” (tính đáp ứng) để có thể

xem được trên nhiều độ phân giải màn hình khác nhau nhờ khả năng tùy biến và bố

cục lại giao diện một cách tự động.

4.2.1.3. Master Server

Master server một trong các thành phần chính của hệ thống giám sát. Với

nhiệm vụ chính là hoạt động như một máy chủ thực hiện công việc kiểm tra trạng

thái cũng như thu thập thông tin của các đối tượng được theo dõi. Master server sẽ

hoạt động ở chế độ “active monitoring” (giám sát chủ động) bằng việc lấy thông tin

đối tượng giám sát từ cơ sở dữ liệu, sau đó sẽ thực hiện kết nối tới các đối tượng

này để xử lý, thu thập thông tin. Sơ đồ bên dưới đây mô tả về cách thức hoạt động

tổng quát của một Master Server



Hình 4.3: Sơ đồ mô tả hoạt động của một Master Server

Có ba phương thức giám sát được áp dụng trên Master server là:

 SNMP: Master server sẽ tiến hành lọc ra các đối tượng được giám sát

bằng phương thức sử dụng giao thức SNMP từ cơ sở dữ liệu. Xác

định port kết nối, chuỗi community bí mật. Sau đó sẽ sử dụng các

hàm được lập trình sẵn và cơ cở dữ liệu MIB, OID của mình để thu

thập thơng tin trên các Router, Switch Cisco hoặc các hệ điều hành

57



Linux đã được cài đặt SNMP agent. Bên dưới là sơ đồ mơ tả cho kiểu

giám sát này.



Hình 4.4: Sơ đồ hoạt động của Master Server đối với kiểu giám sát bằng

SNMP

 SSH: Master server sẽ tiến hành lọc ra các đối tượng được giám sát

bằng phương thức sử dụng giao thức SSH từ cơ sở dữ liệu. Xác định

port kết nối, thơng tin user. Sau đó sẽ sử dụng các hàm được lập trình

sẵn để tiến hành thu thập thơng tin trên các máy chủ Linux dựa vào

chính các lệnh có sẵn trên hệ điều hành. Thao tác này được thực hiện

chủ yếu nhờ vào thư viện Fabric đã đề cập ở mục 2.6.3. Bên dưới là

sơ đồ mô tả hoạt động của kiểu giám sát bằng SSH.



Hình 4.5: Sơ đồ hoạt động của Master Server đối với kiểu giám sát bằng SSH



58



 API: Kiểu giám sát này thực chất là Master server sẽ làm công việc

gửi các yêu cầu http POST và http GET lên trên đối tượng được giám

sát để thu thập thông tin. Hiện tại, Master server hỗ trợ kiểu giám sát

qua API đối với các kiểu ảo hóa VMware vSphere bao gồm vCenter,

ESXi dạng standalone. Các sản phẩm này đều đã hỗ trợ sẵn các API

được nhà sản xuất kèm theo và cung cấp tài liệu về cách sử dụng cũng

như các đối tượng nắm giữ thơng tin của hệ thống. Từ đó, Master

server sẽ sử dụng các hàm được lập trình sẵn, sử dụng các SDK

chuyên biệt để xử lý các đối tượng này. Bên dưới là sơ đồ mô tả hoạt

động của kiểu giám sát bằng API.



Hình 4.6: Sơ đồ hoạt động của Master Server đối với kiểu giám sát

bằng API

4.2.1.4. API Server

API Server được sử dụng trong mơ hình giám sát dạng Client-Server. API

Server sẽ đóng vai trò là một RESTful webservice xử lý các yêu cầu HTTP POST

và GET từ các Agent được cài đặt trên các máy chủ Linux hoặc Windows. Các

thơng tin chính mà API Server sẽ tiếp nhận bao gồm:

 Thơng tin về cấu hình hệ thống (CPU, bộ nhớ RAM, ổ đĩa, địa chỉ IP

của các card mạng,...)

 Thông tin về tải của CPU trên máy chủ.

 Thông tin về dung lượng RAM sử dụng.

 Thông tin danh dách ổ đĩa, dung lượng sử dụng của từng ổ đĩa.

59













Thơng tin về các tiến trình đang chạy trên máy chủ.

Thông tin về các cổng đang được mở trên máy chủ.

Thông tin về băng thông mạng mà máy chủ sử dụng.

Các thông tin bổ sung khác...



Thông tin được gửi lên từ các Agent trên máy chủ sẽ ở dạng JSON nhằm

tăng tốc độ truyền tin cũng như dễ xử lý nội dung hơn khi API Server nhận được

các dữ liệu này.

Quá trình truyền dữ liệu giữa Agent và API Server được thực hiện thơng qua

giao thức HTTP nên có thể bị tấn công lấy cắp thông tin bởi kiểu tấng cơng Man-inthe-middle. Vì vậy, ở phía API Server, Webserver sẽ được cấu hình sử dụng giao

thức HTTP an tồn, đó chính là giao thức HTTPS. Bên cạnh đó, để tăng khả năng

bảo mật cho dữ liệu người dùng ở phía hệ thống giám sát, API Server sẽ yêu cầu

Agent đăng nhập sử dụng kiểu chứng thực “Basic Authentication” trước khi thực

hiện bất kì HTTP POST hay GET nào đó.

Cách thức hoạt động của kiểu giám sát Client-Server được thể hiện ở đây

như sau. Đầu tiên, Agent được cài đặt trên các máy chủ sẽ sử dụng các hàm được

lập trình sẵn bằng ngôn ngữ Python để thu thập các thông tin của máy chủ như

CPU, RAM, Disk, Network,... (1) (2). Sau đó những thơng tin này sẽ được chuyển

sang dạng JSON (3) và được Agent thực hiện yêu cầu HTTP POST để đưa lên trên

API Server (4). Sau đó, API Server sẽ xác nhận thông tin và ghi vào CSDL của thiết

bị tương tứng (5). Bên dưới đây là mô hình miêu tả cách thức hoạt động khi một

Agent tương tác với API Server



60



Hình 4.7: Sơ đồ quá trình tương tác giữa Agent và API Server

Vì API Server hoạt động như một RESTful webservice, với yêu cầu là đơn

giản nhưng đáp ứng đủ các yêu cầu cơ bản bên trên. Nhóm tác giả chọn Flask là

giải pháp cho việc lập trình API Server này. Flask là một Web framework được viết

bằng ngôn ngữ Python với ưu điều nhỏ nhẹ và chức năng hiệu quả. Chi tiết về Flask

web framework đã được đề cập ở mục 3.2.4.

4.2.1.5. Agent

Agent là một phần trong mơ hình giám sát theo phương thức “Agent” sử

dụng mơ hình Client-Server. Nếu như API Server đóng vai trong như một RESTful

webservice đã được đề cập ở mục bên trên thì Agent đóng vai trò là một ứng dụng

chạy thường trực trên máy chủ. Các Agent này sẽ thực hiện công việc thu thập

thông tin tài nguyên của máy chủ như CPU, RAM, Disk, Network,...sau đó gửi các

thơng tin này lên API Server thông qua giao thức HTTPS. Chi tiết về quá trình giao

tiếp giữa Agent và API Server đã được đề cập ở mục 4.2.1.4 API Server bên trên.



61



Một Agent có thể được cài đặt lên nhiều thiết bị máy chủ khác nhau nên cần

có cơ chế để quản lý và phân loại các Agent cũng như các thiết bị máy chủ này. Ở

đây, nhóm tác giả đã chọn giải pháp quản lý theo các UUID. Mỗi thiết thiết bị khi

được người quản trị thêm mới bằng cách sử dụng giao diện website thì sẽ có một

UUID đại diện cho thiết bị đó. Một UUID là duy nhất trong hệ thống CSDL, đảm

bảo không trùng khớp với các UUID của các thiết bị khác. Và sau khi đã cài đặt

Agent lên máy chủ, người quản trị sẽ tiến hành đưa thơng số UUID này vào tệp tin

cấu hình của Agent. Từ đó, mỗi khi Agent thu thập thơng và truyền cho API Server

thì API Server có thể phân biệt được thông tin thuộc này thuộc về thiết bị máy chủ

nào.

Vì Agent là một ứng dụng chạy thường trực trên hệ thống và xử lý các công

việc theo những chu kì định trước, do vậy cần có các cách thức lập trình để giúp

ứng dụng có thể thực hiện các lịch (schedule) và có khả năng thực hiện đa tiến trình

(mutil threading). Để đáp ứng những yêu cầu này, nhóm tác giả đã chọn ngơn ngữ

Python để lập trình cho Agent hoạt động trên các hệ điều hành Linux và ngôn ngữ

C# cho Agent hoạt động trên các hệ điều hành Windows.

4.2.1.6. Cách thức quản lý và theo dõi các đối tượng mạng

Về mặt quản lý, các đối tượng mạng sẽ được người quản trị thêm vào danh

sách theo dõi nhờ giao diện website. Ở đó, sẽ phân loại sẵn các loai thiết bị được hỗ

trợ giám sát gồm:

 Hệ điều hành:

 Windows, Linux

 Phần cứng:

 Router Cisco

 Switch Cisco

 Ảo hóa:

 VMware ESXi

 VMware vCenter

Các đối tượng giám sát sau khi được thêm mới sẽ được lưu xuống cơ sở dữ

liệu theo từng nhóm nhất định kèm theo đó là một UUID đại diện cho nó. Tùy theo

62



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 4 – PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG GIÁM SÁT

Tải bản đầy đủ ngay(0 tr)

×