Cổng chuyển đổi SNMP-to-XML

Một phần của tài liệu Tích hợp tác tử SNMP với các hệ thống quản trị mạng dựa trên XML (Trang 83)

Phần này giới thiệu cấu trúc cổng chuyển đổi giúp thực hiện ánh xạ đã đề cập ở trên có thể thực hiện được một cách dễ dàng.

Giao diện quản trị của cổng chuyển đổi này dựa trên giao thức HTTP, nơi các tham số yêu cầu được chứa trong các chuỗi truy vấn HTTP. Chỉ có dữ liệu của yêu cầu SET mới được truyền vào trong nội dung của các yêu cầu HTTP POST. SOAP là giải pháp thay thế nhưng đối với cổng chuyển đổi này, nó sẽ phải bổ sung chi phí giao thức nhiều hơn HTTP mà không có thêm tính năng nào. Ngoài ra, trong phương pháp cổng chuyển đổi này, các tài liệu đạt được từ cổng chuyển đổi có thể được kết hợp trực tiếp thông qua các chuyển đổi XSL mà không cần tới SOAP client engine.

Hình 4.3: Cấu trúc cổng chuyển đổi SNMP-to-XML và 3 chức năng chính của nó

(a)Tìm kiếm dữ liệu quản trị, (b) điều khiển và định cấu hình, (c) truyền thông báo

Hình 4.3 mô phỏng cấu trúc của cổng chuyển đổi và 3 hoạt động chính của nó: (a) XBM manager cố gắng đọc dữ liệu quản trị, sau đó gửi yêu cầu HTTP GET tới cổng chuyển đổi. Lúc này URL bao gồm giao thức (http hoặc https), máy chủ chứa cổng và đường dẫn tới dịch vụ cổng trên máy chủ và cuối cùng là một chuỗi truy vấn HTTP quy định hoạt động này (GET) và biểu thức xác định

dữ liệu quản trị được yêu cầu. Cần lưu ý rằng, biểu thức này là biểu thức thiết lập nút tương thích Xpath: nó bắt đầu với nút gốc chung và một nút con ngữ cảnh với một tập các thuộc tính ngữ cảnh giúp xác định các agent, các ủy nhiệm bảo mật truy cập và các thuộc tính lưu trữ. Biểu thức này được theo sau bởi tên nút thuộc tính đi kèm giúp xác định bộ lọc dành cho các phần dữ liệu yêu cầu do các agent cung cấp. Để mô phỏng quá trình này, giả sử yêu cầu sau được sử dụng để tìm kiếm một danh sách mô tả giao diện trên thiết bị talisker.ibr.cs.tu- bs.de mà hiện tại không ở trạng thái hoạt động để thiết bị có thể thực hiện cấu hình quản trị:

lynx -dump ’http://www.ibr.cs.tu-bs.de\/snmp-xml-gw?get=/snmp-ata/context\ [@hostname="talisker.ibr.cs.tu-bs.de"]\/ifEntry[ifOperStatus!=ifAdminStatus] \/ifDescr’> interfaces.xml

Khi HTTP engine của cổng chuyển đổi nhận được yêu cầu này, đường dẫn trên của biểu thức Xpath được biên dịch và đơn vị lõi của bộ chuyển đổi (Translator) tạo ra một chuỗi thao tác GET SNMP để đáp ứng yêu cầu. Để đạt được điều này, cổng chuyển đổi tham chiếu đến kho các định nghĩa XML Schema cung cấp các thông tin theo yêu cầu được hỗ trợ của nó, ví dụ như ánh xạ các tên nút sang các OID, các thuộc tính thành tố sang thông tin chỉ mục bảng, các nhãn của các giá trị liệt kê sang các giá trị số…

Các đáp ứng SNMP nhận được từ agent sẽ được chuyển đổi thành các mục thông tin của thành tố XML, và cũng được lấy từ kho XML Schema. Các đoạn thông tin XML được thêm vào cây DOM của bộ chuyển đổi. Khi việc tìm kiếm dữ liệu hoàn thành (hoặc hết thời gian tìm kiếm), cây DOM được lọc trên cơ sở phần xác nhận của biểu thứcXpath của yêu cầu. Phần yêu cầu được chuyển đến HTTP engine tạo nên một tài liệu XML mà sau đó tài liệu này sẽ được chuyển trở lại như một đáp ứng với yêu cầu HTTP GET ban đầu.

