データ (tshark でスニッフィングされたパケット) を kafka ブローカー/コンシューマーに継続的に送信しようとしています。
私が従った手順は次のとおりです。
1.飼育係の開始:
kafka/bin/zookeeper-server-start.sh ../kafka//config/zookeeper.properties
2.カフカサーバーを起動しました:
kafka/bin/kafka-server-start.sh ../kafka/config/server.properties
3. kafka コンシューマを開始しました:
kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic \
'my-topic' --from-beginning
4.次の Python スクリプトを作成して、盗聴したデータを消費者に送信します。
from kafka import KafkaProducer
import subprocess
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('my-topic', subprocess.check_output(['tshark','-i','wlan0']))
しかし、これはプロデューサー端末と出力にとどまります:
Capturing on 'wlan0'
605
^C
コンシューマーには何も転送されません。
pyshark
Pythonでtsharkを実装するために使用できることを知っています:
import pyshark
capture = pyshark.LiveCapture(interface='eth0')
capture.sniff(timeout=5)
capture1=capture[0]
print capture1
しかし、キャプチャしたパケットをプロデューサーからコンシューマーに継続的に送信する方法がわかりません。何かアドバイス?
ありがとうございました!