You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 APIM 4.2无安全API无法生成ELK分析指标问题求助

问题修复与匿名请求追踪方案(WSO2 APIM 4.2)

一、ELK指标发布失败的修复方案

报错核心原因是匿名访问时无userName字段,ELK指标事件构建器的非空验证阻止了日志发布,以下是两种解决方式:

1. 允许空userName直接发布

修改<APIM_HOME>/repository/conf/deployment.toml,添加配置跳过userName非空校验:

[apim.analytics.publisher.elk]
allow_empty_username = true

配置生效后,匿名请求的指标数据会正常发布到ELK,同时生成apim_metrics.log日志。

2. 为匿名请求设置默认用户名

如果不想关闭校验,可通过自定义中介给匿名请求注入默认用户名:
在API的入流序列中添加以下中介代码:

<property name="api.ut.userName" value="anonymous" scope="default" type="STRING"/>

该属性会被指标收集器识别为userName字段,解决缺失问题。

二、匿名访问请求的其他追踪方式

除修复ELK指标发布外,还可通过以下方式直接追踪匿名请求:

1. 启用网关访问日志

修改<APIM_HOME>/repository/conf/log4j2.properties,开启HTTP访问日志:

logger.http-access-log.name = org.apache.synapse.transport.http.access.HttpAccessLog
logger.http-access-log.level = INFO
logger.http-access-log.additivity = false
logger.http-access-log.appenderRef.CARBON_CONSOLE.ref = CARBON_CONSOLE
logger.http-access-log.appenderRef.CARBON_LOGFILE.ref = CARBON_LOGFILE

访问日志会记录所有请求的客户端IP、请求路径、响应状态等信息,默认输出到carbon.log中。

2. 添加自定义日志中介

在API的入流/出流序列中插入日志中介,记录匿名请求的关键信息:

<log level="full">
    <property name="request_type" value="anonymous_access"/>
    <property name="client_ip" expression="get-property('axis2','REMOTE_ADDR')"/>
    <property name="api_path" expression="get-property('api.ut.apiPath')"/>
</log>

此配置会在carbon.log中生成带自定义标记的日志,便于快速筛选匿名请求。

内容的提问来源于stack exchange,提问作者Arviena J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:35:37