Logging-RocketMQ插件

    技术方案

    • 架构图

    • 在 网关里面进行 Logging 全程异步采集、异步发送

    2.在 shenyu-admin--> 基础配置 —> 插件管理-> loggingRocketMQ ,配置rocketMQ参数,并设置为开启。

    2.1开启插件,并配置rocketmq,配置如下:

    Logging-RocketMQ插件 - 图2

    • 各个配置项说明如下:

    除了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大小
    rpcTyperpc类型
    status响应码
    upstreamIp上游(提供服务的程序)IP
    upstreamResponseTime上游(提供服务的程序)响应请求的耗时(毫秒ms)
    userAgent请求的用户代理
    host请求的host
    module请求的模块
    path请求的路径path
    traceId请求的链路追踪ID需要接入链路追踪插件,如skywalking,zipkin

    由于各个日志平台有差异,如存储可用clickhouse,ElasticSearch等待,可视化有自研的或开源的Grafana、Kibana等。
    Logging-RocketMQ插件利用RocketMQ进行生产和消费解耦,同时以json格式输出日志,消费和可视化需要用户结合自身情况选择不同的技术栈来实现。

    面板展示