Sử dụng API VMware SD-WAN Orchestrator để xây dựng các công cụ báo cáo tùy chỉnh

API là gì?

Trong bài đăng trên blog này, tôi sẽ trình bày các nguyên tắc cơ bản về lý do và cách sử dụng API RESTful. Đây là một hành trình tương đối mới đối với tôi và tôi muốn chia sẻ với bạn những khoảnh khắc eureka của mình và hy vọng sẽ truyền cảm hứng cho bạn trong cách xử lý việc quản lý thiết bị mạng. Tôi tin rằng không có gì tốt hơn một ví dụ hoạt động, vì vậy tôi đã đưa vào một ứng dụng API đang hoạt động hiển thị băng thông tối đa được sử dụng bởi tất cả các biên hoạt động trong doanh nghiệp của bạn.

Trước khi tìm hiểu Postman và tận dụng các API SD-WAN hiện có, chúng ta hãy cùng tìm hiểu API là gì, REST có nghĩa là gì và hai khái niệm này kết hợp với nhau như thế nào.

API, hay Giao diện lập trình ứng dụng, chỉ đơn giản là một lớp phần mềm trung gian cho phép hai ứng dụng giao tiếp với nhau. Internet phần lớn được xây dựng dựa trên nguyên tắc này và VMware SD-WAN Orchestrator cũng không ngoại lệ. Ví dụ, khi bạn vào Monitor > Edges , danh sách các cạnh của bạn sẽ xuất hiện.

Danh sách Edge này xuất hiện vì UI đang đưa ra yêu cầu API cho bạn và máy chủ web Orchestrator đang phản hồi lại tương ứng. Lệnh gọi hoặc yêu cầu API bao gồm phương thức HTTP, tiêu đề và nội dung yêu cầu. Phần thân yêu cầu chứa một phương thức. Trong yêu cầu ở trên, phương thức HTTP là GET, một trong các tiêu đề chỉ định loại nội dung và một tiêu đề khác chỉ định phương thức xác thực.

Bạn có thể xem quá trình này đang hoạt động bằng cách sử dụng Chrome và bộ công cụ dành cho nhà phát triển. Nhấn Ctrl+Shift+I để mở công cụ dành cho nhà phát triển. Chuyển đến tab Mạng và lọc theo XHR . Điều hướng các cổng và đối tượng khác nhau được liệt kê, bạn sẽ thấy nhiều phương thức API được tạo khi bạn điều hướng các màn hình. Trong trường hợp này, khi bạn nhấp vào Edges , ứng dụng Orchestrator sẽ gửi một phương thức phổ biến có tên /enterprise/getEnterpriseEdgeList đến máy chủ API Orchestrator và máy chủ web sẽ phản hồi lại bằng dữ liệu thích hợp được liên kết với phương thức đó.

Nhấp vào tab Xem trước và bạn sẽ thấy tất cả dữ liệu liên quan đến yêu cầu, từ ngày tạo, tên cạnh, số sê-ri và phiên bản phần mềm.

Biết được điều này, bạn có thể duyệt qua Giao diện người dùng Orchestrator khi mở các công cụ dành cho nhà phát triển và xem chính xác cách gửi và nhận thông tin. Đây là nền tảng của việc xây dựng một ứng dụng trong Postman hoặc bất kỳ ngôn ngữ lập trình hiện đại nào để trích xuất giá trị bổ sung từ API Orchestrator.

Các thuật ngữ API, REST và RESTful đều mới đối với kỹ thuật mạng, nhưng như bạn đã thấy, bạn đã sử dụng hệ thống RESTful hàng ngày khi duyệt Internet. Vậy REST là gì? REST là viết tắt của Chuyển trạng thái đại diện RE và đây là cách tiếp cận phổ biến nhất để thiết kế và phát triển các ứng dụng mạng. Trở thành RESTful là tuân thủ các nguyên tắc thiết kế REST. Cách tiếp cận này dựa trên mô hình máy khách/máy chủ không trạng thái, trong đó máy khách theo dõi phiên và máy chủ không giữ trạng thái hoặc bối cảnh của máy khách. Và tốt nhất, HTTP là giao thức truyền tải cơ bản được sử dụng phổ biến nhất.

