почему обязательно по UDP?
ну пишите модуль для nginx
и receiver на golang
либо никакого UDP
а пост обработка логи в JSON в syslog/файл
и через какой нибудь
https://vector.dev в clickhouse сливайте
в клике аггрегируйте через Materialized View
и на основную таблицу TTL настройте чтобы не пухла и старые данные стирала...