How to continuously feed sniffed packets to kafka?

前端 未结 4 1434
清酒与你
清酒与你 2021-01-21 04:56

Currently I am sniffing packets from my local wlan interface like :

sudo tshark > sampleData.pcap

However, I need to feed this data to kafka.

相关标签:
4条回答
  • 2021-01-21 05:05

    With netcat

    No need to write a server, you can use netcat (and tell your script to listen on the standard input):

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

    The -l of tshark prevents it from buffering the output too much (flushes after each packet).


    With a named pipe

    You could also use a named pipe to transmit tshark output to your second process:

    shell1> mkfifo /tmp/tsharkpipe
    shell1> tail -f -c +0 /tmp/tsharkpipe | ./producer.sh
    shell2> sudo tshark -l > /tmp/tsharkpipe
    
    0 讨论(0)
  • 2021-01-21 05:07

    Another option would be to use Apache NiFi. With NiFi you can execute commands and pass the output to other blocks for further processing. Here you could have NiFi execute a tshark command on the local host and then pass the output to Kafka.

    There is an example here which should demonstrate this type of approach in slightly more detail.

    0 讨论(0)
  • 2021-01-21 05:16

    If you use Node, you can use child_process and kafka_node to do it. Something like this:

    var kafka = require('kafka-node');
    var client = new kafka.Client('localhost:2181');
    var producer = new kafka.Producer(client);
    
    var spawn = require('child_process').spawn;
    var tshark = spawn('sudo', ['/usr/sbin/tshark']);
    
    tshark.stdout.on('data', (data) => {
      producer.send([
        {topic: 'spark-kafka', messages: [data.split("\n")]}
      ], (err,result) => { console.log("sent to kafka")});
    });
    
    0 讨论(0)
  • 2021-01-21 05:29

    I think you can either

    • create a tiny server that connects to kafka ant listens to a port
    • use the kafka-file connector and append all your data to that file. http://kafka.apache.org/documentation.html#quickstart_kafkaconnect
    0 讨论(0)
提交回复
热议问题