Назад | Перейти на главную страницу

Как выполнить ротацию журналов с произвольными именами и размещенными в глубоко вложенных каталогах?

У меня есть пара хостов, которые в основном являются площадкой для разработчиков. На этих хостах у каждого из них есть каталог в / tmp, где он может делать все, что хочет - хранить файлы, писать журналы и т. Д.

Конечно, логи нужно ротации, иначе через неделю диск будет заполнен на 100%. Файлов может быть много, но я имел дело с такими путями, как /tmp/[a-e]*/* и так далее и какое-то время жили счастливо, но пока пробуют новые крутые штуки на автомате logrotate правила становятся уродливыми и неуправляемыми, и становится все труднее понять, какие файлы попадают в глобус. Кроме того, logrotate выдаст ошибку, если его попросят повернуть сокет.

Мне не хочется вводить какие-то политики именования в этой среде, я думаю, что это займет довольно много времени и вызовет раздражение людей, но в какой-то момент все равно не удастся.

И мне все еще нужно управлять журналами, а не только rm dirs ночью.

Так что в подобных обстоятельствах - хорошая идея написать сценарий, который будет обрабатывать эти временные файлы? Я предпочитаю использовать стандартные утилиты, когда это возможно, но здесь я думаю, что logrotate становится все менее управляемым.

И, возможно, кто-то слышал об альтернативах logrotate, которые хорошо работали бы в такой среде? Мне не нужны журналы электронной почты или некоторые другие расширенные функции, поэтому теоретически некоторые хорошо прокомментированные находки | xargs подойдет.

P.S. У меня есть агрегатор журналов, но это не коснется моей маленькой симпатичной машины logstash.

В таких средах разработки я был поклонником создания определенного каталога, в котором люди должны были бы символически связать свои каталоги журналов, обычно с принудительным соглашением об именах, например, username_branch или username-ProductInTesting, я затем регистрировал все каталоги с символическими ссылками. .

Пару раз, когда люди забывали добавить символическую ссылку, и диск был заполнен, другие ребята из DevOps изрядно взбесились ... Так что я был без дела.

Поскольку это машины для разработчиков, вы просили их сами управлять всем этим? Дайте им инструменты и научите их процессу, и тогда дело в них.

В качестве альтернативы, если вы не можете навязать им это, можете ли вы потребовать, чтобы они предупреждали вас, когда они добавляют новый каталог журналов, чтобы вам не приходилось искать новые?

Вы заметите, что оба этих подхода сводятся к «общению между командами и обеспечению подотчетности». Как вы справляетесь с этим в продукте? Я надеюсь так же, правда?