Sends any message received from a specified UDP port to a specified kafka topic. We use it to push syslog messages to kafka.
udp-kafka-bridge-assembly-0.1.jar
To listen on port 10514
and use mytopic
on a local broker just run:
java -jar udp-kafka-bridge-assembly-0.1.jar
To modify default values you may use java system properties such as:
java \
-Dbind.host=0.0.0.0 \
-Dbind.port=10514 \
-Dtopic=mytopic \
-Dkafka.metadata.broker.list=localhost:9092 \
-Dkafka.serializer.class=kafka.serializer.StringEncoder \
-Dkafka.compression.codec=1 \
-Dkafka.producer.type=async \
-jar udp-kafka-bridge-assembly-0.1.jar
Or create a config file like that:
bind.host = "0.0.0.0"
bind.port = 10514
topic = mytopic
kafka {
metadata.broker.list = "localhost:9092"
producer.type = "async"
serializer.class = "kafka.serializer.StringEncoder"
compression.codec = "1"
}
Name it like bridge.conf
and run it with:
java -Dconfig.file=bridge.conf -jar udp-kafka-bridge-assembly-0.1.jar
Kafka producer settings are not limited with those. You can use any of them by prefixing with kafka.
for system properties or placing inside kafka{}
for config file as shown above.
Project uses logback for logging and default place for log files is logs/
under cwd. If you'd like to change that you should provide another logback.xml
to classpath.
You'll need a recent version of sbt installed.
git clone https://github.com/agaoglu/udp-kafka-bridge.git
cd udp-kafka-bridge
sbt assembly
APLv2