REST ban đầu được thiết kế như một mô hình cho giao thức HTTP. Do đó, hầu hết các API RESTful đều được triển khai qua các phương thức HTTP và sử dụng các động từ phổ biến như GET, PUT và DELETE. Máy khách RESTful kết nối với giao diện, gửi dữ liệu được định dạng—ví dụ: lệnh cấu hình hoặc hiển thị—và thiết bị sẽ phản hồi bằng mã HTTP cũng như dữ liệu được định dạng tùy chọn. Mã HTTP được trả về là phản hồi tiêu chuẩn; ví dụ: 200 = OK, 401 = trái phép, v.v., sẽ thông báo cho khách hàng nếu lệnh thành công. Như được hiển thị bên dưới, để thăm dò một giao diện Edge, phải thực hiện ba yêu cầu:

Những yêu cầu này có thể được viết bằng bất kỳ ngôn ngữ lập trình nào hỗ trợ các yêu cầu API. Sau này trong bài đăng này, chúng ta sẽ sử dụng Postman để trình bày dễ dàng hơn, nhưng bạn có thể sử dụng cURL hoặc Client URL. cURL là một phần của thư viện libcurl và là một phần của bất kỳ bản phân phối Linux phổ biến nào. Nó cung cấp một cách để tương tác với các URL từ giao diện dòng lệnh. Ví dụ, sử dụng cURL, yêu cầu thứ hai ở trên sẽ trông như thế này:

curl –location –request POST ‘https://vco109-usca1.velocloud.net/portal/rest/enterprise/getEnterpriseEdges’ \

–header ‘Loại nội dung: application/json’ \

–header ‘Ủy quyền: Mã thông báo eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblV1aWQiOiI3ZWVjMTlkNC0zNzY0LTQ2MDctYWY1Mi00YjI0MWQ0Y2RiYjciLCJleHAiOjE2NDQ2MzE0NDgwMDAsInV1aWQiOi IyNWM0Y2M5MC0xNTNlLTExZTgtYTk0NC0wNjMyMzA4NzIwZjIiLCJpYXQiOjE2MTMwOTU0NTF9.oJeVnr1iuAqabf5XmcDOE2prieOp8rJriyrHfGLAKEs’ \

–dữ liệu thô ‘{

    “enterpriseId”: 778,

    “với”: [],

    “các trường cần thiết”: [

        “nhận dạng”,

        “Id trang web”,

        “số mô hình”,

        “tên”

    ]

}’

Phương thức này vượt qua ba yếu tố chính:

  1. URL của VCO và phương pháp API sử dụng HTTP POST
  2. Tiêu đề chỉ định phương thức xác thực được sử dụng trong mã thông báo
  3. Một thân phương thức chỉ định dữ liệu cần thiết để trả về (trong trường hợp này là thông tin Edge ID và SiteID)

Phản hồi trả về là dữ liệu có cấu trúc bằng JSON. Đối với ví dụ trước, phương thức sẽ trả về nội dung phản hồi như thế này:

Trạng thái: 200 OK
Thời gian: 73 ms
Kích thước: 1,2 KB

Nội dung phản hồi:

[

    {

        “id”: 17224,

        “siteId”: 14117,

        “modelNumber”: “edge3800”,

        “tên”: “3400-Hub-HA”,

        “isHub”: đúng

    }

]

Bây giờ, ứng dụng của bạn sẽ lưu trữ thông tin trong phần nội dung phản hồi để sử dụng trong yêu cầu API tiếp theo. Dữ liệu được cấu trúc và cho phép trích xuất các giá trị cụ thể bằng bất kỳ ngôn ngữ nào.

Tài liệu API của VMware SD-WAN Orchestrator

Tại thời điểm đăng bài này, có hai API dành cho VMware SD-WAN, Orchestrator V1 và V2. V2 dự kiến ​​phát hành vào giữa năm 2022 và sẽ tương thích về tính năng với V1. Bài đăng trên blog này sử dụng V1 và sẽ tương thích với V2 chỉ với những thay đổi nhỏ. Sau đây là các liên kết đến cả hai phiên bản API:

API dàn nhạc V1 phản hồi phương thức API bằng Cổng thông tin VCO. Cổng thông tin VCO cho phép quản trị viên mạng quản lý cấu hình mạng và thiết bị cũng như truy vấn trạng thái thiết bị và mạng hiện tại hoặc lịch sử. Máy khách API có thể tương tác với Cổng thông qua giao diện REST bằng cách sử dụng các yêu cầu HTTP POST. Giao diện có thể truy cập được thông qua đường dẫn /portal/rest/ base. Điều này có nghĩa là tất cả các phương thức API được liệt kê trong tài liệu đều được thêm vào đường dẫn này. Ví dụ: sử dụng lại cURL, phương thức /event/getEnterpriseEvents sẽ trông như thế này:

