如何将shell脚本输出提供给kafka?

xeufq47z  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(546)

我正在尝试向Kafka提供一些netflow数据。我有一些 netflow.pcap 我喜欢的文件 tcpdump -r netflow.pcap 得到这样的结果:

14:48:40.823468 IP abts-kk-static-242.4.166.122.airtelbroadband.in.35467 > abts-kk-static-126.96.166.122.airtelbroadband.in.9500: UDP, length 1416
14:48:40.824216 IP abts-kk-static-242.4.166.122.airtelbroadband.in.35467 > abts-kk-static-126.96.166.122.airtelbroadband.in.9500: UDP, length 1416

. . . .
在官方文档中,他们提到了传统的启动Kafka制作者、启动Kafka消费者的方式,并在终端中输入一些关于制作者的数据,这些数据将显示在消费者中。很好。工作。
在这里,他们展示了如何输入一个文件到Kafka生产者。请注意,只有一个文件,而不是多个文件。
问题是:
如何将shell脚本的输出提供给kakfa代理?
例如,shell脚本是:


# !/bin/bash

FILES=/path/to/*
for f in $FILES
do
  tcpdump -r netflow.pcap
done

我找不到任何文件或文章,他们提到如何做到这一点。你知道吗?谢谢!

elcex8rz

elcex8rz1#

好吧,根据你给出的关于如何将shell kafka producer与输入文件一起使用的链接,你可以对输出执行同样的操作。您可以将输出重定向到文件,然后使用生产者。
注意我用过的 >> 以便附加到文件而不是覆盖它。
例如:


# !/bin/bash

FILES=/path/to/*
for f in $FILES
do
  tcpdump -r netflow.pcap >> /tmp/tcpdump_output.txt
done

kafka-console-produce.sh --broker-list localhost:9092 --topic my_topic
--new-producer < /tmp/tcpdump_output.txt

相关问题