2021-10-23 22:44:20 +02:00
|
|
|
#!/usr/bin/bash
|
|
|
|
|
|
|
|
|
|
# Pipe Docker logs from a Factorio server to a Kafka topic
|
|
|
|
|
|
2022-01-09 11:04:15 +01:00
|
|
|
echo "Kafkatorio-Pipe version $KAFKATORIO_VERSION"
|
2021-10-23 22:44:20 +02:00
|
|
|
echo "Piping logs from $FACTORIO_SERVER_CONTAINER_NAME to $KAFKA_HOST"
|
|
|
|
|
|
|
|
|
|
trap endProcess SIGINT
|
|
|
|
|
endProcess() {
|
|
|
|
|
echo "Exiting Factorio Events Kafka Pipe"
|
|
|
|
|
exit
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-25 23:22:23 +02:00
|
|
|
# some random ID, to use as a message key
|
|
|
|
|
INSTANCE_ID=$(cat /proc/sys/kernel/random/uuid)
|
|
|
|
|
|
2021-10-23 22:44:20 +02:00
|
|
|
while :; do
|
|
|
|
|
docker logs --tail 0 -f "$FACTORIO_SERVER_CONTAINER_NAME" |
|
2022-01-08 14:02:30 +01:00
|
|
|
sed -n -e 's/^KafkatorioPacket: //p' |
|
2022-01-09 17:46:17 +01:00
|
|
|
kcat -P -T \
|
|
|
|
|
-b "$KAFKA_HOST" \
|
2022-04-19 23:25:10 +02:00
|
|
|
-t kafkatorio.src.server-log \
|
2022-01-09 17:46:17 +01:00
|
|
|
-k "$INSTANCE_ID" \
|
|
|
|
|
-H "KAFKA-PIPE-VERSION=$KAFKATORIO_VERSION"
|
2021-10-23 22:44:20 +02:00
|
|
|
|
|
|
|
|
echo "Error - retrying in 10 seconds"
|
|
|
|
|
sleep 10
|
2021-10-25 23:22:23 +02:00
|
|
|
|
2021-10-23 22:44:20 +02:00
|
|
|
done
|