Logging-RocketMQ插件
技术方案
架构图
在 网关里面进行
Logging
全程异步采集、异步发送
2.在 shenyu-admin
--> 基础配置 —> 插件管理-> loggingRocketMQ
,配置rocketMQ参数,并设置为开启。
2.1开启插件,并配置rocketmq,配置如下:
- 各个配置项说明如下:
除了topic、namesrvAddr, producerGroup其它都是可选,大部分情况下只需要配置这3项就可以了。
2.2 配置选择器和规则器
Logging信息
采集的access log的字段如下:
字段名称 | 含义 | 说明 | 备注 |
---|---|---|---|
clientIp | 客户端IP | ||
timeLocal | 请求时间字符串, 格式:yyyy-MM-dd HH:mm:ss.SSS | ||
method | 请求方法(不同rpc类型不一样,http类的为:get,post等待,rpc类的为接口名称) | ||
requestHeader | 请求头(json格式) | ||
responseHeader | 响应头(json格式) | ||
queryParams | 请求查询参数 | ||
requestBody | 请求Body(二进制类型的body不会采集) | ||
requestUri | 请求uri | ||
responseBody | 响应body | ||
responseContentLength | 响应body大小 | ||
rpcType | rpc类型 | ||
status | 响应码 | ||
upstreamIp | 上游(提供服务的程序)IP | ||
upstreamResponseTime | 上游(提供服务的程序)响应请求的耗时(毫秒ms) | ||
userAgent | 请求的用户代理 | ||
host | 请求的host | ||
module | 请求的模块 | ||
path | 请求的路径path | ||
traceId | 请求的链路追踪ID | 需要接入链路追踪插件,如skywalking,zipkin |
由于各个日志平台有差异,如存储可用clickhouse,ElasticSearch等待,可视化有自研的或开源的Grafana、Kibana等。
Logging-RocketMQ插件利用RocketMQ进行生产和消费解耦,同时以json格式输出日志,消费和可视化需要用户结合自身情况选择不同的技术栈来实现。