API Logging and Gateway Monitoring
Ghi Nhận API
Khi chính sách "stdout-log" được áp dụng và triển khai cho mỗi API trong bảng điều khiển APIM, các nhật ký API được lưu trữ trong kho lưu trữ Ghi Nhận ZCP.
Cách xem Nhật Ký API
- Đăng nhập vào bảng điều khiển Cloud ZCP > đi đến màn hình [Quản trị viên Hệ thống] > nhấp vào menu [Ghi Nhận]
- Trong Kibana, nhấp vào biểu tượng người dùng ở góc trên bên phải, nhấp vào Drop Down > Chuyển đổi người dùng > Chọn từ tùy chỉnh > apim_tenant
- Menu [Khám Phá]: Tìm kiếm dữ liệu Nhật Ký API (chọn chỉ mục xxxx.apim*) và sử dụng + Thêm Bộ Lọc:
- kubernetes.container_name: proxy
- api_id: tồn tại
- Bộ lọc để phân biệt các cụm: kubernetes.namespace_labels.cluster: xxxxxx-prd (tùy chọn)
- Menu [Khám Phá]: Kiểm tra chi tiết Nhật Ký API
{
"_index": "xxxx.apim.xxxxx-prd.apim-xxxx.xx.xx",
"_id": "xxxxxxxxxxxxxx",
"_score": 1,
"_source": {
"@timestamp": "dd mm yyyy hh:mm:ss.sssZ",
"log": "{\"space_name\":\"xxxxxxx\",\"request_uri\":\"/path/to/api\",\"request_method\":\"POST\",\"duration\":xx,\"api_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\"response_status\":200,\"api_name\":\"xxxxxx\",\"response_size\":xxx,\"request_size\":xxx,\"start_at\":xxxxxxxxxxxxxxx,\"duration_kong\":0,\"duration_proxy\":xx,\"space_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}",
"logtag": "F",
"stream": "stdout",
"time": "dd mm yyyy hh:mm:ss.sss+hh:mm",
"topic": "kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log",
"space_name": "xxxxxxx",
"request_uri": "/path/to/api",
"request_method": "POST",
"duration": xx,
"api_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"response_status": 200,
"api_name": "xxxxxx",
"response_size": xxx,
"request_size": xxx,
"start_at": xxxxxxxxxxxxxxx,
"duration_kong": 0,
"duration_proxy": xx,
"space_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"kubernetes": {
"container_name": "xxxx",
"namespace_name": "xxxx",
"pod_name": "xxxx-xxxx-xxxx-xxxx",
"container_image": "xxxxxx",
"container_image_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"pod_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"pod_ip": "xxx.xxx.xxx.xxx",
"host": "xxxxxx",
"labels": {
"app": "xxxxxx",
"app_kubernetes_io/component": "xxxx",
"app_kubernetes_io/instance": "xxxxxx",
"app_kubernetes_io/managed-by": "Helm",
"app_kubernetes_io/name": "xxxx",
"app_kubernetes_io/version": "x.x",
"helm_sh/chart": "xxxx-x.x.x",
"pod-template-hash": "xxxxxxxx",
"security_istio_io/tlsMode": "istio",
"service_istio_io/canonical-name": "xxxx",
"service_istio_io/canonical-revision": "x.x",
"version": "x.x"
},
"master_url": "https://xxx.xxx.xxx.xxx:xxx/api",
"namespace_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"namespace_labels": {
"cloudzcp_io/deploygroup": "xxxxxx",
"cloudzcp_io/deploygroup-cluster": "xxxxxx-prd",
"cloudzcp_io/managed-by": "xxxx",
"cloudzcp_io/project": "xxxx",
"cloudzcp_io/realm": "xxxxxx",
"cloudzdb_io/zdb-system": "true",
"cluster": "xxxxxx-prd",
"istio-injection": "enabled",
"kubernetes_io/metadata_name": "xxxx",
"project": "xxxx",
"realm": "xxxxxx"
}
},
"docker": {
"container_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"tag": "projectPlain.project.kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log"
},
"fields": {
"@timestamp": [
"dd mm yyyy hh:mm:ss.sssZ"
],
"time": [
"dd mm yyyy hh:mm:ss.sssZ"
]
- [Dashboard] Menu: Kiểm tra Bảng điều khiển APIM, được phân loại theo các môi trường (DEV, STG, PRD).

### Mô tả Bảng điều khiển \{#dashboard-description}
- Tổng số cuộc gọi API, Tổng số cuộc gọi thành công, Tổng số cuộc gọi thất bại và Trạng thái Thành công/Thất bại:
Số lượng thất bại có thể bao gồm các lỗi không nghiêm trọng như 401, 499, mà không nhất thiết là lỗi nghiêm trọng từ ứng dụng thực tế. Do đó, điều quan trọng là cũng phải kiểm tra mã trạng thái (Trạng thái Thành công/Thất bại).

- 5 cuộc gọi API hàng đầu - Biểu đồ cột, Bảng:
Bạn có thể xem trạng thái của các API được gọi chủ yếu trong quá trình kiểm tra hiệu suất.

- 5 độ trễ phản hồi API hàng đầu:
- Hiển thị các API có độ trễ phản hồi chậm khi được gọi.
- Độ trễ phản hồi Gateway: Độ trễ xảy ra tại gateway.
- Độ trễ phản hồi Backend: Độ trễ trong phản hồi từ ứng dụng backend.
- Độ trễ phản hồi API: Tổng độ trễ, kết hợp độ trễ phản hồi gateway và backend.
- Vì tất cả các giá trị độ trễ phản hồi được đo bằng mili giây (ms), một độ trễ 100ms chỉ là 0.1 giây, điều này không được coi là chậm đáng kể. Thông thường, thời gian phản hồi khoảng 1000ms (1 giây) hoặc hơn được coi là chậm.

- Kiểm tra nhật ký thất bại:
Người dùng có thể kiểm tra nhật ký của các cuộc gọi API mà mã trạng thái không phải là 200.

- Nhật ký lỗi Kong Gateway:
Bạn có thể kiểm tra nhật ký lỗi xảy ra trong Kong Gateway. Sử dụng lỗi, redis làm bộ lọc nhật ký.

[Visualize] menu: Biểu đồ tùy chỉnh APIM có thể được quản lý.

## Giám sát API Gateway \{#api-gateway-monitoring}
- Đăng nhập vào bảng điều khiển Cloud ZCP > Đi đến màn hình [Quản trị viên hệ thống] > nhấp vào menu [Giám sát] > nhấp vào nút [Giám sát nâng cao]
- Grafana > ID người dùng ở góc trên bên trái > chọn admin@localhost
- Bảng điều khiển > Duyệt > Bảng điều khiển APIM
Chỉ số Tài nguyên Cổng API
- Trang chủ > Bảng điều khiển > Bảng điều khiển APIM > CỔNG APIM
- Cụm, Tên Kong, Dịch vụ Kong, Đường dẫn Kong
Chỉ số Tài nguyên Cổng API. v2
Phiên bản với các chỉ số chi tiết hơn của cổng.
- Trang chủ > Bảng điều khiển > Bảng điều khiển APIM > APIM > CỔNG V2
- Cụm, Tên Kong, Dịch vụ Kong, Đường dẫn Kong, Triển khai, Pod
Hướng dẫn Mẫu Phương trình Tích lũy Dữ liệu Giám sát/Ghi log APIM
Khối lượng dữ liệu ghi log APIM
Nhật ký API APIM:
- Tần suất: Bất cứ lúc nào.
- Khối lượng dữ liệu đơn: 2KB + Kích thước thân HTTP.
- Quy mô thu thập dữ liệu hàng tháng:
- Ghi log với thân: Khi được đặt thành Đúng
- Giả định: Kích thước thân trung bình Assuming 10KB với 3000 cuộc gọi mỗi phút (50 cuộc gọi mỗi giây)
- (2 KB + 10 KB) * 3000 cuộc gọi * 60 phút * 24 giờ * 30 ngày = 1555 GB
- Ghi log với thân: Khi đặt thành Sai
- Giả định: Với kích thước thân trung bình là 0 KB và 3000 cuộc gọi mỗi phút (50 cuộc gọi mỗi giây)
- (2 KB + 0 KB) * 3000 cuộc gọi * 60 phút * 24 giờ * 30 ngày = 259 GB
- Ghi log với thân: Khi được đặt thành Đúng
Khối lượng dữ liệu giám sát APIM
Chỉ số Kong GW (Độ trễ, Kết nối, v.v.)
- Chu kỳ: 15s (mặc định)
- Khối lượng dữ liệu đơn: 20KB
- Quy mô thu thập dữ liệu hàng tháng: 20KB * 4 (4 lần mỗi phút) * 60 phút * 24 giờ * 30 ngày = 3.5 GB