Como proceder para rotear logs que são arbitrariamente nomeados e colocados em diretórios profundamente aninhados?

1

Eu tenho alguns hosts que são basicamente um playground para desenvolvedores. Nesses hosts, cada um deles tem um diretório em / tmp, onde ele é livre para fazer tudo o que ele quer - armazenar arquivos, gravar logs, etc.

Claro, os logs devem ser girados, ou então o disco estará 100% cheio em uma semana. Os arquivos podem ser muito, mas eu lidei com caminhos como /tmp/[a-e]*/* e assim por diante e vivi feliz por um tempo, mas como eles tentam novas coisas legais na máquina logrotate regras crescem feio e incontrolável, e é ficando cada vez mais difícil entender quais arquivos atingem o glob. Além disso, o logrotate seria segmentado se solicitado a girar um soquete.

Eu não estou com vontade de impor algumas políticas de nomeação nesse ambiente, eu acho que vai levar muito tempo e deixar as pessoas irritadas e ainda falharão em algum ponto.

E eu ainda preciso gerenciar os logs, não apenas os diretórios à noite.

Então, é uma boa idéia, em circunstâncias como essas, escrever um script que manipule esses arquivos temporários? Eu prefiro ficar com utilitários padrão sempre que possível, mas aqui eu acho que o logrotate está ficando cada vez menos gerenciável.

E provavelmente alguém ouviu falar de algumas alternativas de logrotate que funcionariam bem em tal ambiente? Eu não preciso de logs de e-mail ou alguns outros recursos avançados, então, teoricamente, alguns bem comentados acham | xargs faria.

P.S. Eu tenho um agregador de log, mas este material não vai tocar na minha pequena máquina de logstash.

    
por Roman Grazhdan 02.06.2014 / 22:53

2 respostas

5

Em ambientes de desenvolvimento como esse, eu era fã de criar um diretório específico que as pessoas precisavam para ligar simbolicamente seus diretórios de log, geralmente com uma convenção de nomenclatura forçada como username_branch ou username-ProductInTesting. os diretórios com links simbólicos.

As vezes que o pessoal esqueceu de adicionar o link simbólico e o disco foi preenchido, os outros devops ficaram muito animados com eles .. Então eu estava fora do gancho.

    
por 02.06.2014 / 23:05
2

Como essas são máquinas de desenvolvedores, você pediu a elas para gerenciar essas coisas por conta própria? Dê a eles as ferramentas e ensine-lhes o processo, e depois é sobre eles.

Como alternativa, se você não conseguir fazer isso, você pode solicitar que eles o alertem quando adicionarem um novo diretório de log para que você não precise encontrar os novos?

Ambas as abordagens se resumem a "Comunicar entre equipes e forçar a prestação de contas", você notará. Como você lida com isso no prod? Espero do mesmo jeito, né?

    
por 02.06.2014 / 23:00