cuộn tròn –header ‘Loại nội dung: ứng dụng/json’ –data 

‘{“enterpriseId”:1}’ –cookie cookies.txt -X POST 

https://vco.velocloud.net/portal/rest/event/getEnterpriseEvents

Đối với ví dụ này, tôi sử dụng ba phương pháp. Xem tài liệu V1 để được giải thích và biết thêm chi tiết.

  • Enterprise/getEnterprise – Nhận dữ liệu về doanh nghiệp được chỉ định cho tổ chức của bạn.
  • doanh nghiệp/getEnterpriseEdges – Nhận tất cả các cạnh được liên kết với ID doanh nghiệp.
  • số liệu/getEdgeLinkSeries – Nhận dữ liệu chuỗi thời gian số liệu liên kết cho một cạnh.

Phương thức đầu tiên, Enterprise/getEnterprise, lấy UID được liên kết với tài khoản Orchestrator Enterprise. Cái thứ hai lấy danh sách các cạnh và các chi tiết liên quan của chúng. Phương pháp cuối cùng lấy số liệu liên kết từ các cạnh cụ thể.

Trước khi sử dụng bất kỳ phương pháp nào trong số này, chúng ta hãy thảo luận về xác thực. VMware SD-WAN Orchestrator API V1 hỗ trợ cả xác thực cookie và mã thông báo. Xác thực dựa trên mã thông báo đã trở nên phổ biến trong vài năm qua do sự gia tăng của các ứng dụng một trang, API web và IoT. Một ưu điểm khác của xác thực dựa trên mã thông báo là nó không có trạng thái. Điều này có nghĩa là máy chủ không lưu giữ bản ghi nào người dùng đã đăng nhập, chẳng hạn như cookie. Thay vào đó, mã thông báo được gửi cùng với mọi yêu cầu và được chỉ định trong tiêu đề của yêu cầu.

Tôi thực sự khuyên bạn nên sử dụng xác thực dựa trên mã thông báo và tránh xác thực dựa trên cookie. Việc sử dụng mã thông báo là RESTful và đó là phương thức xác thực duy nhất mà Orchestrator V2 hỗ trợ. Ở phần sau của bài đăng này, tôi sẽ chỉ cho bạn cách lấy mã thông báo API từ Giao diện người dùng của Orchestrator và cách sử dụng mã thông báo cho từng phương thức.

Sử dụng Postman để thử nghiệm API

Postman là một công cụ kiểm tra API giúp đơn giản hóa quy trình làm việc API và cung cấp nền tảng lý tưởng để bắt đầu xây dựng các yêu cầu API. Hãy nhớ rằng API RESTful không có trạng thái, mỗi yêu cầu là một phương thức duy nhất và gánh nặng thuộc về bạn với tư cách là người xây dựng ứng dụng để kết hợp nhiều yêu cầu lại với nhau để tạo ra một ứng dụng hữu ích.

Postman cung cấp khuôn khổ bạn cần để tạo thử nghiệm API. Một số lợi ích của Postman là:

  • Khả năng truy cập – Tất cả những gì bạn cần để tạo các yêu cầu API đầu cuối là ứng dụng Postman. Không cần phải xây dựng môi trường thử nghiệm.
  • Collections – Collection là một nhóm các yêu cầu API riêng lẻ. Mỗi yêu cầu có thể được xử lý để lưu trữ giá trị và chuyển chúng đến yêu cầu API tiếp theo theo bất kỳ thứ tự nào cần thiết.
  • Hợp tác – Có thể nhập và xuất các bộ sưu tập và môi trường, giúp việc chia sẻ tệp trở nên đơn giản.
  • Môi trường – Môi trường là một nhóm các biến. Bạn có thể sử dụng các biến môi trường toàn cục hoặc cụ thể. Ví dụ, các bộ sưu tập SD-WAN cho cùng một môi trường SD-WAN có thể được sử dụng để giảm lỗi của con người.
  • Kiểm tra – điểm kiểm tra có thể giúp xác minh trạng thái phản hồi HTTP hoặc xác thực nội dung phản hồi của yêu cầu.

