Đặt vấn đề CBHD: TS. Lưu Thanh Trà Trong luận văn này phần mềm Zabbix được sử dụng để giám sát mô hình mạng máy tính của Chi nhánh Viettel Cần Thơ vì các lý do sau: - Zabbix có thể giám sát trong môi trường nhỏ và lớn từ vài thiết bị đến hơn 100.000 thiết bị, có khả năng xử lý hơn 1.000 kiểm tra mỗi phút sử dụng phần cứng tầm trung và thu thập gigabyte dữ liệu lịch sử mỗi ngày. - Giám sát phân tán qua Zabbix Proxy, Zabbix Server thu thập dữ liệu thông qua Zabbix Proxy. Zabbix Proxy và Zabbix Server sử dụng khác bộ nhớ đệm cho hiệu suất cao và giảm tải trên cơ sở dữ liệu.
- Bảo trì và nâng cấp dễ dàng, ngoài việc cấu hình và khởi động thì Zabbix hoàn toàn điều khiển thông qua giao diện web an toàn và đơn giản. - An ninh, truy cập vào Zabbix có thể được thực hiện thông qua một kết nối SSL được bảo vệ, đảm bảo an ninh giữa người dùng và máy chủ. Ngoài ra, lối vào có tự bảo vệ chống lại các cuộc tấn công. Tất cả các thành phần của Zabbix có thể chạy như người dùng không có đặc quyền, cơ chế phân quyền linh hoạt.
Các thành phần giao tiếp với nhau chỉ chấp nhận các kết nối từ các địa chỉ IP có quyền truy cập, các kết nối khác sẽ được tự động bị từ chối. - Tất cả các thành phần Zabbix hỗ trợ cả IPv4 và IPv6, cho phép sử dụng trong một môi trường hỗn hợp hoặc môi trường IPv6. - Báo cáo và cảnh báo nhanh chóng, Zabbix có thể gửi tin nhắn thông báo qua e-mail, SMS hoặc Jabber (giao thức XMPP) cho mỗi sự kiện đã cài đặt. - Sản phẩm hoàn toàn miễn phí, mã nguồn mở, có sẵn, do đó môi trường công nghệ thông tin được ứng dụng sẽ không phụ thuộc vào một tổ chức thương mại nào.
Tất cả các thiết lập và các giá trị thu thập được lưu trữ trong một định dạng đơn giản và hoàn toàn mở, dễ dàng để xuất ra hoặc tích hợp với các hệ thống khác. Mô hình mạng máy tính Chi nhánh Viettel Cần Thơ được giả lập bằng phần mềm GNS3 và VMware: - VMware Workstation 8: cài đặt các hệ điều hành Redhat 5.3 32bit, Windows Server 2003, Ubuntu 12.1, Windows XP SP2.1: Router c7200, c2691, Firewall ASA, định tuyến OSPF. Giám sát hệ thống mạng máy tính 3 HVTH: Đái Tiến Trung Chi nhánh Viettel Cần Thơ Chương 2: Cơ sở lý thuyết CBHD: TS. Lưu Thanh Trà CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giao thức quản lý mạng đơn giản - SNMP 2.1 Khái niệm SNMP SNMP - RFC1157 [4] là “giao thức quản lý mạng đơn giản” do đó nó có những quy định riêng mà các thành phần trong mạng phải tuân theo cấu trúc, định dạng của dòng dữ liệu trao đổi với nhau và quy định trình tự, thủ tục để trao đổi dòng dữ liệu đó.
Một thiết bị hiểu được và hoạt động tuân theo giao thức SNMP được gọi là “có hỗ trợ SNMP” hoặc “tương thích SNMP”. SNMP dùng để quản lý, nghĩa là có thể theo dõi, có thể lấy thông tin, có thể được thông báo, và có thể tác động để hệ thống hoạt động như ý muốn. Các thiết bị không nhất thiết phải là máy tính mà có thể là Switch, Router, Firewall, ADSLGateway, và cả một số phần mềm cho phép quản trị bằng SNMP. SNMP được thiết kế để đơn giản hóa quá trình quản lý các thành phần trong mạng.
Nhờ đó các phần mềm SNMP có thể được phát triển nhanh và tốn ít chi phí. SNMP được thiết kế để có thể mở rộng các chức năng quản lý, giám sát. Khi có một thiết bị mới với các thuộc tính, tính năng mới thì người ta có thể thiết kế SNMP để phục vụ cho riêng mình. SNMP được thiết kế để có thể hoạt động độc lập với các kiến trúc và cơ chế của các thiết bị hỗ trợ SNMP.
Các thiết bị khác nhau có hoạt động khác nhau nhưng đáp ứng SNMP là giống nhau.2 Cấu trúc SNMP Hình 1: Cấu trúc SNMP - Network Management Station (NMS): Thông thường là một máy tính chạy phần mềm quản lý SNMP (SNMP management application), dùng để giám sát và điều khiển tập trung các network element. Giám sát hệ thống mạng máy tính 4 HVTH: Đái Tiến Trung Chi nhánh Viettel Cần Thơ Chương 2: Cơ sở lý thuyết CBHD: TS. Lưu Thanh Trà - Network Element: Là các thiết bị, máy tính, hoặc phần mềm tương thích SNMP và được quản lý bởi network management station. Như vậy element bao gồm device, host và application.
- SNMP Agent: Là một tiến trình chạy trên network element, có nhiệm vụ cung cấp thông tin của element cho station, nhờ đó station có thể quản lý được element. Chính xác hơn là application chạy trên station và agent chạy trên element mới là 2 tiến trình SNMP trực tiếp liên hệ với nhau. Một management station có thể quản lý nhiều element, một element cũng có thể được quản lý bởi nhiều management station. Nếu một element được quản lý bởi 2 station lấy thông tin từ element thì cả 2 station sẽ có thông tin giống nhau.
Nếu 2 station tác động đến cùng một element thì element sẽ đáp ứng cả 2 tác động theo thứ tự cái nào đến trước.3 Các phiên bản SNMP SNMP có 4 phiên bản: SNMPv1, SNMPv2c, SNMPv2u và SNMPv3 [4]. Các phiên bản này khác nhau một chút ở định dạng bản tin và phương thức hoạt động. - SNMPv1: Phiên bản đầu tiên của SNMP. - SNMPv2c: SNMP version 2 chia làm hai phiên bản khác nhau ở cơ chế bảo mật, trong đó một phiên bản vẫn dựa vào cơ chế bảo mật community string như ở SNMPv1 gọi là Community-based SNMPv2 hay SNMPv2c.
- SNMPv2u: Đây là phiên bản SNMPv2 sử dụng cơ chế bảo mật có chứng thực băm (hash) và mã hoá đối xứng dữ liệu, gọi là User-based SNMPv2 hay SNMPv2u. - SNMPv3: Phiên bản bảo mật nhất của SNMP sử dụng mô hình bảo mật dựa trên người dùng (User-based security model) với các cơ chế chứng thực bằng băm (MD5, SHA) và mã hoá (DES, AES) hiện đại. Cấu trúc bản tin SNMPv1 SNMP chạy trên nền tảng UDP. Cấu Trúc của một bản tin SNMP bao gồm: version, community string và data.
VERSION COMMUNITY DATA (GetRequest PDU, GetNextRequest PDU, STRING SetRequest PDU, GetResponse PDU, Trap) Hình 2: Cấu trúc PDU SNMPv1 Giám sát hệ thống mạng máy tính 5 HVTH: Đái Tiến Trung Chi nhánh Viettel Cần Thơ Chương 2: Cơ sở lý thuyết CBHD: TS. Lưu Thanh Trà - Version: Xác định phiên bản SNMP ( SNMPv1 thì verison = 0). - Community string : Là một chuỗi kí tự được cài đặt giống nhau trên cả SNMP anget và SNMP manager đóng vai trò như là “mật khẩu” giữa hai bên trong quá trình trao đổi thông tin. Community string có ba loại: Read- community, Write-community và Trap-community.
- Phần Data trong gói tin được gọi là PDU (Protocol Data Unit). SNMPv1 có năm phương thức hoạt động tương ứng với năm loại PDU. Tuy nhiên chỉ có hai loại định dạng bản tin là PDU và Trap-PDU; trong đó các bản tin của phương thức GetRequest, GetNextRequest, SetRequest, GetResponese có cùng định dạng là PDU, còn lai là bản tin Trap có định dạng là Trap-PDU. Phương thức hoạt động SNMPv1 Giao thức SNMPv1 có 5 phương thức hoạt động là: GetRequest, GetNextRequest, SetRequest, GetResponse, Trap.
Mỗi bản tin đều có chứa OID để biết Object mang trong nó. OID trong GetRequest cho biết nó muốn lấy thông tin của object nào. OID trong GetResponse cho biết nó mang thông tin của object nào. OID trong SetResquest cho biết nó muốn thiết lập thông tin cho object nào.
OID trong Trap chỉ ra nó thông báo sự kiện xảy ra với object nào. Hình 3: Các phương thức của SNMPv1 - GetRequest: Agent lắng nghe request ở cổng UDP 161 và Manager nhận Trap ở cổng UDP 162. Bản tin GetRequest được manager gửi đến agent để lấy một thông tin nào đó. Trong bản tin GetRequest có OID của object muốn lấy thông tin.
Trong bản tin GetRequest có thế chứa nhiều OID, nghĩa là dùng GetRequest có thể lấy về cùng lúc nhiều thông tin. Giám sát hệ thống mạng máy tính 6 HVTH: Đái Tiến Trung Chi nhánh Viettel Cần Thơ Chương 2: Cơ sở lý thuyết CBHD: TS. Lưu Thanh Trà Hình 4: Cấu trúc PDU của GetRequest Request-id: Mã số của request. ID này là số ngẫu nhiên cho manager tạo ra, agent khi gửi bản tin response cho request nào thì phải gửi requestID như lúc nhận.
Giữa manager và agent có thể có nhiều request&response, một request và respone được gọi là cùng một phiên trao đổi khi chúng có requestID giống nhau. Error-status: nếu error-stutus là 0 phương thức thực hiện thành công, không có lỗi xày ra.Nếu error-status < 0 (error-status > 0) là có lỗi xảy ra. Trong bản tin GetRequest, GetNextRequest, SetRequest thì error- status luôn là 0. Error-index: Số thứ tự của của objectID liên quan đến lổi nếu có.
Trong variable-binding có nhiều objectID được đánh số từ 1 đến n, một bản tin GetRequest cùng lúc có thế lấy nhiều object. Variable-bindings: Danh sách các cặp [objectID - value] cần lấy thông tin, trong đó objectID là định danh của object cần lấy thông tin, còn value không mang giá trị. Khi agent gửi bản tin trả lời thì nó sẽ copy lại bản tin này và điền vào value bằng giá trị của object. - GetResponse: Mỗi khi các SNMP angent nhận được các bản tin GetRequest, GetNextRequest hay SetRequest thì nó sẽ gửi lại bản tin GetRespone để trả lời.
Trong bản tin GetRespone có chứa OID của object được request và giá trị của object đó. Hình 5: Cấu trúc PDU của GetResponse Giám sát hệ thống mạng máy tính 7 HVTH: Đái Tiến Trung Chi nhánh Viettel Cần Thơ Chương 2: Cơ sở lý thuyết CBHD: TS. Lưu Thanh Trà request-id : Mã số của request. ID này phải giống với request-id của bản tin GetRequest trước đó.
error-status: Mang một trong các giá trị noError(0), tooBig(1), noSuchName(2), badValue(3), readOnly(4), genErr(5). Nếu agent lấy thông tin để trả lời request thành công thì error-status là noError(0). objectid: Nếu trước đó là GetRequest thì objectid sẽ giống với objectid trong bản tin request, nếu trước đó là GetNextRequest thì objectid sẽ là định danh của object nằm sau trong mib objectid của request. - GetNextRequest: dùng để lấy thông tin của object nằm kế tiếp object được chỉ ra trong bản tin.
Một MIB bao gồm nhiều OID được sắp xếp theo thứ tự nhưng không liên tục, nếu biết được một OID thì không xác định được OID kết tiếp. Do đó ta cần phương thức GetNextRequest để lấy giá trị của OID kế tiếp. Nếu thực hiện GetNextRequest liên tục thì sẽ lấy được toàn bộ thông tin của agent.Cấu trúc của GetNextRequest giống với GetRequest, nhưng chỉ khác ở byte chỉ ra bản tin là GetNextRequest PDU. Hình 6: Cấu trúc PDU của GetNextReques - SetRequest: Bản tin SetRequest được manager gửi cho angent để thiết lập giá trị cho một object nào đó.