I actually work for a big company in France et we aim to ingest the syslog logs (format rfc5424) of all our servers (nearly 1400 servers) in kafka through NIFI. We choose NIFI because we want to route logs to their associated topics depending of the appname found.
So we will have a lot of small flowfiles.
Actually, we encounter performance limitations : we can't ingest more than 5k msg/s and we want to ingest more than 50k msg/s. Of course, if possible, we want to process as most as possible.
We have : listenSyslog (batch size 1 + parsing enabled) => RouteOnAttribute (make a lookup for getting the target topic from appname) => PublishKafka.
Can you give me some advices please?
I'm thinking about this workflow : ListenSyslog (batchsize 1000 + parsing disabled) => PartitionRecord (grokreader to get appname and convert to avro, grouping on appname) => RouteRecord (with lookup embedded, for routing empty appname or topic not found) => PublishKafkaRecord (i understood that it splits a flowfile with multiples records to 1 message per record).
Thank you for your help.
Happy new year to all!