1. 概述
1.1 插件名称
- Logging-RabbitMQ Plugin
1.2 适用场景
- 通过rabbitmq收集网关http请求日志,通过其他应用消费rabbitmq消息,并且对日志进行分析。
1.3 插件功能
Apache ShenYu网关接收客户端请求,向服务端转发请求,并将服务端结果返回给客户端.网关可以记录下每次请求对应的详细信息,
列如: 请求时间、请求参数、请求路径、响应结果、响应状态码、耗时、上游IP、异常信息等待.
Logging-RabbitMQ插件便是记录访问日志并将访问日志发送到RabbitMQ集群的插件.
1.4 插件代码
-
核心模块
shenyu-plugin-logging-rabbitmq. -
核心类
org.apache.shenyu.plugin.logging.rabbitmq.LoggingRabbitmqPlugin -
核心类
org.apache.shenyu.plugin.logging.rabbitmq.client.RabbitmqLogCollectClient
1.5 添加自哪个shenyu版本
- ShenYu 2.5.0
1.6 技术方案
-
架构图

-
在
Apache ShenYu网关里面进行Logging全程异步采集、异步发送 -
日志平台通过消费
rabbitmq集群中的日志进行落库,再使用Grafana、Kibana或者其它可视化平台展示
2. 如何使 用插件
2.1 插件使用流程图

2.2 导入pom
- 在网关的
pom.xml文件中添加Logging-rabbitmq的依赖。
<!--shenyu logging-rabbitmq plugin start-->
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-plugin-logging-rabbitmq</artifactId>
<version>${project.version}</version>
</dependency>
<!--shenyu logging-rabbitmq plugin end-->
2.3 启用插件
- 在
shenyu-admin--> 基础配置 --> 插件管理->loggingRabbitMQ,配置rabbitMQ参数,并设置为开启。
2.4 配置插件
2.4.1 开启插件,并配置rabbitmq,配置如下

- 各个配置项说明如下:
| 配置项 | 类型 | 说明 | 备注 |
|---|---|---|---|
| host | type | IP | 必须 |
| port | type | 端口 | 必须 |
| username | String | 用户名 | 可选 |
| password | String | 密码 | 可选 |
| virtualHost | String | 虚拟主机 | 必须,默认/ |
| exchangeType | String | 交换机类型 | 必须,默认direct |
| exchangeName | String | 交换机名称 | 必须 |
| queueName | String | 队列名称 | 必须 |
| routingKey | String | 路由键 | 必须 |
| durable | Boolean | 持久化 | 必须,默认true |
| exclusive | Boolean | 是否为排他队列 | 必须,默认false |
| autoDelete | String | 自动删除 | 必须,默认false |
| args | String | rabbitmq参数,例如:{"x-delay":"1000"},表示延时队列,单位ms |