Как скормить вывод сценария оболочки в кафку?

Я пытаюсь передать некоторые данные 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

,,,,

В официальных документах они упоминают традиционный способ запуска производителя кафки, запуска потребителя кафки и в терминале вводят некоторые данные о производителе, которые будут показаны потребителю. Хорошо. За работой.

Здесь они показывают, как ввести файл для производителя кафки. Имейте в виду, только один файл, а не несколько файлов.

Вопрос:

Как я могу передать вывод сценария оболочки в брокер kakfa?

Например, сценарий оболочки:

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

Я не могу найти документацию или статью, где они упоминают, как это сделать. Любая идея? Спасибо!

1 ответ

Ну, основываясь на ссылке, которую вы дали о том, как использовать производитель оболочки 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
Другие вопросы по тегам