1

我正在尝试将一些 netflow 数据输入 kafka。我有一些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 producer 输入文件。请注意,只有一个文件,而不是多个文件。

问题是:

如何将 shell 脚本的输出输入 kakfa 代理?

例如,shell 脚本是:

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

我找不到他们提到如何执行此操作的任何文档或文章。任何想法?谢谢!

4

1 回答 1

2

好吧,根据您提供的有关如何将 shell kafka 生产者与输入文件一起使用的链接,您可以对输出执行相同操作。您可以将输出重定向到文件,然后使用生产者。

请注意,我使用>>它是为了附加到文件而不是覆盖它。

例如:

#!/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
于 2016-01-26T09:43:41.743 回答