Em vez disso, parece que você pode querer procurar algum tipo de banco de dados para armazenar seus registros.
Uma possibilidade pode ser usar a pilha ELK:
- Elasticsearch como o banco de dados (ele é baseado no Lucene, portanto, é voltado para a pesquisa, mas também fornece um número de agregação, mapa -reduzir e funcionalidade relacionada)
- Logstash como seu agente de ingestão e analisador de log - você pode, entre outras coisas, usar o entrada syslog para receber logs de seus nós (você pode enviá-los diretamente ou usar o daemon syslog-ng local para alimentar uma cópia para logstash)
- O Kibana é usado para visualizar, pesquisar e manipular seus registros.
Não é necessariamente a resposta que você procurava, mas parece que você pode ter um caso de uso legítimo para uma solução como essa. Você também pode considerar algo como Splunk , mas, dado o volume de dados, isso vai custar caro.
O Logstash também pode ser usado em máquinas Windows para ler o EventLog, portanto, pode permitir que você atinja suas metas sem usar o syslog (se eu estiver lendo nas entrelinhas de sua configuração corretamente).
Também pode haver algo que você possa fazer sobre como os logs estão sendo gravados para ajudar a evitar esses arquivos enormes, mas eu tenderia a pensar que, se você está lidando regularmente com 7 GB de logs que você precisa periodicamente pesquisar, uma solução voltada para esse caso de uso pode ser mais prática.
Atualizado eu vejo. Nesse caso, não é possível fazer com que o syslog-ng grave tudo em um arquivo diário massivo (em vez de 5) ou que o syslog-ng grave tudo em uma série de arquivos até um certo tamanho (por exemplo, arquivos de 10 700 M , cada um criado após o último preenchimento)?
Realmente parece que o problema é ter seus dados fora de ordem, e eu teria pensado que existem maneiras de evitar esse problema, configurando o syslog de acordo. Como parece que os timestamps são mais importantes que os fontes, imagino que apenas os timestamps (ou possivelmente, timestamps e tamanho máximo do log) devem determinar como os eventos são armazenados em primeiro lugar.