Trong một số trường hợp, các ứng dụng quản trị dựa trên XM L sẽ truy cập vào các đối tượng hoặc nhóm các đối tượng quản trị nhiều lần để tìm kiếm một hoạt động mức cao hơn duy nhất. Trong những trường hợp này, ứng dụng thường không yêu cầu cổng chuyển đổi tìm kiếm cùng một dữ liệu SNMP nhiều lần từ agent. Để tận dụng những lợi thế trong trường hợp này và giúp cải thiện hiệu năng, cổng chuyển đổi có thể hỗ trợ việc tạm nắm lấy thông tin tìm kiếm được từ agent và HTTP client có thể xác định thời gian dung nạp dữ liệu được yêu cấu lâu nhất, ví dụ như thông qua biểu thức Xpath trên thuộc tính @time của thành tố <context>.

(b) Tương tự như yêu cầu GET, XBM manager có thể ban hành các yêu cầu HTTP POST để kiểm soát hoặc cấu hình các agent thông qua các tài liệu XML. Trong trường hợp này, chuỗi truy vấn URL chỉ bao gồm chế độ thao tác (SET) trong chuỗi truy vấn HTTP. Văn bản XML truyền đi được tách thành các biểu diễn bên trong DOM. Sau đó bộ chuyển đổi sẽ duyệt cây để xác định các nút mà các định nghĩa đối tượng MIB bên dưới cho phép SNMP ghi các truy cập. Và một lần nữa, kho XML Schema lại cung cấp tất cả thông tin để thực hiện điều này. Dựa trên các nút này, bộ chuyển đổi sẽ tạo ra các yêu cầu SNMP SET và gửi chúng tới agent. Các đáp ứng SNMP được sử dụng để phê chuẩn các chuyển đổi trong cây DOM hoặc bổ sung thông tin lỗi vào cây DOM khi thao tác SNMP SET bị lỗi. Cuối cùng cây DOM thu được sẽ được dùng để chuyển tài liệu XML như một đáp ứng thành yêu cầu HTTP POST ban đầu.

Lưu ý rằng tài liệu XML được đăng ký thông qua yêu cầu HTTP POST có thể dựa trên một tài liệu đã được tìm kiếm thông qua yêu cầu HTTP GET tương ứng trước đó. Điều này cho phép dễ dàng nhận biết các ứng dụng quản trị có hỗ trợ các sửa đổi cấu hình đơn giản trong chu kỳ pull-edit-push hay không.

Hãy giả sử rằng trong ví dụ GET ở trên, toán tử (hay một thuật toán quản trị tự động) quyết định gỡ bỏ một số giao diện. Việc này được thực hiện bằng cách thêm thành tố sau vào các giao diện đó trong tài liệu XML được tìm:

:<IF-MIB:ifAdminStatus>down</IF-MIB:ifAdminStatus>

Sau đó tài liệu thực hiện đăng ký đến cổng chuyển đổi (chương trình Java này chỉ quan tâm đến việc mã hóa chính xác nội dung HTTP):

java GatewayClient http://www.ibr.cs.tu-\bs.de/snmp-xml-gw set interfaces.xml. (c) Cuối cùng, cổng chuyển đổi cũng có thể hoạt động như một SNMP Trap. Khi bộ chuyển đổi nhận được thông báo, nó sẽ tìm kiếm các OID liên quan và các giá trị từ kho XML Schema và tạo ra một mục thông tin thành tố nhỏ trên mỗi thông báo. Những mục thông tin này được xử lý theo 2 cách. Chúng có thể được gửi đi dưới dạng một tài XML ngắn trong các yêu cầu HTTP POST tới các XBM manager. Điều này đòi hỏi cổng chuyển đổi hoạt động như một HTTP client. Ngoài ra, tất cả các mục thông tin thông báo đều được thêm vào tài liệu XML cục bộ để giúp tạo ra nhật ký thông báo chung. Điều này cho phép các XBM manager dễ dàng truy cập vào nhật ký thông báo tại bất kỳ thời điểm nào tiếp theo với phương thức tương tự mà thông tin quản trị được truy cập thông qua các yêu cầu HTTP GET, ví dụ như Xpath dựa trên việc lọc các thông báo được hộ trợ và cổng chuyển đổi không được yêu cầu phải hoạt động như một HTTP client trong trường hợp này.

Kiến trúc cổng chuyển đổi này được thực thi – trừ việc hỗ trợ các thông báo – như một Java Servlet. Nó được triển khai và sử dụng thành công trên hệ điều hành Linux/Apache/Tomcat. Mã nguồn được trình bày trên trang web libsmi.

Một phần của tài liệu Tích hợp tác tử SNMP với các hệ thống quản trị mạng dựa trên XML (Trang 83)

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

(106 trang)