Trước khi tiếp tục, hãy tải Postman từ www.postman.com . Bạn có thể tạo một tài khoản miễn phí để bắt đầu. Hãy xem Cài đặt và cập nhật từ learning.postman.com để được hỗ trợ thêm. Sau khi cài đặt hoàn tất, hãy dành thời gian tìm hiểu những điều cơ bản về cách điều hướng Postman. Cuối cùng, hãy xem Điều hướng Postman và tập trung vào các chủ đề sau:

  • Tạo bộ sưu tập
  • Tạo không gian làm việc
  • Bộ sưu tập đang chạy
  • Nhập và xuất dữ liệu

Thiết lập người đưa thư

Bây giờ chúng ta đã trình bày những kiến ​​thức cơ bản về API, REST, API của VMware SD-WAN Orchestrator và Postman, hãy cùng xây dựng thứ gì đó. Trong ví dụ này, tôi đã tạo một tập lệnh đo băng thông cơ bản để thăm dò liên kết được sử dụng nhiều nhất theo từng biên trong một giờ qua. Đầu ra được chuyển hướng đến bảng điều khiển Postman. Bộ sưu tập này có thể được sử dụng để giám sát việc sử dụng băng thông và xây dựng báo cáo toàn doanh nghiệp về việc sử dụng băng thông. Dữ liệu này có thể được sử dụng để tăng hoặc giảm băng thông tại các vị trí tương ứng.

Sau khi tự xây dựng ứng dụng, bạn có thể thấy đầu ra của bảng điều khiển như thế này:

Tên Edge: 3400-Hub-HA

Mẫu cạnh: edge3800

ID cạnh: 17224

Thông lượng sử dụng cao nhất trong 60 phút qua là 0,057 Mbps

Để giúp bạn triển khai nhanh hơn, tôi đã bao gồm hai tệp. Tệp bộ sưu tập Postman định nghĩa bộ sưu tập chứa các yêu cầu API, tập lệnh yêu cầu trước và thử nghiệm. Tệp môi trường Postman chứa các biến môi trường cần thiết để hỗ trợ cho bộ sưu tập. Hãy tải xuống cả hai tệp.

Được định dạng JSON, các tệp này ở định dạng văn bản thuần túy. Bạn có thể mở cả hai tệp trong trình soạn thảo văn bản như Nano, TextEdit hoặc Notepad để làm quen hơn với cách Postman cấu trúc dữ liệu bằng JSON. Nhập một bộ sưu tập vào Postman là một nhiệm vụ đơn giản, như được hiển thị bên dưới.

  1. Bấm vào tab Tệp , sau đó chọn Nhập .
  2. Chọn tệp bộ sưu tập đã tải xuống và nhấp vào Mở .
  3. Người đưa thư sẽ mở bộ sưu tập và nó sẽ xuất hiện trong phần Bộ sưu tập :

 

Để nhập các biến môi trường, hãy lặp lại quy trình tương tự. Sau khi quá trình nhập hoàn tất, hãy đảm bảo rằng môi trường được đặt thành VMware SDWAN và xác nhận rằng có hai biến trống là api_key và url . Cung cấp URL của người soạn nhạc nhưng không bao gồm giao thức. Ví dụ: URL của tôi là vco109-usca1.velocloud.net. Nhập URL của bạn vào các trường GIÁ TRỊ BAN ĐẦU và GIÁ TRỊ HIỆN TẠI . Tiếp theo, bạn cần tìm nạp mã thông báo API của mình.

Bạn có thể truy cập API Orchestrator bằng xác thực dựa trên mã thông báo, bất kể chế độ xác thực nào. Sử dụng Giao diện người dùng Orchestrator, hãy vào Quản trị > Quản trị viên và nhấp vào ID đăng nhập của bạn. Trong phần API , nhấp vào Hành động và chọn Mã thông báo API mới . Trong cửa sổ bật lên, hãy hoàn thành các trường và nhấp vào Tạo .

Chọn mã thông báo API trong trường và chọn Hành động > Tải xuống mã thông báo API . Cửa sổ Tải xuống mã thông báo API sẽ hiển thị và bạn có thể sao chép mã thông báo và lưu vào vị trí an toàn.  

