Я использую logrotation уже много лет и никогда не думал, что это может быть проблемой, пока не наткнулся на вопрос на stackoverflow (https://stackoverflow.com/questions/1508734/disable-java-log-rotation/), где кто-то хочет отключить ротацию журналов.
Мне, имеющему опыт ручной очистки серверов сборки и даже производственных серверов, поскольку журналы не ротируются, диски заканчиваются, а машины внезапно останавливаются, все это кажется безумием, но мне пришло в голову, что, возможно, все не так очевидно.
Итак, в чем преимущества ротации логов? И в чем недостатки (например, может быть, сложнее отлаживать/анализировать)? Какие инструменты вы считаете полезными для работы с ротированными лог-файлами? Splunk, я полагаю, но что еще?
решение1
Я думаю, что преимущества ротации журналов очевидны:
- Вместо одного огромного файла журнала вы получаете легко управляемые файлы журналов меньшего размера.
- У вас не возникнет внезапного недостатка в месте на диске, если вы правильно его настроите в соответствии с ограничениями емкости. (
size
опция) - Старые файлы журналов можно сжать, чтобы они стали еще меньше по размеру, и таким образом сэкономить больше места на диске. (
compress
опция). - Вы можете вращать файлы определенным образом / время. Например, каждый файл журнала содержит только информацию, относящуюся к определенному дню. Это упростит поиск, учитывая, что вы знаете дату. Если вы не знаете дату, вы можете просто искать все файлы или их подмножество. (
daily
,monthly
, и т. д.). - Вы автоматически избавляетесь от очень старых файлов. Например, вы можете сохранить максимум 30 файлов. (
rotate 30
). - Вы можете добавить расширение по своему усмотрению, например, дату ротации. (
dateext
). - Вы можете выполнить определенные скрипты до/после вращения. (
prerotate
,postrotate
).
РЕДАКТИРОВАТЬ:Я добавил больше пунктов в список и включил опции, когда это применимо. Для получения более подробной информации man logrotate
можно обратиться.
решение2
Преимущества:
- Если файлы журналов большие, вы можете сжать или удалить старые данные, чтобы избежать заполнения диска.
- если вы знаете, когда что-то произошло, будет быстрее выполнить grep файла журнала за один день, чем одного постоянного файла журнала
Недостатки:
- если вы хотите обработать всю историю, вам придется указать несколько имен файлов
- некоторые программы не поддерживают поворот, и если вы поворачиваете его с помощью такой утилиты, как logrotate, есть некоторые пограничные случаи, на которые следует обратить внимание (например, вам придется использовать опцию truncate, что, как я думаю, означает, что вы рискуете потерять небольшое количество данных).
решение3
Если вы подумаете, для чего вы используете логи, преимущества станут еще более очевидными. Оставим в стороне очевидные моменты, упомянутые другими и вами. Для меня большим преимуществом является то, что я могу контролировать, как логи подаются в инструменты офлайн-анализа.
У меня есть набор самодельных скриптов, которые я использую для анализа журналов, но, насколько мне известно, splunk и различные инструменты анализа веб-журналов — единственные «стандартные» инструменты, доступные в готовом виде (не считая анализаторов файлов журналов в реальном времени, таких как fail2ban).