通过Kafka-Logger插件收集流量进行漏洞扫描

通过Kafka-Logger插件收集流量进行漏洞扫描

方案

可以通过APISIX kafka-logger 插件将日志作为 JSON 对象推送到 Apache Kafka 集群中,消费Kafka里的数据格式化后添加到MySQL。

方案详情

1、登录APISIX,启用内置的kafka-logger 插件:

2、配置插件:

配置参考:https://apisix.apache.org/zh/docs/apisix/plugins/kafka-logger/

关键字段解释:
batch_max_size:数据首先写入缓冲区。当缓冲区超过 batch_max_size 或 buffer_duration 设置的值时,则会将数据发送到 Kafka 服务器并刷新缓冲区。设置为1时,每次写入到kafka一条流量数据。
brokers:需要推送的 Kafka 的 broker 列表。
cluster_name:Kafka 集群的名称,当有两个及以上 Kafka 集群时使用。只有当 producer_type 设为 async 模式时才可以使用该属性。
include_req_body:当设置为 true 时,包含请求体。注意:如果请求体无法完全存放在内存中,由于 NGINX 的限制,APISIX 无法将它记录下来。
include_resp_body:当设置为 true 时,包含响应体。
producer_batch_size:对应 lua-resty-kafka 中的 batch_size 参数,单位为字节。
producer_type:生产者发送消息的模式。

以下是本地配置,满足现有需求:

json 复制代码
{
  "_meta": {
    "disable": true
  },
  "batch_max_size": 1,
  "brokers": [
    {
      "host": "10.200.0.228",
      "port": 9092
    }
  ],
  "buffer_duration": 60,
  "cluster_name": 1,
  "inactive_timeout": 5,
  "include_req_body": true,
  "include_resp_body": true,
  "kafka_topic": "secapisixtest",
  "max_retry_count": 0,
  "meta_format": "default",
  "name": "kafka logger",
  "producer_batch_num": 1,
  "producer_batch_size": 1048576,
  "producer_max_buffering": 50000,
  "producer_time_linger": 1,
  "producer_type": "async",
  "required_acks": 1,
  "retry_delay": 1,
  "timeout": 3
}

3、点击启用并提交:

4、自此,就已经完成了对APISIX Kafka-Logger插件的配置,Kafka中也有了预期的数据:

5、后续可以消费Kafka中的数据入新的MySQL库,也可以用现有MySQL,在00:00 - 8:00 限制并发写MySQL,不影响工作时间使用。

稳定性测试

场景一、当Kafka挂掉时,是否影响测试环境稳定性:

1、当开启 kafka-logger 插件,并配置正确Kafka地址时,请求接口可正常请求,延迟在7 millis左右:

2、给kafka-logger 插件配置一个不存在的kafka地址,请求接口可正常请求,延迟在7 millis左右,符合预期:

回退方案

理论 Kafka-Logger插件作为APISIX原生插件不会影响到测试环境,若出现问题,关闭插件即可(大约占用1分钟):

相关推荐
ACP广源盛1392462567311 小时前
GSV5600@ACP#多接口协议转换芯片,物理 AI 便携终端的互联核心
大数据·人工智能·分布式·嵌入式硬件·spark
极客先躯16 小时前
高级java每日一道面试题-2026年02月12日-实战篇[Docker]-什么是容器的 Seccomp 配置?如何自定义?
java·运维·分布式·docker·容器·自动化·文件
Francek Chen16 小时前
【大数据处理与分析】MapReduce:06 MapReduce编程实践
大数据·hadoop·分布式·mapreduce
小马爱打代码16 小时前
Kafka消息队列监控:Topic积压、吞吐量、Broker负载及消费者组全观测
分布式·kafka
轻口味16 小时前
轻规划鸿蒙开发实战10:分布式数据同步深度博弈,UserId 隔离与并发数据冲突消解机
分布式·华为·harmonyos·鸿蒙
Solis程序员16 小时前
Raft:分布式系统的定海神针
java·分布式·kafka·rabbitmq·agent·raft
我是一颗柠檬17 小时前
【Java项目技术亮点】Leaf号段模式双Buffer优化
java·开发语言·分布式·后端·架构
芒鸽17 小时前
HarmonyOS 分布式开发实战:设备协同、数据共享与跨设备迁移
分布式·wpf·harmonyos
省四收割者17 小时前
从硬件中断到分布式协程:全景解构高并发机制与 C / Golang 的巅峰对决
c++·分布式·嵌入式硬件·golang
知识分享小能手17 小时前
Hadoop学习教程,从入门到精通, HBase 分布式数据库 — 完整知识点与案例代码(8)
数据库·hadoop·分布式