LƯU Ý: Hãy sao chép mã thông báo ngay lập tức vì đây là cơ hội duy nhất để xem mã thông báo.

Quay lại Postman và chỉnh sửa các biến môi trường. Sao chép và dán mã thông báo API vào cả cột GIÁ TRỊ BAN ĐẦU và GIÁ TRỊ HIỆN TẠI .

Thế là xong phần thiết lập.

Trước khi chạy toàn bộ bộ sưu tập, hãy đảm bảo rằng các biến môi trường và xác thực của bạn đang hoạt động. Trong Postman, bên dưới Bộ sưu tập , chọn yêu cầu API GetEnterpriseID , sau đó nhấp vào nút Gửi màu xanh lam . Nếu mọi thứ hoạt động chính xác, bạn sẽ thấy phản hồi của cơ thể. Lĩnh vực chúng tôi quan tâm nhất là giá trị id. ID doanh nghiệp của tôi là 778.

Bây giờ hãy nhấp vào tab Tests . Có một đoạn mã nhỏ trích xuất Enterprise ID và lưu trữ nó dưới dạng biến môi trường. Sau đây là đoạn mã Postman để đọc phản hồi nội dung và đặt biến môi trường:

hãy để đáp ứngData  pm.response.json();

chiều.môi trường. set (“enterpriseId”,responseData.id);

Mở màn hình bật lên biến môi trường để hiển thị biến mới có tên EnterpriseID với giá trị hiện tại được đặt thành ID doanh nghiệp của bạn.

Nhiệm vụ này minh họa cốt lõi của bất kỳ ứng dụng API nào được phát triển trong Postman. Mỗi yêu cầu chạy các bài kiểm tra trước yêu cầu và sau yêu cầu. Mỗi yêu cầu con trong bộ sưu tập thực hiện điều này. Khám phá cả phần trước yêu cầu và phần kiểm tra cho mỗi yêu cầu để xem chính xác những gì đang xảy ra.

Chạy một bộ sưu tập Postman

Sau khi bạn đã xác minh rằng cả bộ sưu tập và biến môi trường đều hoạt động, hãy thực hiện toàn bộ bộ sưu tập. Chọn mục bộ sưu tập Bandwidth Utilization từ phía bên trái và nhấp vào Run ở phía bên phải màn hình.

Từ tab Runner , nhấp vào nút Run Bandwidth Usage màu xanh lam . Khi bộ sưu tập chạy, tất cả đầu ra sẽ được chuyển hướng đến bảng điều khiển Postman. Mở bảng điều khiển bằng cách nhấp vào nút Bảng điều khiển ở cuối cửa sổ Người đưa thư .

Bộ sưu tập chạy hai yêu cầu API đầu tiên để lấy ID doanh nghiệp và danh sách ID Edge. Sau đó, bộ sưu tập lặp lại phương thức /metrics/getEdgeLinkSeries cho từng ID Edge, tính toán thông lượng cao nhất cho Edge trong 60 phút qua.

Phần kết luận

Mã thú vị nhất cho bộ sưu tập này được đính kèm với yêu cầu GetEdgeBandwidth. Bộ sưu tập bao gồm cả mã yêu cầu trước và mã kiểm tra. Từ đây, bạn có thể thêm và thay đổi mã cho phù hợp với nhu cầu của mình. Ví dụ: bạn có thể tổng hợp mức sử dụng cao nhất trên nhiều liên kết WAN hoặc bạn có thể giải quyết việc xử lý lỗi khi một cạnh ở trạng thái hoạt động một phần. Thay đổi đầu ra để ghi vào tệp văn bản thuần túy, được định dạng bằng JSON hoặc CSV. Hãy cân nhắc việc tự động hóa tất cả những điều này và chuyển đổi tập lệnh thành Python để bạn có thể kéo dữ liệu trực tiếp vào nền tảng giám sát hiện có của tổ chức mình.

Hãy nhớ rằng API chỉ là một cơ chế được sử dụng để phần mềm máy tính trên một thiết bị giao tiếp với phần mềm máy tính trên thiết bị khác. Ngày nay, API được sử dụng gần như ở mọi nơi trên Internet và cuối cùng chúng cũng nhận được sự quan tâm xứng đáng từ các nhà cung cấp mạng như VMware và Dell Technologies. Chúng ta sẽ sớm thấy API trở thành phương tiện chính để quản lý tất cả các thiết bị mạng.