gpt4 book ai didi

linux - 如何持续将嗅探到的数据包提供给kafka?

转载 作者:太空狗 更新时间:2023-10-29 11:17:59 26 4
gpt4 key购买 nike

目前我正在从本地 wlan 接口(interface)嗅探数据包,例如:

sudo tshark > sampleData.pcap

但是,我需要将这些数据提供给kafka。

目前,我有一个kafka生产者脚本producer.sh :

../bin/kafka-console-producer.sh --broker-list localhost:9092 --topic 'spark-kafka'

并像这样将数据提供给kafka:

producer.sh < sampleData.pcap

sampleData.pcap中我有预先抓取的IP包信息。

但是,我想自动化这个过程,就像这样:

sudo tshark > http://localhost:9091
producer.sh < http://localhost:9091

这显然只是一个伪算法。我想做的是,将嗅探数据发送到一个端口,让 kafka 连续读取它。我不希望 kafka 连续读取文件,因为这意味着从单个文件进行大量读/写操作会导致效率低下。

我在互联网上搜索并遇到了 kafka-connect 但我找不到任何有用的文档来实现这样的东西。

实现此类功能的最佳方式是什么?

谢谢!

最佳答案

使用 netcat

无需编写服务器,您可以使用 netcat(并告诉您的脚本监听标准输入):

shell1> nc -l 8888 | ./producer.sh
shell2> sudo tshark -l | nc 127.1 8888

tshark 的 -l 防止它过度缓冲输出(在每个数据包后刷新)。


使用命名管道

您还可以使用命名管道将 tshark 输出传输到您的第二个进程:

shell1> mkfifo /tmp/tsharkpipe
shell1> tail -f -c +0 /tmp/tsharkpipe | ./producer.sh
shell2> sudo tshark -l > /tmp/tsharkpipe

关于linux - 如何持续将嗅探到的数据包提供给kafka?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com